// 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) testHMAC0_SHA1(c *C, data *testData) {
	s.testHMAC(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHMAC0_SHA1_0(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "e91b63309e93d1d08e30e8d556906875"),
		nonce:           decodeHexString(c, "f59747c468b0d0da"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b7928f9503a417110788f9d0c2585f8aee6fb73b220a626b3ab9825b7a9facc79723d7e1ba9255e40e65c249b6082a7bc5e3f129d3d8f69b04ed1183419d6c4f2a13b304d2c5743f41c8b0ee73225347"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_1(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d0c57f7dc0308115b1ea30e2ea2f7702"),
		nonce:           decodeHexString(c, "89cebdda617d132c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b797615a78d1afe74ebedb9d8948d82cf2bb586ed80146b96d41a709f689178b772dd342d29af5449694bf8eaf33a664a24c0ad29a12529eeaba478a799917ab4666de1b6eb2c7332017d67eea6fabd8"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_2(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "286e9d9e39e4024dea0c885fd6f7f107"),
		nonce:           decodeHexString(c, "586b6a1a8ac3ac0e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ca25aa9ef286a3cd52d101db01cdf0ce14c7add124f1b6a9a8b3a48c74989baf01f6ff704da7c5d5785b6e9c21914892102313e7a15cb2f9977a513ada0d3f242819aef2c1699b72cbd358c59435101f"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_3(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6b20dda65a96f564fc0253d38dbc290b"),
		nonce:           decodeHexString(c, "813e538d040d8dd9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "66b6ef57a3282838dea05d122ccdfa842dda19333ded2015d381394da38c8309a6e9703ec065335b116efb97daaac9c53ceb7a218ed0db61c3ba969dc629b95f5418eadfa43c58714fb02176bc0b17ec"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_4(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "32339fc82b655051042e3038e3161c4f"),
		nonce:           decodeHexString(c, "b252e495ff396be2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e95e4551a37e338faae4419e3a70e4c1e3d516be7e554cabb00007c591ba7cb6c3247889a9b08e46c6619f166d996e4e34bbf6cd8a354de9964de906041f73f2ade2eb82c6e82627d3257738c2821fcb"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_5(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "deaa9d0c2ca7a05cba12eeb7db24277e"),
		nonce:           decodeHexString(c, "1605e1d030d76ddc"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bab5be6001da5951c1e7873f4e2be318e879370eae8a51ed8424ed6f12b2d294b45d006b1c2cd8c1ce047fd16f2fbbc09954a8b464cc986f23e86e1d9398d20780190aa5be0505cdfc826c7a01dcab99"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_6(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "589766be3c03b0a351a81b1203f944e2"),
		nonce:           decodeHexString(c, "928e95f8a3bc7452"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5bee2482667220462ac6d3c234f7333703c5abced2ff2ad91d52193e86a61cfa43be0b4f7e831e1e563e260178f23976b2f3e132356ab54567b37580bf9d751223fad7793f0ac11fc450817536116b1f"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_7(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "07cc4d22b010335045cca142d91494bf"),
		nonce:           decodeHexString(c, "4d5e842af4155d17"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8e13a574d17dc8b44382d3b263e857f50816755917603a07ca4987fd40340042a1e6a82a227647130304d73d8704fd9ad4db3ae42daaa55b1f93948e70c451a12724fed870e02a1a8ec4eeab716c6854"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_8(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6425624a98ab3018eb4ef827f5a4fbba"),
		nonce:           decodeHexString(c, "c1022d70155ef375"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "16fd6abb10dba1659ed56d4296b65fe3f2449996bdb8eee5c94b249f04808cdd9563569a4152bd99a32592d35d6a4cc806c228284487fc1e088b178d4c8ecb6b0e3cfaacd7d39d754d8bd4e6662f44a4"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_9(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "01d11d2b631be240de2f41d10bdce47c"),
		nonce:           decodeHexString(c, "89fa32427410cc61"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4640a063e65ef0c0de97f98a39297219e2a1eceed7e6426199719911edbb3d06fbde6fbab83878e9ba9fa8e1d044f7a40f3627d7cfc49d17f101ee64f6b8c6e6154a01b4d39fb9ba6b33ca2c27f9fd52"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_10(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5e0a89b3aba1cf5ed94756083726de8d"),
		nonce:           decodeHexString(c, "b5d79162f73a5031"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cae7b2c25dce1c12e2c4f61b3e53155b9177e92bfb8faefc425d1cbb507713921378ed880986709bfbd7cda66d18dbe0732137a86d47b7e8223e345af0cd9a0219ba290040bc6ff44c1de5b16f32b933"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_11(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "3b76d32d5982daf6e2164340941a1707"),
		nonce:           decodeHexString(c, "441bbb99a2668ba4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "63640e406e16b3b82723a6cb3830657b756fe61cf2ada96f667e0f2df0c9d33c6f164ee78d4976281a84d3024ff67074acecd65391a84aafaec9d6b088bc33616543b61a4c603e5a21bd39e2a72401c8"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_12(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "45fcafba2278bf8e6d437396f60f0e84"),
		nonce:           decodeHexString(c, "654de44e0bd6cb8a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7e2325cb2ced372b640c2496a3970cb7771fd494e40ae17239bfffd9ea2ab0ee74c2d3c369328a3b465e67bcbea86f50a32f9ff820505df5adbc032d3adb83581443877f85c60b3b701f59b1fc38c063"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_13(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "4201db977ef90d08f017c8e38204c299"),
		nonce:           decodeHexString(c, "5bbb47efe9fa4cad"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "101c7318e26693bc11d64b780e9b32d4d958c7475ab99fdd6fe86554dcef54ccdc2ca9f4ec355eb25d7b3f570ff95ec7abc2e9e2fb879bb045debf6c8a98ff46668c0de21bd8d4d18fb9e11550878e32"),
	})
}

func (s *drbgSuite) TestHMAC0_SHA1_14(c *C) {
	s.testHMAC0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5d80883ce24feb3911fdeb8e730f9588"),
		nonce:           decodeHexString(c, "6a63c01478ecd62b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9e351b853091add2047e9ea2da07d41fa4ace03db3d4a43217e802352f1c97382ed7afee5cb2cf5848a93ce0a25a28cdc8e96ccdf14875cb9f845790800d542bac81d0be53376385baa5e7cbe2c3b469"),
	})
}

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

func (s *drbgSuite) TestHMAC2_SHA1_0(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "49058e6773ed2b7ab309c0949fdf9c9e"),
		nonce:           decodeHexString(c, "a457cb8ec0e7fd01"),
		personalization: decodeHexString(c, "dc477641d89c7fc4a30f1430197dd159"),
		expected:        decodeHexString(c, "4e891f4e281100453b70788929ec743a3c5edd9b81dc798bc93771368c39b612037b6f42f60c5d8924b646848151b0c295be491d4a28d1927deed523fd04d3d2dda95ed42166312e5c3392d22893b0dc"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_1(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "4ccc7d83009a28db14e839176774d45d"),
		nonce:           decodeHexString(c, "9345358f336a1622"),
		personalization: decodeHexString(c, "e6db32976d9262b1d3dc487f22e1f5b3"),
		expected:        decodeHexString(c, "5a171e9f0065ece37ba53df81ac3d88054d53d0cb695a901e1a1ca91352420b508c461ac91095ccea81621b800ddcff905020f96dad2a50377d3945047420c3b902e8e361f4525c1d4bfa8af164925d2"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_2(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "fc7d0c3ef1c404ada968dae35581b6cd"),
		nonce:           decodeHexString(c, "31e0a46c39ce49dc"),
		personalization: decodeHexString(c, "14158a65fc9b3bc1ac04c7854493852d"),
		expected:        decodeHexString(c, "918494f47dadda22667dc1d066f44f3ccbb61d3f84b2eeab7d26f4e999aab94e79d282287ab76d4e3eeeef2ef79c2ad571382abdea55d5d8642f604f8f27f3f73a5bc1413dc87bfdf91da1c6045ec223"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_3(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1f0df7933dc99eaf7b284b02ee773ec4"),
		nonce:           decodeHexString(c, "6461fd762c595408"),
		personalization: decodeHexString(c, "abd1d8af4ae46d7e5f1f4e0b71b54edc"),
		expected:        decodeHexString(c, "f1eba7596c6c20118f86017ff86514d745ce7ea02c49719094e5c2a96d3dfa1dd5079b8eff8078ba9793900dba145a260e672837422c351c3f231c201dfaa21e48d3f7ee28bcd08dac680e80bf87ec20"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_4(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "09988a36abad74c3cf377db9c9200baf"),
		nonce:           decodeHexString(c, "6c27be4e21932166"),
		personalization: decodeHexString(c, "17b7a40f4c37894bc948456e37ad482a"),
		expected:        decodeHexString(c, "091e5fb9c6c218f2460c514fa215061460ca90cfb35c1a9f5ea125fc49aa0b2beb42dcb0fed865f8510c3141cd51d1b33216e2e72cebcabd3e1bc0eab201d8e72a0d1de1c2b7915a0cf242708092f211"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_5(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ce1934b6561ebaaa851accf8ceae5b0d"),
		nonce:           decodeHexString(c, "c587922ff68836aa"),
		personalization: decodeHexString(c, "602e9086f44d03ce61039c2e81fed620"),
		expected:        decodeHexString(c, "441da7552b2d45533fc924ea985fd4b0b95942fc7997a37128d3e96d4c2792b241dbe921d61f3898852d4f93740cc3649cb5279a7f0f09be3990e9ee599fb0717c308e7a939a441b5c3ba0cb8aa19647"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_6(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "58f1a9eb935fd08a4c3c894a06ad00ca"),
		nonce:           decodeHexString(c, "0576589700a4d50c"),
		personalization: decodeHexString(c, "b14f2a74cbe3881069f30507919c6870"),
		expected:        decodeHexString(c, "ae9c6b40d951aab9c2d9cb920a05f3e154898c83e392dfbd7ffcbe2283eb2b75842fa5e7bd9626ad12e814874f1966fea1eb817793d2eb0a9cb9270cc9aa4267118fba0c7b6fcf487a97ebcbadc67496"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_7(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0abf2f845295bb1dd283daa24e75fa08"),
		nonce:           decodeHexString(c, "c9e9202793c479b3"),
		personalization: decodeHexString(c, "f8742f44932bae2d65a032ada2b76382"),
		expected:        decodeHexString(c, "8847696e8edd2c7b751b780a6fc69d8434a3144593936943217465362b3c3f7b25b75149f7c69d10ecd169f00ed98b53e0e498af6d9f600441ee2c01a9e74ed845d24cdab4543dff7d1f7800a278671d"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_8(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0f9bc6935e7baf17d560931ec3e75d9f"),
		nonce:           decodeHexString(c, "da7b19214e0ffb9c"),
		personalization: decodeHexString(c, "c13bb26e9349a56866f821c10a2ae28c"),
		expected:        decodeHexString(c, "12a849651f310fbae04c4da4680a21a50a9889806194be470b8b111a32ea741794cbe725d98ae9d40c0d60c04c8b7b32917f9dc18c27dfb8c64579a176a2c4b23cc32e5237fa5f904ab1249aafa7cd88"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_9(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "79d96ff5ec92af9fee0af7effdc15ce5"),
		nonce:           decodeHexString(c, "6b9cbdfbbbe5b49a"),
		personalization: decodeHexString(c, "23d1288ae41e65e56e7b783f85ae8b47"),
		expected:        decodeHexString(c, "206c2564950995ac6ca6d2ad51e9cacd7540f254a335d6d7eed7ef17956949cb5d7d3f4e197e82aa4442d08d1d0f933e641f703be1be4a9ca5747e524687a7a034761493dcf2e1101789f135de5d3f49"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_10(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "94e852ffbff4f20078181221b5fbb804"),
		nonce:           decodeHexString(c, "8f3e95de313a52c1"),
		personalization: decodeHexString(c, "1841dcabae24c156a17a1d0eda6f8bb2"),
		expected:        decodeHexString(c, "15319b06c05d47deeaeab540e649cc6e2989843de07dcaa966d799a36902f72943585e2773912040185ac1efa060c6edecef800e3116c66ccfeeec9fe7ee70f3dae2ac1c0210310ea164f4c4402d2f77"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_11(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "473c743205bb375fad15f537dfeb402d"),
		nonce:           decodeHexString(c, "879754b2b4987cbd"),
		personalization: decodeHexString(c, "4f88f4db50a6806d6899f71981beec49"),
		expected:        decodeHexString(c, "46b0694bc8afc6d86dcb8b80cf8815104007ebedb06050ae625b890060c4dad3d9e2661042d26a3cfded0383829ddcf616ec84d3f32d307480caf0f87ba9b00e88812f5cb2a4e94e354092d0c50b9bc7"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_12(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "20208c9ac4830512786fce7ebde344a8"),
		nonce:           decodeHexString(c, "2cee0d7d7a5607d6"),
		personalization: decodeHexString(c, "2602c5f52c7ee2620486ce56366cc8eb"),
		expected:        decodeHexString(c, "b0bd2c0739ed1608848dd0e9c1db9f547c64268754af09716da40b2682fbc45f56de954cbce0d8a3f53eb2c3afac9e3afeab4038fe042c897786fd3da70f2d6b62b12981630bf30d76dd879e2926ab40"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_13(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "3011c31a44ccfd1260ae9e431da41e88"),
		nonce:           decodeHexString(c, "3b1a6ac9060f2fa4"),
		personalization: decodeHexString(c, "6b36a1fcb2a2173fc7e0c120c2627a6f"),
		expected:        decodeHexString(c, "a781d9970c7272e98d941438d311cf7e80d2d56b29eb0b4b1c76d00908401ec5b4bb1c5f159dbf42ab30100933b1628faa92d2e25bd37ead4c3354c823013cd9e331bdf5e2c5c7d11d5bd9f50fd110fc"),
	})
}

func (s *drbgSuite) TestHMAC2_SHA1_14(c *C) {
	s.testHMAC2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ee6d57635e5ab4b3d73a2652c1443b32"),
		nonce:           decodeHexString(c, "296bfe331b6578e6"),
		personalization: decodeHexString(c, "4fccbf2d3c73a8e1e92273a33e648eaa"),
		expected:        decodeHexString(c, "90dc6e1532022a9fe2161604fc79536b4afd9af06ab8adbb77f7490b355d0db3368d102d723a0d0f70d10475f9e99771fb774f7ad0ba7b5fe22a50bfda89e0215a014dc1f1605939590aa783360eb52e"),
	})
}

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

func (s *drbgSuite) TestHMAC4_SHA1_0(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "60fa9faa3d94146dde1d8a38a5173642"),
		nonce:           decodeHexString(c, "c5bc78e089d37797"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4952f3fac75b96410c1b44d902f7ef49596493754547f32168e4f1115d86b9e0fa4fe328bef656434e72f6c1e19cd8b6b4663423a903ad437fbe8e5636b295d7aea7b3066598e47ac0462a46b20d04ed"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_1(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "30be5f89a4ef4775248cb897c260f289"),
		nonce:           decodeHexString(c, "e44518d129b80fa4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "96b145ab45556c4d682470afa33ca50363f8c2d380e827d871e9a6ef9e9d94e86e49bf6318c9a97d73a205be12dc337b3000f468659ef50120a3a4115a0c117cdfb5701df5be06287a36049fa9d54683"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_2(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b6f8c09d68dd03b86f5ddf8893edd20d"),
		nonce:           decodeHexString(c, "930d5310b6612df5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3675f24bd39baae5dc858bf5084bb768e57be852ab511138383c0a02aca88f8e4fc64a479d913b8c7267e54e3303bb054407b4f25f76ae2b72632af5d21c996b286eeb03ee814b1ba4125e62e5f3f5e0"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_3(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "24edba742c3766e8a0578e950235b843"),
		nonce:           decodeHexString(c, "6ae1244c39d80ec6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "347a45833fe7f4c1efd252c0fc14e3ed1157155d8c740dd2e14037e5aaa6b1689d47eba89ffe6e0bb3f9941f62ac50fda20189fe381230351ac4f59b0828ea09ab3f5d215cec85296dea99d9502b9502"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_4(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "70564c873184a8dd7c7206abf391b61f"),
		nonce:           decodeHexString(c, "e986a1034e3c8d1f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ec4b9a050c7da7ce0718e2ab4c9841b40355f281c1a76d6c0678af8250a8164ff211573673e721a4f76100a695eb5a311d24cfed2a1ca3e773b11b5895a4176542c32b89cf32bff77481c10af961a3ac"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_5(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "64842e7c7e87c7350c9ba5854aa63119"),
		nonce:           decodeHexString(c, "3bfa1412e1022148"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "453745b31b89a58946f9bc07e70fd62e5df72d795239ca303881b7184c015270324d78f3609d92268554d2e0151838bc176705e2a28aa225aa4132fe6601f2a5d4a583e9212164cc4bdd388d057b2bbe"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_6(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "eb4b7b585d73140e61b217f99fb875f4"),
		nonce:           decodeHexString(c, "389176e8dea28165"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "14c6cd926596737b2077a5f395ba2ee846499b64477945d3c6c303c8a08de66fb98035499fd6c35a180141a503f20368b4e8900a8f2f2fe14925c1861997ee2c0f4a9c8d38ee065dfe73812aea43356b"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_7(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "72a4289a8ee982fdef0bd7b54664f318"),
		nonce:           decodeHexString(c, "40ea4ac22ab6064b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "94f424038d90c186284df40bf1417c07070b045fd004a629f742019be0be9a1c8b36374acff5459188f26483026d472bbb679446ed2c1b6c5c4c65ecd67e90f3152450732db2e715a74495a2755664f1"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_8(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "c3965e33a23b263405b2ed5e568872fc"),
		nonce:           decodeHexString(c, "403d8aa6c3e6ebdc"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0631607bd3ba6687b6d8812dd4cb11e063c8ac83728f7e81aaf11e80bf044e05ac9b4f19492e3e02d0b0c15ddb036301b61e7a06b05c690a3892964ee87ea40ba937c7c7f6c5fe56f46e72d51d51c59a"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_9(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "c957695bf87d6857d745adc436023945"),
		nonce:           decodeHexString(c, "8ea5c27e4611f76e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7aad79598f035e6b6cd7fcd1e56107d30e28e43dcc310348856c85eedd4aad0b252b6c57caf0301f0e6f56d5bc46b9c138483c0b837f3921deea001b238817fde421e60044f4c1958de1e53b43f6dd21"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_10(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "09fdaec5bb25fe9e1ae8df3f41947d4c"),
		nonce:           decodeHexString(c, "627d75c0d6519876"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "00e5e7791478fe28275b10f72ef3b76ed75f63218794b9838a6b276e9ed41d86363774dfb067980e7b89820905bc5cc4cced95f4b0f9f4ae3ef2ad8d925939d813dc1d461ceed5adc855306288793f5e"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_11(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d2325425101b1174d6d48c37fdd28568"),
		nonce:           decodeHexString(c, "beb06a1a2089717b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "77ecba51d4e396041ffd209739f4fecba7c33ea8ac3637dd8d19b05d59c2ffea67bdeb8d7770f4df1f7944bb7e60bd67a88f559dca42b85de8b451f5aab8bd57af5d42560869ea1ec4e0efb87ae968b9"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_12(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1c381cd09bd8bf1804a831af9fd4890d"),
		nonce:           decodeHexString(c, "ef6b1725ce5c687a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "34394bd281562940d2b00895f3614e5845b682515c203442590c7be350439c0124b3256cd2f3e6248e47e1f12483f79fe0925edb53c250605f75b640e41d6e64767ae31658efd54cef6ac67ec4234b41"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_13(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0bfdac88b626b8195de7b78a602a19b5"),
		nonce:           decodeHexString(c, "e6508fa2eadda030"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "83a8eaa1dd0fadf4bbe3e3a95a35d00dd7e7873c1853cee64ddec2c24ecb3b67ec1f0d179193ad11e9993807fe5057423fdd8b5bb1a076506cbba573c981cbbfad3c3e644624cc80534926577fb2b2e6"),
	})
}

func (s *drbgSuite) TestHMAC4_SHA1_14(c *C) {
	s.testHMAC4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f41d60edb7749acb68111045000ccef2"),
		nonce:           decodeHexString(c, "bb5fb8962ca3002f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "262821119be1ee0bceedc1bcfd04f7fa2e199b2a7522c4a3a98c4174e0ac4ddcf7323dee2fcf9fbd2fe26c4fad347f7199be105730441f042865aeef50b89c00aa661361b6a1f20849bc7c70aa294543"),
	})
}

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

func (s *drbgSuite) TestHMAC6_SHA1_0(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ccd5c563cf7a63377a50c1613c916f0a"),
		nonce:           decodeHexString(c, "4a10bc36ae0dc7a1"),
		personalization: decodeHexString(c, "4dffb8b3662deb1ce7615badaa31db29"),
		expected:        decodeHexString(c, "cc2e9782fe2b2fbc869014032ac90984406cf8a90d51c8a540bd5fea0a7b87fb1f74e309e6012f81314736a9a284e740fd7d95540967b7c8b3c00db08e224bf49166f0c7855aa66a4c37f008ec85f556"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_1(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "29c3ecf108e961484ff8d70ac31727ff"),
		nonce:           decodeHexString(c, "cb6d67c43fefa178"),
		personalization: decodeHexString(c, "ef3de896e861a90665dab631a28d2660"),
		expected:        decodeHexString(c, "7b7306d5fc8dc8b99d51546d22a09346bfa273969db066a2c9a249d8a9ee1d6a5af7b65267eaa12b297882b10b4b74ca41cfcefb89bc727663df339e7c8509e7f330b96711b5e063ff06efeb6b3bd976"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_2(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1ac8ad13adde0db4639730bc990be05a"),
		nonce:           decodeHexString(c, "0cfbd5fe2b072303"),
		personalization: decodeHexString(c, "77a689c50945a03e809c942dc8260226"),
		expected:        decodeHexString(c, "3ac0bc009b7390a25a42cae20d931996324a02158ee7923c81d411ee086b799d023b4269d5e773284fcc88408c9a6e41e977f610f8f405d919613fa617bd04048eb8c0ac1663ba9eed9b5590b084110b"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_3(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f50f07ddccffd7db928183a88a3e6faf"),
		nonce:           decodeHexString(c, "bf3a5c486a87c89e"),
		personalization: decodeHexString(c, "58bd67add7fa081c3034c1d6e05af8ce"),
		expected:        decodeHexString(c, "76eabf6d4cde433854233cd2600b5dfabf34871d71c2c25582792170545613f53d8c5c0ac6859c7470431e2599139f902ef66ca09b017573e9fe71311e65eceebd705bdd1f04395062d9bf9a30876bfa"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_4(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "85548c8caa37dad152905b18d541ce6c"),
		nonce:           decodeHexString(c, "8b9537a556c8e31a"),
		personalization: decodeHexString(c, "a91111a11d81ffa5eb07de47456b5a25"),
		expected:        decodeHexString(c, "c77d8471e030334cea1c4f5efe314e7d354bace881b84147face9c60bcf0fef7f056a9aadc2692ec03d1c8c70b00d20b4044d19706869c212bd1e47db69ad1c4c27c525df0aa13ce4c6ad7853ceca104"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_5(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "43b7c1ddb10a2d1fb9c564be23be474a"),
		nonce:           decodeHexString(c, "fddb39943d1cb8a3"),
		personalization: decodeHexString(c, "36e732d9437557cf4bc2910492b7a17d"),
		expected:        decodeHexString(c, "e5576e48fd1cec1257068eb41b1f1a42efa21caa25d90526f553fadb28d65fb92215d2ccc3dec5be675730c92872d5a82e80ea76662c7dbbf52561c449aadd0e485f8e30cd0c3e5cc7bf857c75cc1236"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_6(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "94d3fa379fb01b342669fdfbff7831b1"),
		nonce:           decodeHexString(c, "af1310b01e6ba647"),
		personalization: decodeHexString(c, "203ba869bd4b3166887cb38e845e8003"),
		expected:        decodeHexString(c, "a46908d8fa56d12ff54531aea8cf011edfe567d90c396b40c8001b19b6a2e28055becdc8e6b89fb084f01d147285c3d7d1677d0f65ba1fd8c06ebc4b69c6456e16d13a9394ff166ca8f113b0d35bb94a"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_7(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "614ebbd4af2300f8ba40a525d5239165"),
		nonce:           decodeHexString(c, "0f1e54196c7d8e23"),
		personalization: decodeHexString(c, "2906741ed4d07ac73fb85e474e7da600"),
		expected:        decodeHexString(c, "cf472147a08866ba54c5291ae637a00dcadf484efa53142175caf67d476cbbfb29cfb096a34fffeaa4a69ef0fbfcbcdd0124989df4ccc4d4fe0d501f4cd91da531c49ef3f9b97cc4f5c30b6be3288bee"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_8(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "8af695ef704e1cd1faa552d345e76e52"),
		nonce:           decodeHexString(c, "a304311bcabceaea"),
		personalization: decodeHexString(c, "94ad0cd4d4f60e42edfe7d0eb499208c"),
		expected:        decodeHexString(c, "edc832cbe218a1aba14aca5aa9a659367c94e5f8c98840eb1b713a683df9dcb8657751c73ca6091c482febb05c964d5079f1ea3b719da1dfc4c971200181e64e7b7e122514f23d7e9c1f8739fb992008"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_9(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "2836f6474ec4d0e1ea15be3a60d6ce13"),
		nonce:           decodeHexString(c, "544da2336ab1453a"),
		personalization: decodeHexString(c, "334d9ac9dd4490a8e766baf167d12966"),
		expected:        decodeHexString(c, "66d0950b03741760622af56924e529298454e7b22d8d3a6b09d23e5e49380304c97e5ba4484b1bf8d49d58766594a5af997eed57b050e49d48a3d92f6b00027700bf2d198b4565c7b0c0cdbb376315bd"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_10(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b7fe628056bf891304a628c6dbfd5c1b"),
		nonce:           decodeHexString(c, "cb435893f644c63d"),
		personalization: decodeHexString(c, "b53b230221acb4ef9383bce5974649e8"),
		expected:        decodeHexString(c, "9b6a546349510864bee318e3b6d37a4164fd83f8eafc76048a94c65509360f22e4629bf916fca047bf6395fb6a8fa3c0ede74d5180d4942c83bffdfedacce46f3a0e12cc3ee8f7b36511cb5f1da6f035"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_11(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0a37c75bc808a90bc6b358b1df6be5ae"),
		nonce:           decodeHexString(c, "52bf5df812897d1f"),
		personalization: decodeHexString(c, "e43daccecb6c15f011c51cf293912994"),
		expected:        decodeHexString(c, "3ff419c6d50891bfc44c2f8e00532cfa74234d0427ea5537c4a1622b290a74f1c3170730bbe8f358cfb237e7dd50c03747ca9c56c6ac503fea6acf6338078d301397128e3d27839cc0f7054393144ae5"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_12(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "9149a3fdb043cf4a58a0a6682cd0211a"),
		nonce:           decodeHexString(c, "6c6a87fd2a0873f4"),
		personalization: decodeHexString(c, "19c0436e4318e74789800fd985b8c096"),
		expected:        decodeHexString(c, "f01392ed90222a4beea745b0aae255bf78eaa226ff0a6c276bd835abd1d397680074e0035bef3667225ab22517381d38830b47337ee9ddf843481bfc867ef44df4e3c152eee85dd0f6377e451b513536"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_13(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a3e40c12c6eb6cf0f8b93dd45f02dd07"),
		nonce:           decodeHexString(c, "c697c1c060c90bf2"),
		personalization: decodeHexString(c, "1cf43d5e6cb74b0e5d70f9377eb4ea03"),
		expected:        decodeHexString(c, "cc002d549d5813efc10d16d3132fb5b394bea03109c9f11ab01a3178dc3350d9e1e9896846db60007ffdaa3ad530089fe4bee9380b807a19adf594466723ac98dcb540986ec6307f2b0b37d79366d0f4"),
	})
}

func (s *drbgSuite) TestHMAC6_SHA1_14(c *C) {
	s.testHMAC6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "cb89ced16e360d7a417f4c165cfe3e1f"),
		nonce:           decodeHexString(c, "3c9434b7d7e18472"),
		personalization: decodeHexString(c, "55bfc33da17f712877829b7f8a134e55"),
		expected:        decodeHexString(c, "705950e4790ada95b99ace57e31115610ebc65d755fe587eae8fb1aeae463bea8b50a278f45e61d3433272ec31b0d48afcf219f5f4a0adb20537be9c7cb65911df28976aed4b4278cc524639a1ca5f40"),
	})
}

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

func (s *drbgSuite) TestHMAC8_SHA1_0(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "bfa766e525d824db96ca32b4fe92d793"),
		nonce:           decodeHexString(c, "9a72e7b810b29762"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cdc76a2e0242f5618c69335e7a7cb82b3fbac60cbb8c76eb9d8ede01105a5a507aa13bd23454dd5faab287dbc1a7edc0162983936d8532e0131a1e80f59e3dfeaf75e6c28e8d049c95a3974047382b3f"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_1(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "92ce11514fbab1cc4ef748469ba3f6c9"),
		nonce:           decodeHexString(c, "3cc37ae299c2bf9b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "05e19153e1b8aa4c032abb176226c7b8d6f7638ca120dd755300d2fbc0c48a980c076f9f9c00224aa0b4d7a271c88cfab9a41e6a57afb2abe58d97ff7b229a7c4bdb4dc00bee87377742ecd508e40ee1"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_2(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7fa77653474a847f037422577f9682b9"),
		nonce:           decodeHexString(c, "41e1eba1cc019344"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "514a71380a77d4ecc664fefd584c70fb69e5873dcbd8f198f2aeedf0c80c85dd1bae49b2a2bef1d5e80458b2f26711f1bcf627363560b59ec848898c94060c829c3f3d8073cb73988d769899368f187c"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_3(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "09fcba90dd5d55421963620faf9f0c91"),
		nonce:           decodeHexString(c, "7b1a05f1e9ce9079"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "76c29f559fc06c3b924441a45e195c6a217151f21b809de36801e260e0c4be3f6ed45e7315ad7526cbead47b70274f5dce9ffae78a8fb535409820c58e89d8d83ce562d0c970bfb15f680f357986a286"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_4(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "218d7cbc38ade0cd245ed1d2a3c634a6"),
		nonce:           decodeHexString(c, "23d8d1ee77fb2a64"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2648b3639e9131f0b57a7bd8087d7d08cd7769c607be1940fbe99929124ef2721794b18212a5e5c2a4b8b3421e091b0a845f5b5752d668510ac2596b7c93a91f382f94a747a4e1d71bf7b3f3a3986e78"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_5(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "e39498bfa4d98ca9b22b698aa1f63ddf"),
		nonce:           decodeHexString(c, "6476ff7308958104"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5ebb29a28822c2e7c7dffade16560af4be4b0138864a9d3f73b0833e10773c0c86d7e44166db49ec5d2ede42cb875990d5d7b4430dfc6df7a7bb4506b6e73446a14bc60dc6b19b51f73314eb08b000dc"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_6(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "acba480a9559ff9c61cb9ec7e8abb6e8"),
		nonce:           decodeHexString(c, "7fd83151ed1d2373"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "58b6519828e5668ea7b874429c1e54b261069f3e5674bf61a99c36fe088c7fc9447bd9775d5434dd75daa8066f0c621dcbf043a05e2774d377e31606ae982fce03d81a20969e71a16568bfbee0116e54"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_7(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6a1496d59769fd65bb498278d3baac6c"),
		nonce:           decodeHexString(c, "8de8ead8cedadbda"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c88e74a0177a5393e216980fe5d89350af0ec099a78543f30fef40a22d843cd0c3f1399c15231129bc2fdf27fb82ac4743ca8631161a886bb8f15b5f5183ed73956f29ef5a3151c14ed0b5d281b2d345"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_8(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "68ac7cd82f0c42f2759b646350891457"),
		nonce:           decodeHexString(c, "e17540c06311ea2c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "27302d645b6b4318e8f739b397b9acbeabdbc01bc68382972529ace95a27bd848e51286cf8fc87cff57280cbbe20584962d2bd757ccf60145c72f0de932c68277b7907a56f67b399c93a65f4780f6553"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_9(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "2f14d50ac42f37fefa881d6f34c09175"),
		nonce:           decodeHexString(c, "ec7bf5fba3c94496"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ca9da0d8ba870c599ddadb8083d3ca7d13cc4567a997321b85d97a32c13c248c520a27cf01999050a4cfd7410f9948fbdfc9d588b2c864690e4ee0820f7dd9ac558702578f7d39ea059a7840fcd8cd27"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_10(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ec842160e9877dff8448a25fd19a8e00"),
		nonce:           decodeHexString(c, "5d46b4fc7108d5a1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dda69460e6ee719256562b53c9d2301b41245452dc27994b6455a1ad10e3e712d0f689b858fcd832910dc27accbbc5a5d5c0219c3fa265aaa1139815d5b4a75f2852e74c75c7d6b75b60a459902ed003"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_11(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "eee3c4cb2459c382680e40a6135d4564"),
		nonce:           decodeHexString(c, "7fbdf557e97030e7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5a64d31283b8db2abaadf7870f83177d8dc638da08b640f7f3b8faa134942d3d6001647a202a25c55289fbf68fea9f5b57e32da221e580ea5f3b2ac60114640de1ee4523bfc6457cbf271f9c55c0fffc"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_12(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "84ff66d74434cab61f40a73ce992cd88"),
		nonce:           decodeHexString(c, "64c3e72ab8e677ec"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9fc91387318f67c9687e31050eff3bf0518df31b2315f682d47771a93608db74c8c567f2a8da7e2fc06e00b8a1cd2b89d1592fb29a4925e63828e6d22acf5a36587d50d02593bd8431026684ded816c0"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_13(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "78725941aad0cad65da5d0b7dc9057a0"),
		nonce:           decodeHexString(c, "577147770612020e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f9ce02ce66fe9f370e97eed7d86b01e0701d1b9ff21531f0f899dac067ff48c6d6d11790c2b0e6c6e8d3c993564a09b05a7f135751f11d72452238868db2f7c08c170ef7b918911556e13f5405bb9969"),
	})
}

func (s *drbgSuite) TestHMAC8_SHA1_14(c *C) {
	s.testHMAC8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5b6aaaf5c4e5acdacd2c0c14648eeb3f"),
		nonce:           decodeHexString(c, "353cc1174da7f766"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f7664dd99fb870dad1a45a4ddb870c9936fb42b3a063336e447f15703c5a95dd79eacd9f41cd0c1b4f2e1a45229aca140f463c1beab47aa0525e5bd6e1accf360bc8525430ba05fd14d1f008009fd586"),
	})
}

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

func (s *drbgSuite) TestHMAC10_SHA1_0(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "042c8e1c6782d8f73d009068a75ab2e9"),
		nonce:           decodeHexString(c, "677b47c76e4fcb87"),
		personalization: decodeHexString(c, "14ed0ba096a31c15d23e4960989d188f"),
		expected:        decodeHexString(c, "9e1aa2125ec8f2198d5125fc84ddcf2aae63bd5f2b82d1d04e8e38068519fa15f711424e1597f4d3fd5d883539eb38b2df9d2404f5c4c2b2cd7161fc6b16661857fcbf7f495282cd3eefb733a3428f63"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_1(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "012e549615f628bdaff1accf34e67aa5"),
		nonce:           decodeHexString(c, "4ec7216881e013d4"),
		personalization: decodeHexString(c, "1917cec767e585d21f2c87fb8ecf8998"),
		expected:        decodeHexString(c, "0ef48d6825eb2eb7b5cf2fd27d04e75876e57989dd590a9670e96d53436f07e5ed6b3ff31b0c2855cfee5e633536cce00fb1d58213225ec604f1e6337ea50b7fd830c5c219ac6195683fca437f8c360d"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_2(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f6182e3bd5af9db1168c1169065c2e9c"),
		nonce:           decodeHexString(c, "c7d77e5617ea216b"),
		personalization: decodeHexString(c, "cb4c573b948f9c42bd159510850f3c0e"),
		expected:        decodeHexString(c, "2c0c8451b2906a4645d8fbd5e5d114eb6a8648881fd6e6283fbeea07f8adeaaee0be053f25e4c8611039b47d2243fd515f22341fd5b9a32f7eae4c93617b958dc52cff027b8e6571a9c77b3fc6e3d38a"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_3(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "c53c031d335047819ba2d91848cedc2e"),
		nonce:           decodeHexString(c, "68a91905d2eaf2f7"),
		personalization: decodeHexString(c, "c1651f5931d0b1f0ef1a6a5247d6a7e7"),
		expected:        decodeHexString(c, "ba234a775d77b5eab1f86b34b24e12519e3021e6c4aa0660d09ed78c18969d90d148d073014ec162bfa3c4c2f1ae44ed3259b5d21f962accb659b9811650bde00d6ae213849ab38745e7457df3e41827"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_4(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "92d5f92b4d7ed319175b898bf7265ce4"),
		nonce:           decodeHexString(c, "02ba3243ea8ccf33"),
		personalization: decodeHexString(c, "a7ea09d20435fb095bea129439891737"),
		expected:        decodeHexString(c, "3f9e757dbf6fcd15ade10a025d39b5cbd95d0d95ad4ff83a771f3d1c5ced8e7c9b878d0a0ee7b7e4083a2c20af93eec52914ecbfbad346676717719bbbaeadbc9e7b546994c39eb365de83ce6a08bb4d"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_5(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b26878d986cb7a9a24ad23e114c23796"),
		nonce:           decodeHexString(c, "2c0736af4cc7a493"),
		personalization: decodeHexString(c, "c4b853b830723cc305bdccdc54c52b33"),
		expected:        decodeHexString(c, "39d24e7112a6d61e9c8bee3e81114d6562ef1253069a7f5f395f57230ca243a9cab966c0429d8ef9aaaf42ad99f7f1eed705ff0938c7c9bced04398d04518e387820b059995f23b1f0021240e3ad37f5"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_6(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1eb80342278e65a93bbab11e9ce4f335"),
		nonce:           decodeHexString(c, "8c1ad3cba58ee175"),
		personalization: decodeHexString(c, "68b626801dc8e98beb6fadf1bfb5e21b"),
		expected:        decodeHexString(c, "7d1eff0e42435bbfb69924231bd839eff608ca112079726ed280eb0760b05574a0962a9dc08937fd3cb6348a171022b1bb5f6ff0d1899ffd5b41d7d802eca0f5ab338b51ba23b63030568d9231861709"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_7(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "97d536a5b1473c0095e7bdca428cbcad"),
		nonce:           decodeHexString(c, "0429afa5f99a14ae"),
		personalization: decodeHexString(c, "5a5178b8b767570857f8ed35ddd54d1b"),
		expected:        decodeHexString(c, "9a5361931a1d6f327c47fc47320dbc21b0ddb149630877e2e190853c7bc61893152995225f3ea86bdd5be605a96d029f496575f08aa5fa6ca8348f0718253ecdbb689a779d3f16bbfeddb97c6419b615"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_8(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1215644d686cba97f1be48493cd18a14"),
		nonce:           decodeHexString(c, "ffc386c7b611ec22"),
		personalization: decodeHexString(c, "cdd3a57725dba43d8ccc2c0bef1d4d99"),
		expected:        decodeHexString(c, "ec30fd9087521b3e890a212329a5a85570e0723c352c16239fec39877393211a4ab913f76eb9f03178717e40b0f3f7cc6fc8da291d62ab4d9152992bc32949df0280874d455d47d257ee62aaaaf5f7e9"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_9(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "178bdeda669c11953434cae40f74a3b6"),
		nonce:           decodeHexString(c, "f6c34238fe691384"),
		personalization: decodeHexString(c, "f3da7f228d4a8ac7183a68e81f8aca53"),
		expected:        decodeHexString(c, "278e1015773790d2aa42b2c4ecc19ddfade99816e48b661b1ae74719817fdd24a21149494a5c2b3aea02c71b7f124184579efcbfee678b83afe5d7feedaf4612e26ce646730fd0828260a261787674c6"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_10(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7fee0519cda3f1893a6e6ec597d5245d"),
		nonce:           decodeHexString(c, "3e40b0ac46e758ca"),
		personalization: decodeHexString(c, "69f3db79a89e62370e583282a6dce5c1"),
		expected:        decodeHexString(c, "1478ec02c5b50f2d26260f00e01996208a1b92e19e7df9cbe265436344ffef4dc1a5390256d0e995b49cb16f2b6050b6d72b3744f98465ef277b2e1062d0c91636e5d3f4fa1cd872e18948926eb090cb"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_11(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "22582e33b126817172f564c942218e69"),
		nonce:           decodeHexString(c, "9541c0c884d445db"),
		personalization: decodeHexString(c, "8a9161291feca7b619dda96f1f95d1d4"),
		expected:        decodeHexString(c, "1d3047675d69bf0f4ce0edc6973c5026ae079fc4476767d230ee5ba70eb1e35f0d75587d994c3a2be9c8d4116fa0051b70eb16342831838d0e4607db0ddb41341488462e5661dfedad87c99bf71cf1ae"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_12(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ca085646c0a62e89b7234efd1bf44218"),
		nonce:           decodeHexString(c, "05d59e3c6db4078d"),
		personalization: decodeHexString(c, "1c5658b01974a5a7257f827244739636"),
		expected:        decodeHexString(c, "65daa28df559584a0e93486abd9252b6da3377a4a664e940e3f8c425ea5a3f6587db7a208e388e2ea39f8a82b0876e517d0a3b46156b70090cec0499fc9fe67ddf3787d2bbf038ad73edf135a6976322"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_13(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1c98e8206b14aba60d99e1c50f59385f"),
		nonce:           decodeHexString(c, "3bbf085009fee036"),
		personalization: decodeHexString(c, "39fc2e475db746dd67c15ccb522fb842"),
		expected:        decodeHexString(c, "9830a027cae50a265d8a7ce4d155be3bf12b828bcb594af7de85f7094f17c21494bd15e51e3d0b498c3ef4f8c4713f9c2feed42b1da4b9d08d1030a8cde51c3c7b90ae0e53023537b1adb8dc7481bcb8"),
	})
}

func (s *drbgSuite) TestHMAC10_SHA1_14(c *C) {
	s.testHMAC10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a6608d593372e785fa76a572b9621e42"),
		nonce:           decodeHexString(c, "9bee7502db25ae7f"),
		personalization: decodeHexString(c, "d0e8fa47aed6b67ca4e8e521f733921c"),
		expected:        decodeHexString(c, "3c649d295fd9b98082706f3f841f5275834143698c202da4c881c7d0a3c9995329a54d440fc4d21ab596e95e5b6651c6e7138b332c97ef771bc6e3b0b3fa09090ffb402ed1116d8395e5f1cfea3eae6b"),
	})
}

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

func (s *drbgSuite) TestHMAC12_SHA1_0(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5ec7bd88120cb0ad77244b19274dacfb"),
		nonce:           decodeHexString(c, "c7a50a3d59ec51c8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b4f1bf1cc25784b7108e0a7062988baa39f5906e145f6035295fc29f574777de196a42091523832157830d88f89685b630e4fa187040d5a472b0a16ce1cbc41e753fd1d28c37036e065bf9051d6d0862"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_1(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "c163707712457ca60c65b9e5618fec7c"),
		nonce:           decodeHexString(c, "5fb5b84a82ffeb63"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6df04dfe768cb4dcc29309b05041da2c6c141c22942c7884f2d900967d015a7873319e61e2ded42ee9df2607e13c0e9840322b8454cd9da874d1fe6c258b810adf83cdb7512d1f5642d5d992945b5259"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_2(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "88a5ef064182cc40df5a3b6d8bb34376"),
		nonce:           decodeHexString(c, "16900a58a910730f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3e44cdfb6d20d910463ef5df4f050fa91bd5c7a6a886650729978e9bf484a4bf7f2697109bbb78445cd4257b320aba2f26223906190282a4229c8631effe42dd2b2083a7b097e36a57aa0880431440fb"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_3(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "64ea885ed16a502511881beeceac0f2e"),
		nonce:           decodeHexString(c, "25a0cac3cf54d3cb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ad4cf605dad01c13cb54e0cd20e307d6941620a580d98ea653b60a8ba2dc2c11f000b52da5987030aaeaf6bf880f4ddf4fc73d6daba8751869148b72948db9a56122d9c76da9bee8b35e2dae2f6ad8f7"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_4(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "2bb7251b9c609d7778a97a69ba2c5116"),
		nonce:           decodeHexString(c, "9bb22a4476821c70"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "80acba419686dcbcb80137c38ac2239487561a53d0e7b0a820514caaf2705d3306477b2627d54519f18dcdb53b807194b69ef4fd728a498114f44860465ce53bb428fbe0180c7faadc5f53bd195d549c"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_5(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "fc6fc4bed4600bfa12108d5b4c29e50c"),
		nonce:           decodeHexString(c, "d63a38c3d75afdc1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "88b2c0d43eb53965943f90819510fe9f72c8865faab25500492f21dd74b28eb68b12227445f4d57c3b1f64538c4dc9f71c9da5d06457e4f932b2a1fe1b4176b4884cfd1512d2707d538790495eccd509"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_6(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7028dd8a558b2e8ef1b31a99c7cbd922"),
		nonce:           decodeHexString(c, "41673e6aed43790e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c161310c687f23259d521ff1c8dcfb58ed5c219e2fb97708f627ca06d56eae38f6da079280accbe9b758917b8e064a2169884b1c106da6b5204baf819587ff63de1b14ff0b6e8a67e7bf074eb7c98b1f"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_7(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5256b720d1aaa7006ed9777bf748bebf"),
		nonce:           decodeHexString(c, "c396a5da5d3efb97"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "08cf26b11f0bd8fe27887a661a3f258ac963e83e4353a500529b89ea630b9a27bf54bc3ffb1f70a5c9d407e9ff1d708c96f52e56cf5c55521862d76357550d83f0fd529cfafeeb140d4108bf4395fc85"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_8(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "fea8ce85ec3d016e529f6fa8c9fc9aa2"),
		nonce:           decodeHexString(c, "eebb74bd7352eba1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "51bb34c212fd748795cacd926559ea4531aa97084246d74fafdde8055c360df20c8f45907afcc34e637702810201bc441071e707baa90f28a342ee9f6291497df6a1fff88b93794785b00bb4678da9f0"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_9(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "eed4b9a341c4f1b234e30160ad692ddd"),
		nonce:           decodeHexString(c, "136ee68226c4acdb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cd4dd8da7b9218a7076e9cba47f3752eaba8b0ed168142c565e25bd30669a90e2e9e7b5dc7c398df147edd6f34fdd9a1b53de1538c01f4a81472bac8c0748d5a96ae3d9b3859ec8a0ab3ee9f07f57243"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_10(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f7480c8ec4a24aa42bc1b5842895262f"),
		nonce:           decodeHexString(c, "85dd29845e457646"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c0210b77f76c309c0963f62beda4e161bba95689b22be0517b2335ed71b5b9170cd1ae7ffb33494ca222a422dd4b0dc933fb379ca270e42bc362119fb262f4c116cc49fb91cd9dfa094f487bd8f19f5e"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_11(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d6eab3988d4dede3b15a7efe0525be38"),
		nonce:           decodeHexString(c, "3f80483a12d206ff"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "315380dec9c6fe0f1c777e85ebd265db19227b3b34351eec0e72cd85bd631c72ae3a22cfa973fec74c67af5bbfbe7ac60d7fa219bb91c1fa627edc9682ec30c10d5f8c1be460f6b974d53939d3762a89"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_12(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "bb334043d219c0dca576c41732c170dc"),
		nonce:           decodeHexString(c, "c8950b84272fc33e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "afd8e538ffe6b892b595da45cdffe799835a1bde1117fd17a9c7194880f1aae8fafcea80a49ea72ac8b2600430fd2c896c214762b04aa3e329812aa7a9cd19f2bf7d8b6c3df022117c4b8f13c9240e01"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_13(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "67c3f334ab77b6cb276861c01da995c6"),
		nonce:           decodeHexString(c, "0f7105d28757f1cf"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c8f8a34ab2b49e102cfd88675cc1609d305e0db5eb3dd9e31fe4401b3d3862d7c6c26ccedfa94c5a396e1e135f449d2cbba19b0ffb3dadbf1714c665e05cfb68901eaa67f37b5e27d95eac0e4cbf3e84"),
	})
}

func (s *drbgSuite) TestHMAC12_SHA1_14(c *C) {
	s.testHMAC12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1c3fc8de26ddc78651c9c2e4ba874ee0"),
		nonce:           decodeHexString(c, "ca6a2d3cc5495dd0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d00ff8d3b8ca273cf7c3650e36c892018c0f765da45ab5b902c5accb30ffe01a99d3b86752195dc9aa1232fc852790ef51860fd114bdc78ae02acb5ab2021ec726829591d623b0b66329e641c1f915ce"),
	})
}

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

func (s *drbgSuite) TestHMAC14_SHA1_0(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5e49a74886345e9b117f9614bbe51834"),
		nonce:           decodeHexString(c, "0f426b79ea3c7495"),
		personalization: decodeHexString(c, "67d609de0b54fa9a92f9251d9726948a"),
		expected:        decodeHexString(c, "b63513680a45c0dffee048e0b848cf974d5f761e5ee6703ea56eaca8bd301c6c293eb294248bbb1ce4c9b38e91afb76a72497bcd7699f700688f28ccccca4c9be0dddffa0037b8545864b8ac3d783b29"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_1(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6b1f7e4651cc692dadd3551f387ec5b2"),
		nonce:           decodeHexString(c, "98ab6ae4378c2de9"),
		personalization: decodeHexString(c, "d2265947f751952cbf7b2ec548466cf7"),
		expected:        decodeHexString(c, "24b722f9fcf5b86068898550886505b7b5997f6add8418e9e2d53f79f9f5f2d1ae590119b26f5aa60b4f27450fd0d355819a13f8d3db3385d9487e37f52b65e4cd77efd1c00d4a5a07660681737c685c"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_2(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "50ea9be56fdba8e1eb1a231e937494f5"),
		nonce:           decodeHexString(c, "e49c8d0e27102d0b"),
		personalization: decodeHexString(c, "35e02c00f76e70db54c62d9e59695640"),
		expected:        decodeHexString(c, "887e40a6535a39ecfd43232b0fa1654c10996dc2c68a90e5a5e7f4c064e253ce22bc4a0674b27e58f233bc3268381185702b64c35b9fd946461d4e630322f15c15751cd3be2e11d617cc4c374dd4cfec"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_3(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "24cb5ab8b0ef45cfd12a47689f547bce"),
		nonce:           decodeHexString(c, "a27c36776e84f9b3"),
		personalization: decodeHexString(c, "12067dfc22ca9fd7a417bb7b1ce74bac"),
		expected:        decodeHexString(c, "fb1bc7a75bb2c665c4e16d54f6662d3ca8a2c7522e2307a026963bc8c1cb675f3003a515d6692bc778d6d06d730c1f4c2b329d0b1a97d509d810ea04e93f24e9260aa0e3ca458ff203df50b216d5d070"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_4(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6024862593338c32104e15cb9b3e7f3c"),
		nonce:           decodeHexString(c, "e69835ef6a4b9b76"),
		personalization: decodeHexString(c, "33646094468a6aeb6ffdb0ed51fa816d"),
		expected:        decodeHexString(c, "910b888451135677f489a92e74386d9105c3e3ee0a237cacbfc7593513343f7191b8bf3ac024e8b08339f48d851af412f69d99ca79ec3f77ef515f1c50a3e8c76a68020eb7cae42f0b5c85f2d7867483"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_5(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "97ff32ce46d7b677ce0ced4328ac7380"),
		nonce:           decodeHexString(c, "5caaded67b7fc4b1"),
		personalization: decodeHexString(c, "52a347f8a748f6cdf00bd35c06cc9938"),
		expected:        decodeHexString(c, "6780be92c063e33829dbe1967e57259e874e1257b68c124d281830ed4bf701d04196e4ca5aeb4b9de3495563e10ef74dbe89700065852081634873159bb07b79a466798bdfd3991c1dd8f44229644246"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_6(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "10c5b4a8ba0ade3525deabe099cf8a93"),
		nonce:           decodeHexString(c, "8c5d4bce78945c61"),
		personalization: decodeHexString(c, "a71e5244ed23212e9a823889dec45311"),
		expected:        decodeHexString(c, "c39d0bf6772d31e6cbaed8784055441f26bab0e22e2e20e496182bc06603b0c625b199aa08ecfab23f525b8833e18e519a73edeb4eb95fac1597e950cf775e877ab6d5c4bdb3e68a8ef52ae4940266fd"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_7(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6267b5221bb5d4bf9175088b2b614813"),
		nonce:           decodeHexString(c, "44d4c8b9f43a289f"),
		personalization: decodeHexString(c, "3942ee8267758df82064dd072aa4b031"),
		expected:        decodeHexString(c, "67dc72ebbe5e277d382714734b6a76953ecf872b62e1715aed38540f8515e38e98a91ef6691abfd802c3ad419a3051686b503d5bf58e0bc9dc9cacd2a4972d5759eccb96337a4289a0b8af79804d0f95"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_8(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "fe17ad7b3253557a3753e18e2817a6ac"),
		nonce:           decodeHexString(c, "3cfca92eb552914c"),
		personalization: decodeHexString(c, "542c51c478d007182487d5316aaaa728"),
		expected:        decodeHexString(c, "4a7383a685cbeeaebfa9cb93a71b5fbd264aab74444a048d89bdd001e2d6fab33de0a2840a9f43b32ca0469e1b6d769332d1279929aa0f4aa2323689009166afa34c93c5f71f7c68801efa919b2b1831"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_9(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "bb67d6bd268cf10f8ef5cd032a3e0337"),
		nonce:           decodeHexString(c, "95841be3247b1613"),
		personalization: decodeHexString(c, "2470df0fdd1bb5061e77f15fb4501b6d"),
		expected:        decodeHexString(c, "4a569282a106bd2c1a7c7a268c0a9bfbc63234d923b221239bb4359aca36fbc4892da7812b8fe0be8359f766b0fd5068242873c7f3660b6694e73a3c86264d1ece9f3607f7a0b8209045561472c89c39"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_10(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "10102cac1368c5b822b4a547392d14d4"),
		nonce:           decodeHexString(c, "a9597155cfbe324d"),
		personalization: decodeHexString(c, "153b8cb80f01c8f34d4b6e7a3491ae0d"),
		expected:        decodeHexString(c, "f2ea8f4897d24880bed508749ca4db5a14c78181020a77038113e96f1ebdcd76d57bcf94f7e88426f204ea591e44d090f269dd1c2daf529f73a5c1fd1c2c718bd3cac431111524ff875217927455a80b"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_11(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7cdc836a14679df8bea5fd69e8622aa7"),
		nonce:           decodeHexString(c, "913462dbb0232f40"),
		personalization: decodeHexString(c, "e77de726e424ddc68c24684e82909718"),
		expected:        decodeHexString(c, "41adf58187f1fb944653aad1e0bf32c27d19b1843f43298509e09d99b1c4e0d4b2656bde1fb4de43b0037c528b6c433d85bbee310c289d963e38cee2e4b7dc063959286a94e5e433af610fde78666665"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_12(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "38b2bb6b2c4ffd6d32ed8e44c29152a3"),
		nonce:           decodeHexString(c, "f7e32604ddee8265"),
		personalization: decodeHexString(c, "671e0039164d3f4763894ef7e0a6ae9b"),
		expected:        decodeHexString(c, "13c539e208831abecb6144f51cb34c3991be24b85d460ddb869a3cc4096e3a7ba89246b57a4b66678df2329d58c32dd9996fa7611d0faeced9ec361e22dcf8466ff8e7bf44139b6e68b04a8930b2de70"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_13(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "cdc703b17db7b05d14e751ae8a88ac64"),
		nonce:           decodeHexString(c, "a3e4f21b083fbba9"),
		personalization: decodeHexString(c, "97acb1789f970d21d417d4754909b431"),
		expected:        decodeHexString(c, "35671517954ea541f6d75a3b38da1e39014fd1a6dbcee4b5bfd723030734dc73387d771b22fda0b2a6d19980d1c7cec6ed69f6006519c1fb5aa8c2033b357a83a738771f3f5518f297f8cb6d1982684b"),
	})
}

func (s *drbgSuite) TestHMAC14_SHA1_14(c *C) {
	s.testHMAC14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d5029bcd6cdd778fd24c53edaad4cefd"),
		nonce:           decodeHexString(c, "84f7310a7ab653e6"),
		personalization: decodeHexString(c, "0fb2233c2cea27d17b6dd93bc4621285"),
		expected:        decodeHexString(c, "a2f373a523ac9f2524b059d0c23bcaa905e15948c7ebf71b6e82150aef562dae4003c1a8a3748cfd553d9a51a8f9450b9d569d96d897fed50eee23978e49b364c64db63fac9dc0fe9e8b58836aa04a74"),
	})
}

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

func (s *drbgSuite) TestHMAC16_SHA224_0(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a76e77a969ab92645181f0157802523746c34bf321867641"),
		nonce:           decodeHexString(c, "051ed6ba39368033adc93d4e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8925987db5566e60520f09bdddab488292bed92cd385e5b6fc223e1919640b4e34e34575033e56c0a8f608be21d3d221c67d39abec98d81312f3a2653d55ffbf44c337c82bed314c211be23ec394399ba351c4687dce649e7c2a1ba7b0b5dab125671b1bcf9008da65cad612d95ddc92"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_1(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "65cdaa5ab147d0c79fdd02b24fc94d0e427f59ef9a31f447"),
		nonce:           decodeHexString(c, "458c6befe0c2cde5a58c6b7d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0d164682b5bb552a53a2a942373639d98576450ca632faebc15060691a4219467c5aa106034cd19a214a0a4f31d402e68c4c565f49b33b680d522ef25f541e8202be779730376fdcf5b7b58fd6ac959204a88f91008651d2c02ada82505f914d4d9b9aea7967784e5320e185e1248270"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_2(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "650996f1477112af7604386be5ace78232904315d99d87d7"),
		nonce:           decodeHexString(c, "2a06709d331a6f930b447cf5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d3341d7767cfd95640a107b3abaed7b4e1855b348e3ae5bcc53a0b0d49d4b4976837ec8f376f38327135578eca7ee583215bd5c79ebf499816f79afcc402ff1e9ffc4ad0f896761c9cff75050bf84baa194c355763b16b5d2648d480a2b48f22662685de39c7cee90aa0b6edf8062e42"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_3(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "898640ce467201a53e7731bdfb572977f7eb3e49050bc1e3"),
		nonce:           decodeHexString(c, "67ca74bf0a27376d339d09f4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4f5eea927023b4abab5d4d9944e84ca001ee081cbc21d4080e1534ee6d1d8a6f60361029ffa983bcc79b5d65d4aaaaaf98983de13ddde39a739f9d95878fb31f57f96184e5f2f3adf654a468c616237fcbc6b2c194e247178cb90294f631c449a01f1fe09c02587c460305be9fc71b5a"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_4(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "fe405dd73956bf6ec875515eebd8c5ecd60553643da75091"),
		nonce:           decodeHexString(c, "4c83dfc93611d57390af7324"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d8ae0eb81913a190c439f8ffa56c06155a73f84b20608b2b2e9eab3061202cebad18ab8b3eba81672152c1c02ef573cd6e8623c392facb6a857425c6795cd7999c1e7f56f3fa9accca018076e0bfc106d075df98f5fb66f28933215e9276777dfc479e71a8d506a66197918d9b0f7a8f"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_5(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b06892f6f455afddc8eb60aae35b35a64f63b2aa85a2dae4"),
		nonce:           decodeHexString(c, "ef489266f7bc354f72d68b71"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "fc10c03fc37d3bd5fba6591a97f6354a9ed8ba2b6806744432851f43a3ce6418e39ccb417b8539e349acea588e2abe5da06147c9825c6e50a31f8589a57ca3bfb10f0da9c8e89fe2e372b5af1cf96e0fbeec5d99228770c41a76e587da7d8764d5f235f5d1d6188d84ae61c52c2164fb"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_6(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9174e174e9e031f62b2e19ae5c0bef22eed7d5598e6e7350"),
		nonce:           decodeHexString(c, "4759a2c15b05c2473a721d26"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1962f2d473b31a2576dbd78022f4eeb974641fa2e9cb582f03ab741929f51f0f4663129e68ddc242e1c2ceafacec3dccb97e09527aff46b948f0abcea1451699dc3ae4d3fb5e04c84337e17b504af2fb5f1aa6ec0033ddf138a188ee162c497526563a67da8015275d89f0e1e902b2ef"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_7(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "eb1d45ba0d8951b7b1d7ce922b7d1f6e94da8b821940126c"),
		nonce:           decodeHexString(c, "9da5b0b4382425930743a051"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "306b1f733e6f69b6f26b7baa5441af4967a5cad8faad18029440aa989aef6024dbf3ba02dfc2c694dad6496ff760d72ae6914a4dcd5e3a443f4bcb14bf2b64986f35c32449f15e3084d46fadfa2ae213da6b26f787cef89b6a23084a929608a9f6acd8315808c29f8ae435a40202a012"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_8(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "78cdc1567caf2ff529ef8e3475c0fbb09a48b687a544f739"),
		nonce:           decodeHexString(c, "9f503948621f29686fb15216"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2367067d8ec189b0819eda34602768a0698b4b545c7d5214fad58c9787b89809b97f3af5f9349907d2954f8c0dccbdbe63cc019bde3a6fae10497ae57f33e91ed55b6fc4a83fe8a2463552796d5120da8066f7285a8388958817b1218e006d7fc617f453ad0f9217966a0731ba99f093"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_9(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "25f9ee24ee25ad3d29a974f8f552b178cb292b847a6be806"),
		nonce:           decodeHexString(c, "94213a6c0b33e25e29fd3ecc"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "32fe251a619d164c217365b12a313a942b6a9c3df007751a5fa9f356412d1142c785c292e3dc9d0b1d77e080892e5d39b91c58fd142458c71182061920a0721db453a32fe7ffc8b2c20bf11894fa37d8f0e9463edd43a97f65362295119be03d5e06f617fdff6accaab8c4da72ac8f81"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_10(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0b644221788c266aae00a3b63a87f32ca96a6c32b116cd37"),
		nonce:           decodeHexString(c, "caa4f75ff5d7e56be3b4e20f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dc9245da77502cadd1a8ac4d1cf6a199c8e529deda10c87ab6c69ceea6fdef36d45f4d036021b93fe5b342c52fe1e71d81e617bebc58804af3109bab93dbb2e5c546e108bd0891710128b5e8e4a4f01df2003d038fec8cef426fad7f72dd5e091b4850e9bf4932d60deacb6e9ea3c5e6"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_11(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a6677badff70966a3cd2febaad7de7aa5849ba763789b20d"),
		nonce:           decodeHexString(c, "0a39b6c569261b826cdb15e8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e04838c970f5d7208a2a7310da893d65391666a5dc62d9ede71fc30816cfc3e8064ac59cc9aaf30283356078c812676ca20beb044a6d78db6c5ef9718a88559607f225002452c01459944433013cfffea84d6fe404fbbbc2d66bb50a2fa01d8a5d6e4ea9b402dc5256752461bf6fcb7f"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_12(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2301d8c053312db04882f4284cf8b47966c1c9b8c49de847"),
		nonce:           decodeHexString(c, "d0c11f14c5f70ce19346562b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b46246526b28f3ad7f6d8732ca3bfc40f005d97a519640a4ce728486d8bf830d661be5a97b11113e89096d9bf15cbef73ec28ac13e3fbeadc9bca500918bbe92ea23e131cc622dbffe2272db16ec5d4ca30e9bd986d1709ae22d10180514bcd11bd6218ea1fbaba101444945a17a4c4b"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_13(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "78644ea1b0c4c55c4addeb476fc34471ea2c4393697aa4f1"),
		nonce:           decodeHexString(c, "70726010c443b8e1c4a6b3ea"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ef1b41bd03ee8460d55759db65a4c97758f48e3a09127be04c7ed08bbee5fa5cf119929df42c187e2a347a8df99c502b693a7ae41946f4918d84686880ae29d6d8fbbc4fccc9e295876a249cfa59effd331994e84717b4c76637df36beb960761880daab3d43376341439af2ce8e33cc"),
	})
}

func (s *drbgSuite) TestHMAC16_SHA224_14(c *C) {
	s.testHMAC16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "71acb71235e88e3aa6d8bbf27ccef8ef28043ebe8663f7bc"),
		nonce:           decodeHexString(c, "f49cb642b3d915cf03b90e65"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "144aeb56a11cb648b5ec7d40c2816e368426690db55b559f5633f856b79efe5f784944144756825b8fd7bf98beb758efe2ac1f650d54fc436a4bcd7dfaf3a66c192a7629eea8a357eef24b117a6e7d578797980eaefcf9a961452c4c1315119ca960ad08764fe76e2462ae1a191baeca"),
	})
}

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

func (s *drbgSuite) TestHMAC18_SHA224_0(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f6e68bb0585c84d7b9f17579ad9b9a8aa2666abf4e8b44a3"),
		nonce:           decodeHexString(c, "a43311d57842ef096b66fa5e"),
		personalization: decodeHexString(c, "2f507e12d68a880fa70d6e5e54391538173297814e06d7fd"),
		expected:        decodeHexString(c, "10c2f93ca99a8e8ecf225400c804a7b368d93cee3bfa6f445920a6a912d268d691f1788baf013fb168501ca156b571ba047d8d029dc1c1ee07fca50af699c5bc2f790acf278041518141e7dc9164c3e571b265fb8954261d92dbf20ae02fc2b780c018b6b54b4320f2b89d343307fbb2"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_1(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "85c2a5ca453e477b5ced164a6cdfc7dff9c2fc349dbba685"),
		nonce:           decodeHexString(c, "e4a5e79066e121b8e7bd5a8f"),
		personalization: decodeHexString(c, "68e0dfc8145a32d83cd41d76fc19901d0cdc7543755586a7"),
		expected:        decodeHexString(c, "fbd2ff764ba0214371e8e0604584368ab0e5e7887ea456965b62986f41d7cd2a969035b5d282bd59ee013b730c01ba419f5e553407041106df164187febe1e42e128a298a572f812f5cd5c67c3095b31a2b86c0f64c7b04823ca4ddd5e775e5bc1132de636d4f5ebbf319ff81a815fe5"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_2(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e7f28c80e8259b43f19ca54a01704a35f8498ef4f2634289"),
		nonce:           decodeHexString(c, "33ef9a168c0131db69e95108"),
		personalization: decodeHexString(c, "60593dbc4e031268eb06bcebe83b9c04b8c5fca69e787eab"),
		expected:        decodeHexString(c, "dde91517435ec8a37bb5bdf117ecebb41ad013830c04977c93ab0bb58ed069480fd75ec3957395f0d6f3ec4f524a24f66940ca3b43d7e91272803a56cfcae22b2a345765573f861d14840cc35f1e6b911a4b831caeaa4a9bba798c82a803dee10de853e6532463b359d07f8cc8ae2770"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_3(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1593a81d8c7c2fd04930b7549e1ce0b0aad740d686e7b972"),
		nonce:           decodeHexString(c, "304144f81754fb0a9924b5c6"),
		personalization: decodeHexString(c, "07b6ad022234b1c7647724df1646fd0f037fc60be15fc24e"),
		expected:        decodeHexString(c, "ea8071c8d8e32db997cab20ecf42ce4ea102cea5979a2569f6d60ea8b0cb1e252be78f6c78007e4a0e42ee7c8f91e12e1e394b8bf94de08b8fe6dd77ee8e7bf932c8d7c91a879d34c635c8b4ccd3b564bdb01bbd79f9648a0de72e732ac33fa04a6b283b4cab36780906bdcd208c8ea9"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_4(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "33b9aec94a326b9de5f111418d2a30900d2a9d1ca60ca10c"),
		nonce:           decodeHexString(c, "ee3213ee1270075b54dda450"),
		personalization: decodeHexString(c, "cb55e3ed03539bfe2b60f06a5d9b8a0dfc252632d94f0498"),
		expected:        decodeHexString(c, "910dec9bef9cd59c4eaab2e8a4e1f3ff796c230836de21dee4d7fcacb733c516149ae07b6908998139a454eac06899910fe80369cfaa397b6283d9a1e1dacda11dd6dbd819bf9937f1d675b1921583fd37438becaeb66801576e462f4cc14458d54801b63e3e07e1d454a321909e8e79"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_5(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ccea05506f38f222efeb575b55b1427f24462ce893503b85"),
		nonce:           decodeHexString(c, "8f259640b14a0740b4261701"),
		personalization: decodeHexString(c, "c1b85c8c907abc597fd0193deaa93d0d128e6dadf1547392"),
		expected:        decodeHexString(c, "7b75c82104d086490eec75aea3a548e2f09e72e87262842f976373ca3643d028bd0d39711e783605d65a0a75a126efb67ddc18a57c704c16c6193b168fd89c99a5653b033da90730920454d5549e2e5bd76c0cd8822f101a50996e91fe9d3efee8d7daaed50634936ef9d5825a4d08ca"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_6(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "10aca922f6daf58bfe2aaa25ccc266cce780d9316fc514e3"),
		nonce:           decodeHexString(c, "abfd6e8fb7db495635aa12be"),
		personalization: decodeHexString(c, "b64e51f0f2b0a2e36a68f0235621e9b1f44ad46003c911fb"),
		expected:        decodeHexString(c, "a2c002c29f2aaf575d16a0892a0c05b1065af44104876d571cdf7b1193dba7c810d216d4f1be1444a56f2137e08dca99e765df4df9c5997735b60845627d290f24110c260a0b3d26d813acbf196438dca33e8af84223e6e37b562b368ee0e88482619e534269b71972a88bc74aca7a04"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_7(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "43acd2920393eafeecf55f8b9fdb2ca607e677bd7a5966cf"),
		nonce:           decodeHexString(c, "02d25c09c3f44fddba39e18c"),
		personalization: decodeHexString(c, "f3aa9e7883ac3a29c8b0b585340ac7e94223fa549c3e3257"),
		expected:        decodeHexString(c, "69f44057771a92b0019f7f6e5d94d226d9cb144f084b5d3304e9cfe5c98cebe2655f0765cfce9d1cb00e3dc29c7f25731d9da33e9537fd58a8f310446d03fe2ebaf2db71a6fc96dd30276afd5b6627c3912e9b82dfaab899c83785bcbab0a24c6534991ef0dff4d076cd03b17c83c05f"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_8(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "4ed7fcc29708b42d67d68c63ac8b25a90ca779dbf0c7a68c"),
		nonce:           decodeHexString(c, "ee8e62054d236ca19b20eb25"),
		personalization: decodeHexString(c, "271c11420f431cf629c82b6fbe67a7746c73ede5447611e1"),
		expected:        decodeHexString(c, "c4801020b3568c78db7a56eaa21d8c0af43cca2aa576d04e7d91073e5ec4fb26bc915101fd2e88727af43d9217ed2aaa84a400cadb94ace9d80989b9cd323e5923abe46dbbc37e59be9c88079c0bd79c950638a212f78a2b15e0e60b746628ac9454375de26cf5f4f6dd5f13ef2b0d4b"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_9(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "fe355ae98956ecdc547fd874c44d10f6446640abe51b7f7d"),
		nonce:           decodeHexString(c, "fd94dbbb09eb0174b9803b86"),
		personalization: decodeHexString(c, "4ed22949f8454d2de680aca77317bfd60e7b4cabcc6d7a1a"),
		expected:        decodeHexString(c, "50a093814d2708355174ac293ff6bb3ff49db74178b0cd9e8b96185fed816f174a86a8fddfe7a9430876783c652f8d9bd1fdb39b6150a25a4e5752002784d09f40982acf67fc27e98503138f9bdd76740c8111198d6279138f04bd8de187113f5b72bc09164b8cdecca60bc002d73324"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_10(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2f51374b44ec63290afb879b82b9601903213ddf84856eb9"),
		nonce:           decodeHexString(c, "b58be25c11bb61f4beda20c2"),
		personalization: decodeHexString(c, "29e20d31c37eae481532c04bfb635fc370702c37bce02749"),
		expected:        decodeHexString(c, "8d962a05b45b9640eb8c3fec53c42356576f226f1105a99f440377cfdd393d9ad603c5882311a8f4433dde920580418b6de917b1def9ef0340d5495ff1df4cef4d32193d0f39f65f79790ebbe122f63531354c0e765cbac7ce5e185e73bdcd43a2dae95adb5ac10b34bcee909ae504d4"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_11(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e9ce04369bb6aa98e676ecc7adbb291f1d88062b0632a977"),
		nonce:           decodeHexString(c, "40590644da6089f1ddd0900f"),
		personalization: decodeHexString(c, "47eb87b07bc34ad3094a8ac55bd2f5543f6d83d864924dfa"),
		expected:        decodeHexString(c, "d9865e8edc0d19dc4c68305c85795fdda2e78342b29673dc4341f901569509d9fc9f9579feadb5576cb050e18cb617845049004007186f8d5e6e9f19655e15fd218f5c346055ea668e94736b1fb4a1f759dbeb4817a1c1cde4a6606edb929ed57179284da743f08836369743babf4d16"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_12(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b3b7f12ec69d825d366a473be79d49d52e33e1e578c85db5"),
		nonce:           decodeHexString(c, "e9ac6bedb660c46667d70ebe"),
		personalization: decodeHexString(c, "60b409a04c48179b4da05696ee5351b501f26a74337bba4b"),
		expected:        decodeHexString(c, "09fbe28bdd81a2f4c4fe2d44eb31f3b654fc0439333b12d7b6a839e9c0047dffb35f5e04fdeb9364cf11b6b435145e8435086641efd43082b3525252197dc4cf6b1cee744bef9171ea67e42d5f4c4551aae4da8e062b25ea0724355c72ae090b43e4613311530938528d015a449d26fa"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_13(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "616e5b7bab53e0f03a7e74d334767a927ce4bc0075525dd6"),
		nonce:           decodeHexString(c, "19a473a020da1c915dcd3b09"),
		personalization: decodeHexString(c, "059253c54f664cd68682db12ea6ea2bbf57b5ffa76b0a11e"),
		expected:        decodeHexString(c, "b0e456d5fddb763ca46103a4c63f3dfd9b0362293c57b1bbac9a4cecf0717d8a14a9c23a4d8907a2eb4dfe3d1355018dbed5e4ed7675db5db007d233a2f78287ec75210f708f8a169b6bd6825050122a21fd3d4274587fbf28be83993f66f143372c1d5eb1df9c63247b21f0886933ca"),
	})
}

func (s *drbgSuite) TestHMAC18_SHA224_14(c *C) {
	s.testHMAC18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "5560084df2bb17f0c54b951d826f5027169503c6175be517"),
		nonce:           decodeHexString(c, "e8c5220ae48b0ca1412e9c74"),
		personalization: decodeHexString(c, "a0a1d6d3887f7ff9f13c85d6ae5af2c840fd85989b7e50b3"),
		expected:        decodeHexString(c, "14f629aee43f71b61d467ccc37de8eb6110ccdc65fff57ddd2e66707bb768e5de5df5467ccd55002815d306adc7b7d6b5d87c20d2922bf5fd3790282608457b69720be7d7affcdfecd173a741c7fc99f5f30f981b1bc102977a61f1515b923ba53cd87a37faaac12e0af613ba0972a0c"),
	})
}

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

func (s *drbgSuite) TestHMAC20_SHA224_0(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "bba743058788f9cc91a321caca494b3ba5c72744950ec788"),
		nonce:           decodeHexString(c, "8ca27f243ad670e805814af6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ddd4d2ec6e05f6876515d79fd6f1488b5aa61786a8b7ecc15f865eac437bb71b8d05d1e7e376f4857c3357bfcabb1ee3d933316dc4b67e69476c7d3fde0a26eb386e5d2864cdaf99022101aa383bf100d9d0519b6725540c5e1eaac71e4444dfe8ff8cf35eebb8fb5a804226a7044bcd"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_1(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b9850e5d7dee9ed1c6cd75c17f97a5f4547de22302442b38"),
		nonce:           decodeHexString(c, "d2e59541e55d3d9effc6b1db"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7ba9ea4bd21b7878067eba71ee78acf4c6d3387b97045940436eb731d534e543a5e14887af8ce33b0f6496555d8badcdf7e8d2c4d8de5489b4feb226d2716cfb90aee90fe189e67d03a923ae3f8afee786557ab1fc8386f94cac58f0986854b6cb6b2c90bce778a367eee0b15655bb13"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_2(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7204f95f19a279305ad41b9d0cb7dad7279fd6678ee3980f"),
		nonce:           decodeHexString(c, "67746832a7420086fe591a5d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "556364ff6f63208683fb53f18c0dd2db792577423745bda42437c1b33c73667cf257da823ee5080e0c103e6ec57b6e81517062c55989ce76c257808151dae8a2932cb78144207c15f6c9eb4fd57caf0101a74c1c9b42d375646997de7a035f3150433c4e912e12f975ab8494d49f91dc"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_3(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "748e2ae47a2c03365491374e7406c408958fd08e0467570d"),
		nonce:           decodeHexString(c, "3a0e87c3f6c19285981845dd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e0475c909d0d13d389d0828dc50099d1258ac5382c68bba1abd2206e03bb7af7d40d1a01510f9bdf65cfac9efd047a736689296bccee5ff1a2e376cfcf44f96ed6817ca249353efa42921b0f8723d330877afa17296fae9856d628bff43bb929aca216a29a4c1d9e69df7570dbb3e5d1"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_4(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "dd1bacebf057c043d76d83f86b46fc764e2290e4d68ae537"),
		nonce:           decodeHexString(c, "e08d66b15f2c49f4889df2c6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "09bd632fadced576c3e0351873fa9539fdc499f41220b847301a8aaea2281c1d9b317448552fe262b822bef8779a132d66f9b27a320279fc92d5c8373f9aedd20f6c2a422a9f34eeb87587a1de6a2150faeb4403912bb81128c7409bb58a2261aa7ea47294cb5f5d3601e721cc000932"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_5(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3e894fa8f7e68a9456340088d6efa3cf3d2d80d96aaaa89e"),
		nonce:           decodeHexString(c, "def642aabea32a79ee0600bd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "fa8c91477e50c20838c0edc8c882d4a76855b5e406665c26142bc4593a6d75998dbcc0865423345ab846da78537a915a94d60e3d2e2d1dc265c00b8c589131d82f5a2916205b42b7c0d0746f6b516357dcdd0dbea1ce7279e8879f79c0bed8c94ceedac2b028c14655c186d160ca138f"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_6(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "02e9ec23399fa27efd580a333ff8161e71a4f049f02b3655"),
		nonce:           decodeHexString(c, "8f4bb7f7e0e9f208462580a1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9ef5824559ce7832f6fa9932ee1e332f735d42a8c21224dca73205400f4e0b9a758b691956389b8ff78855084652fe29b5b77f56f22d14274e030e017f5c0d75b9b4ebd4d540d0a5f057946cf17ea6aaa94fadf6ad39c0de7a7ebef4e332a20b8f4f5ed1cf95620e41ffb6ec105a78f8"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_7(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b2480a2abbb49706d7ded682e76fafd53b8bf1f0a533590f"),
		nonce:           decodeHexString(c, "ba562cdde7e35c6f9c41f1e0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "723d464216a191a10cdaa96d4c9015fbd2f7ed29c8eee3280c5563353fed2c2a2b41fa51a72aa6211f3798adc271f7927e0bc31ef157d941829d43b27d008d17414c4dc2a3aed177f3cd3f7de16dc2c2e56aae74353ce2613286864f774bc2f1388c0284d964c095e7260c94bad47ce2"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_8(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "4d07b701d5614b0e96ce8e31bb8ae111b635852fd55f188e"),
		nonce:           decodeHexString(c, "ef66012b0999abdf3e6fac06"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "53ca443e9c3a2e7b88312bb2989219b0ca73bf20167a5a68aa55622b7d3019094f3c1ac312b19c746b082fd2d74bbdbfed24526b0220ae13c3c11e66f7b2f7a0f5b3bba01c8a19d056780d49e79366cfb965690390607d7473ecfd9d48b73767e0098df0fe585b49fbeebeea121b07e7"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_9(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "573a180ee9c46067473e29a27a89e11973af9e061d80a908"),
		nonce:           decodeHexString(c, "f39acf7e26a154ddec7c76c0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0013711f1a3460cead54bd7cd0a3f13e461e5321fec3971a9c7ac8eacb97d9c373a5e0922b8d0eb5fc45c728a9f00486bbdaa2b88be2a8f9ea69cfe168a0060841192c0d7457ebe350eae30819d74ab3068a8d67ac28b29d6ef48fc24f845460706812a1b2700a53b7ce69b39fc9520f"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_10(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "168a647155e7849bb6e5405fa65fa2972fd869a16970912d"),
		nonce:           decodeHexString(c, "8686d17cf524ae8e4eb937a0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ff6b061a4743a2b21f1be263e0e620715e2807c507a2d6889420562bdee79da662ad40983215485bc4155e0251b449b80cc787e34ba07a172cf4de74988545aa7ef16d00b8293a60eac04d9826220f37291d83b54b912dca8c0debd470801264aeb4c2327873cef0895a76bd0644c010"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_11(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "c0e50ce5a5a5c7389a19a3f24fe7232bdcb4f08542cada1a"),
		nonce:           decodeHexString(c, "3d27e3b7542e7a9f88905c8c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b603a876767cc7bd88e9414a5a2f7699254aad3baf8b40c4415e468ab70e2490bf440afa0e2e307642ebadabc720ac2618091993049b6c5b90287d85c9f589d291911547ad2eaad5d31635af2d2b77eac3cf4bec600ffc4d43cf0526897564da9c10dd7a3bb17b04b19a64d3bb5697d6"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_12(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "41e85704f784e21622628ef5af301d9ab2bba7f87430d37a"),
		nonce:           decodeHexString(c, "d5619a9a2b58e223f6c256a0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ec42453176fa42d1b2c6778172d2df6b16f5e91e44f5cb1541dad058ae0abcb6b41da5689e649c5ab4022b4e5f56d33db70cef87adc287185bdad3400aadb294a79fd583ba26835ad58dcc640d15286352015cc61f07b875efcf7d00ba01f2302d20b7ea3014597f89b2dd9d13264fce"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_13(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f2c14695ba4bcbbaf6ceac7da25e075e47357ca5246aaa7c"),
		nonce:           decodeHexString(c, "8829afa614b4556f605a7e2d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "72ee34f0ba35b3e8ea058357b6c848503b0b754204f4706c54f532c14650093c6cb993c2c3982251610a6e09c354244c0ccd8ccb6d9fb4682cbb594547a0d3e69fbf12e6151208847baa6a748e56ea7807fce18af95ce8aee77dde17a7799d62eb91ca37d4c3903191560d82b73f569c"),
	})
}

func (s *drbgSuite) TestHMAC20_SHA224_14(c *C) {
	s.testHMAC20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "30efbec33ef98a928e9441af3caabb34cdad892669e88130"),
		nonce:           decodeHexString(c, "f77b7e0fcca6f8733e0bb0cc"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "85f5368cb9f44474af6c4a159477c5cdd05eb0c0a37847bbb07e9a9c8f633ef2c3727d017f1bbfa89dba056062202f5824b3a493ab53a2a5fcf796d944577f1393d35f2a284453b2cbd8eaf35b9bae7b87c156cdf9cd0a2fc94ddb0d4842e3ab4b6c97089cac0e32bdeb32dd8233fd6e"),
	})
}

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

func (s *drbgSuite) TestHMAC22_SHA224_0(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "cc77c08df466a3f73d20f613e39ba50b5aee8cea3dd9da69"),
		nonce:           decodeHexString(c, "f9637f3f581c27e8154b9359"),
		personalization: decodeHexString(c, "24befa89cf5034a5bdfa39c6a7e405cba3f3755f38d6eb40"),
		expected:        decodeHexString(c, "321df4649ce0f94f53f44da95cf8912b35dbe7accfd075ef9b0e89c040d0bb4a1d41a2ff80f3e2ee099f87c4dd099725d0dcecf52bc082f9903b0cf0f1438443a9e25786aaa7e0bcea67f2b165755ff28eeb9b7803d1bee81e3f18c2685fdbc378b05b52e7a003f72a3ae8e1450b9883"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_1(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7685572080f06c46c8242862f877d58bddf4a5fc9d553d99"),
		nonce:           decodeHexString(c, "4b3574aee84a3d07f033826c"),
		personalization: decodeHexString(c, "69b6ddfc1327bde11e24dd793ea5494296f79a6a4f88f1b5"),
		expected:        decodeHexString(c, "48ff1e1d05637fa86d0ca93341f684dc94d238206f8cab1a5c6e4c32a820430eceddea0c293d5fcb613308fa230a618b690341d1ca17ae694a86666f1bf863351b8af6fb6e913293a610f5447711f0bbad01105090b2ac03d5691055dfa2fc6b5be3757ee4e2b8309f04e6ce8566f1e9"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_2(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "dffdc5240aaa288dc1e47afffa775231ed1c59fc9913fbd8"),
		nonce:           decodeHexString(c, "9236964c000396c803f7d2a2"),
		personalization: decodeHexString(c, "1fceb760271c306b9fb1c1f433d24862fa8798b3628001ad"),
		expected:        decodeHexString(c, "c2a591f58da6b01ff2e841958e4495d07f9641ff99d8ed056ea296dca602d0ee07ae4fa33f44d4e21dc0a266e3366f20d019c75d13f98bee7f5b024ccf9aa13f2068cf74f93af9df118decdc4e073df30ee90040963ea367b2704579ee395ee1ac83ee79681a4be4f01a4626c5f7bfc4"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_3(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9e04812cbad24f5ce80fa2b45ba880ec17b26fd10cce6020"),
		nonce:           decodeHexString(c, "3211900ffbb9045d3821c919"),
		personalization: decodeHexString(c, "b01370ba341cff79f7005f892be62a84060806438ad14311"),
		expected:        decodeHexString(c, "bb60bd21005a3dd93bfe77584e1367547d0e3144078ef05928ba3de70eb1e6be2d066661cf1e0552b0f6125111628c30cc123feb5a3c057fb969f25fa7c8b895c36a828cd627b56f46dc7a5ccd40ab8c8d8e5ed558605019c6be6d062fe9d86fe38ffcda42bc9708a4334f43a8d9f273"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_4(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7af6a521fdc55e303c53334a4effe014cb7ced725ace9ebc"),
		nonce:           decodeHexString(c, "e5713a9faf54f31ee96e52e9"),
		personalization: decodeHexString(c, "0d1d8a87891dd47d5488c0b52df2afcc9fc3986811ba4759"),
		expected:        decodeHexString(c, "8afdcc8051d4968751cce8fbcfc28b1081424d70314b836ab158576d8f1be9e6884053a5862020f1169722c8f7ca4523ab8b66a25e017673d04f0369203f6f5c7ac0ca5adabff91e97b1e43601378a4574ed6d3831fa16855df7715e8c92f458b509a51283cbf4e5ab0cda7c1306044c"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_5(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e513d483313d824143e0f2f35c4799a66b20819750faa3f5"),
		nonce:           decodeHexString(c, "479ed252b3663b51dc44fbd7"),
		personalization: decodeHexString(c, "242fe2b949d5d12b278676bf38deb79822cfa59a294b562f"),
		expected:        decodeHexString(c, "8dabf70ea50f952248625652852200310caf3761a8ebf382f17a572afb6e02f2050a5351fd917ed36733af9cbbff1cda0385c3c7966a3fd1fe82f18241a17e5b043a4e5986931d69c36ecd90aa383ecaa6e5a37cde917d944e8e2e2723850ad953049bd41787398a00637e5ba351a8d2"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_6(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "85cd18858cd605bda2f66c255189c528f467d0ff9601f4dd"),
		nonce:           decodeHexString(c, "024ecddf06232859beabf989"),
		personalization: decodeHexString(c, "68ca6f72bb3cb92d876b056d4efd21cefd4fd41e88a77773"),
		expected:        decodeHexString(c, "ac02806acf16d16b60548c81d90002f71c01888dab7ca7cc68e2f1c1b0c5347d1cd26738388ef5dfa44fdcff534a327103948a53df708a43388104d93f94d0462bb2b2409e21102b7cf4fdad7f97465ca2702ddeddca87ac01a3bf0167b0ffc6f123f5ca5b2bea4082369d09def70746"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_7(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e9b462858798475342df2b27362174685062f577f67aac5d"),
		nonce:           decodeHexString(c, "f134d4d2a09bc00ee34768a7"),
		personalization: decodeHexString(c, "7d610e3e8ad86587d205d3661f2d4054a772305df989da74"),
		expected:        decodeHexString(c, "0cbc76d53828951f2da32ee550fea0e38b8e32df618eb8e5355b5f5b2bcce685452bde3ef8e257b30e6186f0cea481b33d318c7a0a7f7efcae0cc789095a7111cdf702782142c025e21a128403d2105d1f2f1e85769a92e2e7087e3b271525ae9c83273f811247c3a9fa6f0918aae299"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_8(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "bfc20fb89320917d77518a8e2321db89cbb6034c3e881813"),
		nonce:           decodeHexString(c, "10842875bb240b29463dd499"),
		personalization: decodeHexString(c, "62798e770aa2e7e91e66ce2da4ff5efca2f135045d682f1a"),
		expected:        decodeHexString(c, "487810965470f49f26d805bf9ac1c394a570891871f18c5929c2ac38ea49046405f032d4635dd92f4210036cd1dd80b1542333af84732d1d009c2cfe91b9a932620352f5ddbd6ccecaeefd75885c1184ffcd8ae9a11d51a664eaeda1b70962e7958f124d6d61c6d605bdf7894e3b3f99"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_9(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b6e6337e37b42b0d94366c6560f7ce1e92b9a12e8cb8920b"),
		nonce:           decodeHexString(c, "903b548fae74c2350e606816"),
		personalization: decodeHexString(c, "40a1421dd702077801c919e12652f8ce453037be618170f0"),
		expected:        decodeHexString(c, "182737f299bdc8ce28a1c201e6c81e2ceb962cef3ded74c95a82fbf008832c3619c16cf85dc4283b5aaa998c53e84855e7a86dd791e72ff9f4471fdd7d011d74198bf9f55cfaeea9d91f974dbe07d3b63ef0a3fb69833f19317f7842c0711c782987067176e8d93ef9d2c92b2f4d0638"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_10(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ee35377a65ed94502397a83b6a06cc459877a64b67a7c27f"),
		nonce:           decodeHexString(c, "39361bc989edda90588dd2d7"),
		personalization: decodeHexString(c, "1d5aef06c14332225fc27ea2999e492afb0398fcd5a662bc"),
		expected:        decodeHexString(c, "61c6a16349b39e3238983019da3d6d07d4fd6d55980af4167dc3894b5053aeee7cfb4c73d4b1e52dda71d49eb94ae0faec230d16fe652ce252679ffdb61557d3fc71d9448c19dbf85f2efc37722c9c4068caecb1bd7546b6c276a70ca3674b8aa975c3fa7a73b2d2068d13b33bbe441d"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_11(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "96a91f6f66cb26b19a38e1ccee4d1efa8385f12a73b91593"),
		nonce:           decodeHexString(c, "cf539ad397ff8455659ee337"),
		personalization: decodeHexString(c, "a83b6355b9a581b3fef4bfc35b8d414ee333929c5946f836"),
		expected:        decodeHexString(c, "88d3229c004bb57a0467e4ff6b0d580f539417f2b5cdb9e1ed376035d8980c9419afc658b164adc4b5574edc3552f037c0d086c2219b8a14ef1787f734fa5055d0208fdaeff365a383a5e1ac33cb79fc85155e8c701ae6e1fafcf208ee6ec594f4ae7c491bae8ca29f671d499f279e80"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_12(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "504d354c253e43f941a1cf4e9ad187e879184330bb06b765"),
		nonce:           decodeHexString(c, "2300e7738a62472090fe83c0"),
		personalization: decodeHexString(c, "4e8a5eb99a0960463a77b093d73e1883042be5e3b93e7d93"),
		expected:        decodeHexString(c, "231bf1de582a733c6fb10bb71b1f3f2d0e8e360b2b5d19e51f70cdbde9a9b11574751cb8e949508e891bf71deeb3720fdbd72fafac95630b345ebd73cc81e12ae29ad5cfb1aaf9b95e8b4bb143f4eb9141221cfb6b6756d086c770acc3b8c24e200ee985e4444004ca259553a107c3f0"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_13(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e6f8fc3993ebb29668d64f1fb471ee92c1aa1d946fa80283"),
		nonce:           decodeHexString(c, "b0eed241daae8d748484d0b9"),
		personalization: decodeHexString(c, "73e1ad4ee16e5c7865d4c2bd6d843075a4ed72d48380ad1a"),
		expected:        decodeHexString(c, "ad4522e99f7c6c00feea0280ed6d2258777809346ee3ce52c150f3046424b9510bf17d13ae48301b7d224510ba79020e5dd2cc04959062c3bd2740c8a4239850f4b1b64c296aab8a46fe5988fd98f3ca15984f36b45ead997b813ed4032df344f081ee7879c1a83386f775028e21cf2e"),
	})
}

func (s *drbgSuite) TestHMAC22_SHA224_14(c *C) {
	s.testHMAC22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0cdd3ff2d685c17a4211f54d45f7a85af293e9a46edeb10a"),
		nonce:           decodeHexString(c, "46f8ee037b927ec766de0aba"),
		personalization: decodeHexString(c, "e6299e0eb5826e498d873ac02892f01e02f6632101fcc090"),
		expected:        decodeHexString(c, "d86bfd8f9d80eda3bd43850ea6edab2ba4f69ac8eea623fd6bbd5c0c920620f8cc136b0170f0310a156271981a9cf7629e1b8f0759de1e99e20a0930ce3bb7dd2d88bc9172a56108cdd736dc529a6b99862bed7d543bdceeebf450020762652d520105f5c5cc3c9a6ebb64af2a7e82b0"),
	})
}

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

func (s *drbgSuite) TestHMAC24_SHA224_0(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1a4b3584ff2a80fac650b6951bfb8ee871d8c57ba2e18155"),
		nonce:           decodeHexString(c, "67b2967d4bf065e82330de27"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "452c1cd1a5c9d0976fd10c8b6835b28349ac99d145d1f00309b846381707122c1bfa8a36f767df992bb6d230b7ee35543085e0f9cfa2f29212ca228ca5dbd5169ac4b97f1ad270e5f993d612d12643f144a492e05f2c8773b93b6c8436417900188a5700dceafa292d3599162c3263ff"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_1(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "8d1091ff23561b8ece902f5a0b67a37fc3f2d63ccca851e5"),
		nonce:           decodeHexString(c, "b035839378c9fc410cb72b1b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d17c2a81342b2efb5e4cca2ba0593f9a0ce3f100f0b19f99bf195b8d4ca40ed8a03b2dfac74f225d8615b9a791e303d8ee874d278058433cb099585145a7deae70f92f173bc57a295e92da14b4f61101600593113c69fcd9ba2c184b5515eab325ac0566b2e4dd6e79a9cf1515872b6c"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_2(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "42b2a6e4b3ddae69443bf81498f8fb92a51b3f500d46b8c7"),
		nonce:           decodeHexString(c, "7147df6a69dc21bbc855b057"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dca346255660c7c07ac2427724551cf9e9ef7af3eb76abe3036b36a2d2de25df3425ebbe1188714ec215542fdca04ad469fbe7b12ddeaa370afc62610eebc2208efe7fe724897c175dd69ba0f000dfa4c371c5585ec80d91a26177f1947b7dee1f49ee10141691db118dfcf971d1ffc0"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_3(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f51f942cb2f700293aaadcd163eb63656f38b4cc7dcf51b2"),
		nonce:           decodeHexString(c, "f827f45ab5b8add3a19158fb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "59a7086f47293e334ba89e431fa5f40562f93682b516ec3c7dfa9bd775076b3657615fdf5ddcc4fd0fd859ce3b1a8faa8d98a9f47d3dbe1690b079ad85d71ee74ec16c0ab1cc87b9a242b2468237fc9d79fb36841783a1efda57d91a45ef27d5f7106bd68662bb9aad18aa70fc9dc554"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_4(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "6d90d0ec3a3043ab5a42f3bf5c0e3298251c089b050a372e"),
		nonce:           decodeHexString(c, "62c90bfbe087b7ad6b94b7ba"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "72ae55f27c32d2dd2c4aa6fe85d50900c73c2e0f46e8e04de4f6a5b69969c70e27ee860e09619d26d34108d826bff285f796ee18abc5561ad333d310e6a3a957d9c92a4bef663784df1212997ba3e1432720e35b663630c3c612935a5d6779876200d9e3b4d06963bcc37366b0c40251"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_5(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "5287978471d45ae1fa089b0def2d6b49b54be0708a8dfe53"),
		nonce:           decodeHexString(c, "e218dfbc430d4b438ab3fdf0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e38a48aa3a22c64d574c4f88cd65c6569c433c3d24454524397795030c6120a053768f0ca40958c40d6f53b07d8a43fd69eb0699c4143b7afbe297cce0562e5e881af715bc7d6d25a60cf0a94e50063836a6d91f5898b0a16bbc6739ea5307a0309800326abc2f9fc439ce2d229dce15"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_6(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1e9f424e39ee8e2a739bae6ec16dfa30855675cb23b2553a"),
		nonce:           decodeHexString(c, "28536e945486662c2c0c8b3f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0e0df3c867fe9d932801e4c2dbee521887097a93afbc0add63431f01d33dd8cff505ca80569f254f32791b8a7b08744c25b246a35ac9b5f2c271a27e17d6c45a8a33218bff749a041ff24f4ca49af70ee0cd131d66266ba7f48aac8c873273ad41b045cc5da575a14846d770147d0ae4"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_7(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "77002974c7bb8fcb393527eecbf58e200d11a9c420004508"),
		nonce:           decodeHexString(c, "f480a38a3ad62909321dad55"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "825902146cc12c31fce501eeff90d2a5ac5e08539c8d0e776aed57e6de0da7d781cb49abcc5f6b6a9242e892c3ea76f2a2ef02204f0b070ceb0a5c485a0e8e84b11efd0845dff3cde293c9c62c81c1118727fe698f3668611cd3846b0404c8b686e0d868b77f17ba9224bc3f58e865ce"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_8(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2a04f83196c1ea689c8a57f8aa6648a747eb2ba1fde550fd"),
		nonce:           decodeHexString(c, "cf4723d5ae1aa8a7e327fc7a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "43feb5a59648af2b23b95729d5387bf045dd918d6a2bbb49205f90aab25b20f6c7eb41f40c11e2665b310caaa67afbf4f7751ed911f55038f7e4393bca3004b0a0c7252fd60dac103b9b7ac2ead22ae4271ce52d67f8f406a5752bfe5197f2f44752984e59e6221538e78c63c9837748"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_9(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "21d8df582c9a17dc0d6df2d505c675a7ca2fa37fdaa8992c"),
		nonce:           decodeHexString(c, "dffd0d50506d5f4f572e825d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d7bc0ba5e60c8cf7558c4bc8a3e0405a913b8910f0dc935fc5acadc12149bb2deee1a5f80a81c7d902ee0bea8dfc7a7674f9043c3b29ea41504ccc2b240c1b01f66d363b03ecf52bdd2c5cfb29ce26a63cc162ffb66bd36c3cda913491dbf96ed960d1309b9256c04cb185210b861992"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_10(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e5e28d1d4887588fc400af05f9aaccb03be29cdc4c252bc6"),
		nonce:           decodeHexString(c, "1916a7c1e10c6758a48d5036"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0af6b14ea82c9b6821b7323d45a1ff3ee86f7929de4baca319a48b66e033190011e2293148b5a1b522a4c130acf983b2e87be798698cdf35fdab50629e7440594e7508f35e38a98a3f15b486b74c314b6eeb9a33eaf39e8033c0845242e07d8f1feb9fd45d32fe3195a7811057e6419a"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_11(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "79fc8f02948d201517b9946a255dd83f9b46048e38062351"),
		nonce:           decodeHexString(c, "5820501a892cd13ad820f522"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8a823efea75af7a40af02a0854d59b4244221099ac247ea28557a78e1ab67002d6bd6d9a85c92bd0bd48ea007e4ff9562bf4cf039d40d0e28c868d0967ea7ba50e6b90af4755999a9968827d8e8158f2c62ad97472874076640dbfdc1d3dd227b7feeff45fb2536f0d49c8328af4def5"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_12(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "df7d2599bc467eba6faf4d43c3b8034b81ef4a8ff2e5f7fc"),
		nonce:           decodeHexString(c, "879236a06a0a640064b09dc9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "23c77304f505fc3d25b4af24d1941d4ce8c04f122d22e1393177e9c75e5b2e11cb3a23bb889c44e750177f9c4fd0bbcd09ff3d6b580bfcee8982d742846145e1a44725a05b5ce31815cfdd90f59db8689373b8803f87253c22f036465c85a4b556ee9f8dea177d633906af53a6032ffd"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_13(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "49cfdcc0e60d5a39d5b1dcd889da0b791483aa73f4959a0d"),
		nonce:           decodeHexString(c, "22d6a6ce73d457bf2cd78013"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f880c0a1942c57065129ac7b4604ee4509f141cfdfc7e90ca2390b744f8169eef4a90d90f88d7867c5e6001bf58870b4ee29b83017c956e62f0895ac28631ca8f7fc9ff1c71e7f26643a709ebd2ef30f83f612824a94d3fe9f9845b814d817d48eaa91c246c4f401d54d94903d7d45ad"),
	})
}

func (s *drbgSuite) TestHMAC24_SHA224_14(c *C) {
	s.testHMAC24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "c617061099a17392c3092d27728b35e59eb45814e9df9fa5"),
		nonce:           decodeHexString(c, "e1634c0d96cf91c53b063450"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f08234ed8621f1f551cf49ea60140313a71341f6886c484a06e74e64aba6f8ffc2cf1edd34cd93e836ab033fb0893e52e01da9b3104fe49584a45447c136222b1c1f1d3cf406a80ed9d782d2ae277790eefc5c06f954e654f7f283ddea79d2160cca1f63d0ad00eae9e882de34ba4083"),
	})
}

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

func (s *drbgSuite) TestHMAC26_SHA224_0(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e839789d37a736a88d1bd2f4c87dd401cffeb5246a9f81ee"),
		nonce:           decodeHexString(c, "42c92fc6db45d2931676b2c4"),
		personalization: decodeHexString(c, "2086264c9ff9be5c2bf5318cae970635958166422bd14fa6"),
		expected:        decodeHexString(c, "b058f6a5b9836edacf1f83caec4d389189464d5b443f50f17191f94a0507fd905bf498340975e897f5e4ecdd6f6158d777139928724bada3d0f5b4f671f37869d58907af0ab9c70aa911101157983992d0d56d55801af5cc13084331268ebe6c0b5556fb97007bf67c48630f4a911c7f"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_1(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0ea2c82b18b911163b422282f9dac95b7dfaac5334d29b4a"),
		nonce:           decodeHexString(c, "6a83fea0e11425c05a24c0c0"),
		personalization: decodeHexString(c, "7532ca78cd321c48f7cbc2361c2446214970e0799e2acd51"),
		expected:        decodeHexString(c, "b155b82a6780d690821ed8aa2a73d058dec1b8970872625c8ee97daa47bf5af9f5e27a89a06b988afb128acc76208cc6c497270e323c740a8a20d35b712f4771787521350500872228ced8b999062c546121bfb778b4e8011bef854122fb82d6d45b9a0d3914d7ca7642d3de76c26996"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_2(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "dec13a7cae49d037ab66a93030bf0616eb10f2bd6f3f136e"),
		nonce:           decodeHexString(c, "fbdfa6b3fbb3d8a27f01ce19"),
		personalization: decodeHexString(c, "882a4db945637535726ab8f189541a06e9d2d8f0cd592908"),
		expected:        decodeHexString(c, "a0a2a590abee813c6374a01f28c4171553fa9f99167bf0d7ab01a799b4b6d8f3a2d662f08ed819367e442d5a5ada040e45d1d076a5cdedaface5f476011cb3d3ea9940733a68395188ceaf5352218c08b97b4e4ab6c912345d96684e49c2e0fa6cd3fac867c226e35301ca1f8eb112b7"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_3(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3356b274b94d4c72eb99daf36a9f40f4f31fb5dfd8930e81"),
		nonce:           decodeHexString(c, "c61996d830020a6044235817"),
		personalization: decodeHexString(c, "c304ba70a1ac4295aa7a932f17d0a3334ce383c644e2f8ba"),
		expected:        decodeHexString(c, "94b23e0d02aecead7adbc6dfff9243cb2a38771e919b98b9a33f9cd5dddda7b80aa5e9916fa698c72e2450b5795cd7539af03a699f91ff68dbe48423c0bb00f906da678649c1cf1af55aca64a57fd419d7a30fd8adf69a8c35c185dbaa921787d5c00187e172124ab42354bffe308431"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_4(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "19382daebb9bc8406913ca5350e8392b3bd8b283016c77d7"),
		nonce:           decodeHexString(c, "d23d79e1dc3117f287d23038"),
		personalization: decodeHexString(c, "b6415d575baf6a14141a36d7e9c998acf578140064d998c5"),
		expected:        decodeHexString(c, "96789132c221902c8f3b7802707177dfa69f101141e3565b6863935cf3ae7d5f952f0d5a737bed690a714f3098613b622206566bb986209e1a3f00fe24670b3b92c989224cffbebba02dc0d09c162cd9a7afe25c034308bc819278dc9658a8da59fca2272baf293f8e27e186d9b932df"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_5(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "5434ad8f922c1c1c93d5fefe9bae2f8fbe12eb3396680e69"),
		nonce:           decodeHexString(c, "dd340b0f6317efd7bb01390c"),
		personalization: decodeHexString(c, "1403781717b3adec9299526de1e5fe76b93381b82c267204"),
		expected:        decodeHexString(c, "2e857bffc0907280cee3cbb6b9f16822147eb2cb2afcf576c9987e0d1c485bcff8fda87a371e1681d9a584fa447b4cae4e37af7429c798753d4e2acd6307faffc7db6a0b81c069c71eab5922ab6e1872cc0c0f0528605152a7835efb5325c11c0dc9ce9e00740c8f2e403943cf8bf893"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_6(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0cc10da97f81d9cd41390743e773edea0242b0decbcadc43"),
		nonce:           decodeHexString(c, "0057c20913afad8217178dba"),
		personalization: decodeHexString(c, "56d0a8710290cdb8f41aa12980c45b5f146c705ed75058bd"),
		expected:        decodeHexString(c, "e3897fee70be31a5d2223ac779f22902cbe76cc2c0f337f62d039cafbf541a23e0c8a4844853a671a587cc5348775247f833888443087cd402ddbc27786297ae7de5bf14ba1d2265d024eb4c11b53045b5adb186a4523b6fed3a28e5c7eeba4f8bf41322c72630726df7f6913226ec86"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_7(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "012474a6f096a70e3511343211106543a9cb3c6be46deeaf"),
		nonce:           decodeHexString(c, "31ebc4871a83dbbc0ec9602f"),
		personalization: decodeHexString(c, "fa3722640fec20fe71bfaa70bce50a6a35427b9ebef86f51"),
		expected:        decodeHexString(c, "784c27824d81cc95d3a307b7e65614f446682ecf9762e06854539c3367cc09884b3c4642ebbdd7b0cefbe5b83b4f22bd52af20a60e2d9bf0ac2b9203059a7b9d3f6de40c6dd8f1a84d915bbf0164e07be5a80cc1ae13b1d6375aacda9dc469dc3f7aea02be1db0a8efa0009bf08d0a8c"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_8(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ea6de830cc196b848dc7c05babca7da34a4f266b6d6e7f78"),
		nonce:           decodeHexString(c, "2b65ac25291f8140482d73d4"),
		personalization: decodeHexString(c, "6d8c625e496022ee09fb1779d3dbc07f0e1be6cfee78108a"),
		expected:        decodeHexString(c, "8e412b663a83ddd7aca7d9f118687fbba248ac0224fe4b6e1e8ab2e0e3553fb599f0c5d1f3883b178ae121dec34f27d89426f924de4f6a82ccaee6b5466bae13f14d3502e22c14215d1b71bf74feb8ab75343d228c3f083d8b3f4a355255cb286e17899a4f516a14beaf3d1e6dcbe1a9"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_9(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "20121d0ed093ddbbd1c400ec51d2c0f09488bd32db654c89"),
		nonce:           decodeHexString(c, "9a6160e20e6b1bc4fd00ad5e"),
		personalization: decodeHexString(c, "3ee55b010e4449b799626de4e78f11b1f3ba66c95c171d81"),
		expected:        decodeHexString(c, "bc7bf567f09e46cce33ef5013630024ceaed8d228b28577795fba73d539fa61b339faa0c3e91ee2789028016e723b82bda514f501bd585e57de94a02f31bbe7cbe160504cc28f84e96c13861fd93337d6eb61d78632044ec6f8dfaaef906d4cba9b511e8d40efb28d9c3e8962e097b9a"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_10(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "398c932ee4b1aa6503e6ab9f921f2b8340bfb208181427f3"),
		nonce:           decodeHexString(c, "029380cd030e5a2240276e61"),
		personalization: decodeHexString(c, "8908bff3d5d20051990e9419c168816e7b503a7d611cbf05"),
		expected:        decodeHexString(c, "302be094ff9249e2774cd22bcce924989e85ce7a8f23f247627908bb7ee72641ff0d21cd2ea2ea89032f73d54aa7c477a994083775fadb9789d46c7048309851101fbd70adff9535c050895f6213585ca2a69bf7d7b293ea183f3e2a3c6019289e0b5aed998e246090af0e00c26c0ef5"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_11(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "5a3a85d2b93ca4bf5e37960da12b01ff5331d055a439e755"),
		nonce:           decodeHexString(c, "ea3934c6d853e6b210003157"),
		personalization: decodeHexString(c, "c7578c21d72479fac2ca4e09c946596dfecb4300f36a5aa3"),
		expected:        decodeHexString(c, "c58f3a02b2d4733d304bcfa41fd4fa420a1c063e221cf95d993a6fb941bed1b8ddfc2ee6a4d0ebdab393297b262cdda33a5723d9375be1fe6eb1bbc72360c381f2e6baf42ca72ecdfd5b63a8276c3a4b08c81de482f9e1ce9e28719548a7c32a676976f8b0a5726539527844c00daa3c"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_12(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "4257218dc21a8e500cfcbeb8fa6fb0e3a22872d257d84514"),
		nonce:           decodeHexString(c, "1760652536bd7cbb5f0a118c"),
		personalization: decodeHexString(c, "dff57346d46a35df1303fe5f07dc71697d56e7363721f006"),
		expected:        decodeHexString(c, "f6bc7b9253f24ca334ba0c32daef8c34aec4b41b624dacddc9b8ca282be67eb0c61e992756007fb7fb7ab62de86cdb42ba8c003469ed013f3dab8dfb2569b34e69cbca52f1b562fed469f064acfbdea0ec2daa3cd8b767768f6d593c5e0cd198cc3ed6ccb8d6eac531a2e63aa5fe6e0b"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_13(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "c45ee677a9b6888d24ac4cc87e88843274b34866ef7d73f2"),
		nonce:           decodeHexString(c, "4966f9a2c5de62ae383f9438"),
		personalization: decodeHexString(c, "a8d68661608d4f7114a8f7fcb94db2db62f23626514faa82"),
		expected:        decodeHexString(c, "0a4f8cd2ed510ddbd9ef73f6277884ababd61d60255a7f874f3559a22d137b882a7a56cb8ed471bdc82cf652ea401678ea412661a1a0637157f75b0fcb8347d073a2a5798cb7ec7843dbf480c5e9ccbbd8a2963e4a2894a9ee6aa229194859abc1119741b99230637665108b822afeb4"),
	})
}

func (s *drbgSuite) TestHMAC26_SHA224_14(c *C) {
	s.testHMAC26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3d313cc63caba556d7601cdefa066fced1073d661a95046c"),
		nonce:           decodeHexString(c, "fc382061e29c4047c6f05dde"),
		personalization: decodeHexString(c, "9b2eaa4c2a229cd2bc5de218aff95f6e5fbc7ef150bdb50a"),
		expected:        decodeHexString(c, "ad49119d6b4f25ba34050920fc503d3d0d331ac2535d916a58d781317fcc2b1117618e9105ce192651ea9e19fa6756975d207c662f2b464416d849cb67b9af52abeb84f80863943af99c7916e78317a091ba90714ec8620f661b41d648c15c06e822329cd7f145446c5c3630a4243281"),
	})
}

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

func (s *drbgSuite) TestHMAC28_SHA224_0(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "476f962c4eeb614164d362c0017c48a43fe538feeea16ea5"),
		nonce:           decodeHexString(c, "51e3de54f3f2d727aa76976f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0293a8d499efa54d6a532b3b7e3a559cab82974072a4eb0d8a07e2944fa2ad7f067893646cadcf71813f38338551c26d1ea746a7313ac42a7f86384f20f33642effbf49339302702d4c0f4d1d83eb4e75c59d2e3be3c61f02bcaa3da262a72e81a8670059a004404fd9439e40419f713"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_1(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "bfe84885903801c141d5b8ed54944d3f98190a7045f0cc0f"),
		nonce:           decodeHexString(c, "8abd859c9bf0708b2931470b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1bcd70dd666931f79b4a75655f729eef2e2ae2967ac299340df8766b6b18aea96c458ff98324f10d8427966dbf32a1bdeac1bb18fb2bed59903f4c451b10ea3f6d75589563d7b2bf5ff7ba8aa8d72d262b55696c218be577aacd1c36035578f23d3f1a06e8ed0e6e396b82bf228e2c6b"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_2(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "db5496a9249f4ffb57ad68cd8cd591383e776fee0ba209ab"),
		nonce:           decodeHexString(c, "e0623333ca49346613f6641f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8a7df25b58ddb89a8fba79a8f81961cacd40d165fff1da1f6442ec4d9115a2f32c57db0c696b9fdf02c45040d3e06f39b3164253a8784f173f0a033bfa3c62b7285fcc43f9d748e3ca5f126b0736488b9ab978234f3c5810fda543e371c9afadf0b4a50461f1d7b4aa6c9bd5553a008f"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_3(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "bc563959caa44290cb41372e9fa7a5f26700af7ddada3261"),
		nonce:           decodeHexString(c, "c0a014fcae7ffaaa7f7a300d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dbb3be4c1413680aef0f240b7b7f75e96fea98a39591ad44153ec332b2f13480ba4d3cfd93f0d2ab849fdc19389475a4e9462f56d85937a58813a076258470fcd0883e77e24ef8f67b0580a0ae14ed446620fea0eb71b60b1b70d6392711f0427c319295a6bf96b5cc52e4e570fefaca"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_4(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1e8f4da6355c99108b8ad988224db84ec915e3050a9d8079"),
		nonce:           decodeHexString(c, "395656aca928e3ddf4e3a609"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "da7831295a245a683653717735e5075e86d8fa2e2fce6c78181830e79fd1ea28cc476ae2a313ac50d5f20dfe191f3e77ca6222ddd2beb06a7429ce3f02059fd4ea6b48e12ec7b2b4a8dad880d97db892c1e070eb954953f7a4a1fd79530dd6809d2cc45a6fa91bf38568debaa2d8326c"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_5(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "c179157f5943260d6ca255b347020f467b94a435f60ba699"),
		nonce:           decodeHexString(c, "c5a511e14773972a65803904"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1d508b40acbc6316564bb9758495100ae265f34a9b32969cac46b250d2016f65152886da59801890e1e4af0f673e5cee3755e5be09d6121679577bc0a11ecd76de3f1a8cb7a88023b8c543bde38893adb3d2d73806fbcf4a6460b8da68f6fb81d7f1939ab5f6dc8f52e9c4a30a610f63"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_6(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a67549626af635b17a9d9f876a9f609f2faaa685e1d8dfce"),
		nonce:           decodeHexString(c, "a9a089e1cd938fc52d3fccdf"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "999af9cabf96856d33f6c76d25fb7e26aef3a7b9b7f4ee95a378be081c3112db71613a4b157fe41adc99f036e2661ba623b95a1de71f8c07144dafe46788c152419f9242b92581f23bd179e975eefe4f87a793f2643c49faeb993271efc262b08c97b67fdd507973a34b2c0a5d35f414"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_7(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "89f7c49a3b568d133c4552018ae715d0b1c8875fa8e27636"),
		nonce:           decodeHexString(c, "21f9dab09392e7fa9d3fabc5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "300c2e55e78e8be8faa8904bdd1bd567a0d3531ab8daf479370d0121efdacfda8fabed4e78dfa14a42ea6d2c9677f6c7d475777731ce4f0f21bb3b1c200f843609d2b05d1a02a256c318cfb4d9aa38a8768135eaf1be100e86740e48381f98715b4ff397e2404fe833cdd21988c0cf7a"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_8(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a7bf882760aedbbf6f4e9cdd90698aad718b095e78ee940c"),
		nonce:           decodeHexString(c, "fbeae860ac5ea09d878e2977"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a091a067ff1e9ac2576b4a449796b7e8a0870a836077b6197f30c5bfe45ffffad6df0c1466b303b8521feb80a9a6910df93548d5d841fec1194e4c3c9bc59675007becf16c2b144e3304bcc4711a059e9687d4c1b3b09154565d2d3cca7946d445551f279f0e31b6afc9d458cb203c1c"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_9(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "65112a896f101f7bdf37773f0f238a9899a82657dc67e0e4"),
		nonce:           decodeHexString(c, "111f4f73f43c7852f3679d0b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e3c38940a1a53b3ba2fd18a4eb7e86e3af137863afe89b0af7015a1d6381cb994a97dec587e71576b1cab739bdc3a30d95bae3ac392fa517b4681ea1716bbbe44b40a9637e7bf83e1d2c89af1517d1e7598a4204917f6428cd49bcbda600fe2257874047c11d19a821b1bc3c0fff32e9"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_10(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3b00c75d70cfe93077ec922fb551edaa872224eb555c8b64"),
		nonce:           decodeHexString(c, "b15f67ca2af303e987256bd6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "35532bfee8f3cf34a998b3b97b5d2cf2e81d7c8862c60495c8474911b555131a3869b2033e439743460cc5c0daf4c914672d6ecdb5888a89813f58f950f4c1e91a8cccd76f641ee7762152fd2e2151381a2dded48b62298eff2b2dcf50e2631224a8480aa4f2777b9be75c903ce5105d"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_11(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9208f66adca82cf2493939e3e83e07599be808745059bc2d"),
		nonce:           decodeHexString(c, "91a6fad948f7823aeed70421"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4bd4e563081f6a8c07652991ce764a472d58788f137646be0737e7204ee13c3ffb4f4a08a88b2e1ed1fdc9050fa001bb83b2bb48faf0ff4a33b571f9508df26e5d5a84a8fd90b7f5b288493d18046067c01bbb30548a52117192895e0abf996ec676e148c3d1013a3df4052fffc7b6d0"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_12(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "6616a7ac20360142476c3cd2edad8ab48e63266d18eb8472"),
		nonce:           decodeHexString(c, "a203dcccbdaa50c88555476b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e252d1fac3d3f356480eebb844f2cb8d2345ee0b069055cdf860142a220d820d944911ca25f9f5efc50a1a89f74d1ac078106ffcd5b073420f5049e32a8680a3e6b5d6c48703a67e0b8cf867ddef4f551447b4a02be59203b8938d88c902d38a94e67526e0a9df21c8b41ede44c640e2"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_13(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "cba637ea1b6ebe05a14697e396b94df920adf1657b3fbc54"),
		nonce:           decodeHexString(c, "92ed0d7aa82507091a6de29b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3a9363e56704f53978f2b30888d9ba88034fc0acc4144ea4129035f7ffbb52e84c1847b3777182c132ba50092d15a29a7ea784eec8cffab1353194846e22355782cdb479e5df62d3a31978d01ee8fb23c76704e416bd0955e5007bd41914783b406607293577e42716e74e3fa81f9db9"),
	})
}

func (s *drbgSuite) TestHMAC28_SHA224_14(c *C) {
	s.testHMAC28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "47f141d1d0142d53c10628d2d1dd77aafc11ffe45f29b126"),
		nonce:           decodeHexString(c, "a1e958e036afd40059ce9639"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2096935329ffd975154c38a2c22e30ef12b7acbacd39868032d6eb31a596e617fc7e05026b3dae231f256ea94dd4ea4f05734eaa7916be6f846b0304ff0de389f3390e51641103e7dedee99e56d9455c80a7e10edfd2147a50b3864b05443a1646fccde2197af1d1d72ae3c2d4594218"),
	})
}

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

func (s *drbgSuite) TestHMAC30_SHA224_0(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ec6d04a3c5e5fe627f143eccae0df8051d130e1ebcf3f7ef"),
		nonce:           decodeHexString(c, "aef3d3359581b8f21aa01856"),
		personalization: decodeHexString(c, "d8ab28a3527cd2bbcf40770af6ec5546870cec6511c2d97d"),
		expected:        decodeHexString(c, "8d98f91d2e9acc94c1d9cc1662a1afd58addbf0dedc13a006d2cdbaa9e0df0e98b78f9ff5d893549faf3364c68282cecd2a31252c598d3514732463b6d73e7e972fabe0ba2d8a754bdeaba3b0e5ef1035fa661f6f62e5f8b1161ac351084b50cc1f75deca2a90c9c77c458489a5e1954"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_1(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f1d31fe67dbaf10a0e4e6a97d4d643ce773be7e2a0013ac6"),
		nonce:           decodeHexString(c, "2ee61ba2a50b6db2a324e42d"),
		personalization: decodeHexString(c, "4b1f2056519b4439acca3f28e7d973c517c096c310e362db"),
		expected:        decodeHexString(c, "f5acd8efdf29fd6e3b0b16dbe20b71a6c5f735252c4951c06bc70d57ec21ada417ecadb1317a6fbcc074a8e3c7e2593a550b3071394048076ecedd8bd798323b2fda1a6257b39dec8aaa4ef048c96a20b79016d54037ecc8f2568c4f338f635a7e0405cb21554bd4cb8d4037c1af638d"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_2(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ac3fcb2b468aaaf59907f5e77a607c9401bb2b23fa4182ef"),
		nonce:           decodeHexString(c, "be792f858062ddbab75ed0ad"),
		personalization: decodeHexString(c, "6206da440125f222c8e532b2ea4f9ff4f1188bd7154af10e"),
		expected:        decodeHexString(c, "aba4944582fb65ca07b36f8540d7778bafcbeccb33261122e723c4373307f4541e4ca8b6c65eb57fae6138a42579954deb515e4d3aa31ac2e64246216a15ee4b4d8691982ebfb01552a354c0b946e196406ff12cbe8d8610311979377670ab27e9f07a6fc85ef97937322a791ef014cf"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_3(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "32283a9016b6689e23fd25b7f25d6044560218555a382a2e"),
		nonce:           decodeHexString(c, "a7b0d3f0554c275b17409e77"),
		personalization: decodeHexString(c, "c91a407090e025d17472f9bfea67727039e807b11711f1ba"),
		expected:        decodeHexString(c, "89cbd90018d8bed92e13f2f8e3553ebbc7d92ad9f9a2b522142f2d2fc9ba21d51743aac00f9ffc8600a923f241fe07a552096b20dd871ecb952d6146550deff5333f575146b98b87a86def57aa767c0de5d449a60cda8cd097d6e7ec426fbcbe6f226a7abaf4886e06cd7198465d9806"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_4(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "27aa5a89bfcbc8f45d630ef7039235a1491270b9ee12b1fd"),
		nonce:           decodeHexString(c, "25e2db1c4a48822932282d4a"),
		personalization: decodeHexString(c, "a7cf93362700094d138a3480f6d346ff43857a24cd5e57e8"),
		expected:        decodeHexString(c, "40d5a08d16ec7c88fa6d30045564d2dd4c34de6c9b79f5d0bf88733bcf1dbd20937d83385a4d2047c4f2667827747aeb4c9278f1bd995dcd7e9e1bf82b0b2561fb81ea5af2985a848ad585e6cf0a70d8b8be124b6428f7ded06dfe592e01d822bb594eb1914a8ab96896c21c1692eff5"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_5(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b4b85e046f08dafe63637c4850bb7948f250eb1bbd7b2d5c"),
		nonce:           decodeHexString(c, "7dd564f0a77bda9ffc15fcbd"),
		personalization: decodeHexString(c, "8913bdb42fe26b3568d402ab311201df8219071789d67f3c"),
		expected:        decodeHexString(c, "1e5c96141a57e6ae1e4e38256987429d9fd66242c0163f224b2e2b4668f20a26ae7ae5429a91a2c2dfdd187b5f48fdcd193e5031f359f91e7e5966d71d8b4f69e390b5055e794d99a3713d6629fa21603a07758ebee379625e289a2cee34676ca1612b953e4e0804016ad87332a7c200"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_6(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "50868f3a44ce812f81b55d11921834474d8ccb6c566f666f"),
		nonce:           decodeHexString(c, "88c16a2e721057136deaa738"),
		personalization: decodeHexString(c, "fb2ee927dcbe7e354720680ab0a2f654d37e75801c46367d"),
		expected:        decodeHexString(c, "345fe914a47637aa9188b30286fe334bb4a535ff59eb3a3773c6788a8f23a7a0a327885d02e0b99c1f7c20c80f945cc267e24d21ce2f1d672dedc65efb7dbc8170f18f05ffa092f8f46981db2fdd3b09083f846baa8a42cc5507af521661d821278694ef387dc71e39f4dd6fc334f09e"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_7(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1de742d420194d35cd22758dd9af62dd2616f922876d2815"),
		nonce:           decodeHexString(c, "d815e56f7227afc5d2b8bbe5"),
		personalization: decodeHexString(c, "f9cae04f2795bebfbfcf216d5bd9504e56e3708c87328106"),
		expected:        decodeHexString(c, "9407f9d4c6e9c87f457f3b8358eec03fade91b2ae164c5720167bd6e2b79341a05a2bee108fe9412d2d5c2b8dcd9d8973935886ac32eb030bb937e8b4023950fabadbe14d6395df3e88181d504e9337b39e2fad7428e100758780941f216b03122522ac54468417929a8419a52e8e6c8"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_8(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7ce6f11c25232a389a729ca6b348fe95e40b6d0d7b635a7f"),
		nonce:           decodeHexString(c, "507f510c0c4ca5b400f52ed3"),
		personalization: decodeHexString(c, "4c5f000a9bc259a30dfebf0a94cb46db36599df5f315366d"),
		expected:        decodeHexString(c, "70c016d2aa32ebe0dc02470cbc9091f49e626c835e651e456590d5b012dd0ad52e12eac46ce3a7ac06995bdebe44e51a6de373f5533004ceceff34ad26ac2f3959d0580ff40076dd193c8e3ddd3abe1353dd8280b7856944437aeb7a8444ddbb8e925c23f08f35eda55a6198eaf88a34"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_9(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "6536fa13cfbb49ebc28daf8f4afe32eba911c855c7720b7c"),
		nonce:           decodeHexString(c, "eb6fd6d465013e0c09fa01df"),
		personalization: decodeHexString(c, "8e97deb1da5c91712ab3fcd6b2a3d2e2cf7ad121e21b6180"),
		expected:        decodeHexString(c, "348fa39ea0377d1225dfc5dbb742af1edfbb9a6bd6dfbf2a5084a351dfa04a002676931ad738ec6786ca5b1e4cef0bcbf10c6971ad8975e6929b2d9f6662e8adb95c85b8c9779276195f6a05a230ef2f1788443c959a665ef54a43142fb41449e5e4d72b7229f9635de0327354744a6c"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_10(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "098b2473b93ddbe231bfeed3189847a312bf31be93fcc133"),
		nonce:           decodeHexString(c, "42b193b577d8bfc1e0395735"),
		personalization: decodeHexString(c, "812cf649617f0fd152463cd898ebcbb9a95bff1ec387b9e4"),
		expected:        decodeHexString(c, "da4d2352096ea715bdf6ae24dbab334611e01153d1e0a18e6b70dd3f72bb644f00ee4f01e9616313fdeb02c9df8823d1a36e6c85b6c05383ec44cedc844c5647ef234fe67e1626831e8c3267304c2ee212383459dd9e2d091c014dab7689efa371cabcd950b13abe1b6e818122a0982b"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_11(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b6d5919c608b3fa0996f48f1051769e94519ece1375df47f"),
		nonce:           decodeHexString(c, "fee339b6117011a67777f269"),
		personalization: decodeHexString(c, "ed9ac05d62a4edbb359a4e80d4ab52660cf6d54f6e966745"),
		expected:        decodeHexString(c, "62f982f99136763a48abe593acdfe63f485ea69e6b0d2943f2982a5eb1c874649cd39cc7fe82b1ef385d0e66236234ff3e2f584c26a7f21cfde83c32689e125e52a6a53f8cf2369bdc6a6800d731f9df627291bd312dddd9b03e02a2e73f22700ac02b91f28353c90a0a3d941f4ea623"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_12(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "48e12559a63a103b22c4a0352a419e481b7f7a91d300a4dc"),
		nonce:           decodeHexString(c, "82a08743cbe1d070c61e5af3"),
		personalization: decodeHexString(c, "65e365b9c5ea8781e4a12bd74902f3702f6efb1cfe5b25b6"),
		expected:        decodeHexString(c, "6d86e32d1d7e4a7e4e87cb6970e09ac7e97ab35283b63a241378c417632aeddfa078decddeb709624f5912bf35e0cc11dde63b317f1694a9b6fd9533469a1649fd9310bdabd5faa02f8048826eb8d3fafec63a0d4c9cb221b35a92c3f1f50d9efca23afc5b5f7553e9bf6100f0ac42dc"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_13(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "6009f2c9e3252a92663cdcda8116da1404d62078a6f1a124"),
		nonce:           decodeHexString(c, "49bd6047cdf3ad23323da8ed"),
		personalization: decodeHexString(c, "26c90b6cba78c7fc2e3a64f03f280a6b6d0e5bfafcfa977b"),
		expected:        decodeHexString(c, "f28b4424f6f7059f1741e600b88d9b2e1fd5f2e5cad1b121b886f00af6f1e10d337cc1b5a3b3b5ef6aa755f2160a66e78d841ab193e44ab90236e59855be7cdc9b71c63702f4c2bb6f15a8050b5d731c1a67c6deb7764fe29d6825e19009ad835f95015f7559bbb0e042c3e3867c9fa4"),
	})
}

func (s *drbgSuite) TestHMAC30_SHA224_14(c *C) {
	s.testHMAC30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "337343cf9fccf15a2bd2d7c6cabf6321e1a270250cbad4d4"),
		nonce:           decodeHexString(c, "82dfae196513724ae269204e"),
		personalization: decodeHexString(c, "6e01d897ae919812b8408f82edffcfed8db6df2e2cbebd95"),
		expected:        decodeHexString(c, "6e9bebf2e54d8da4e8ede97ce463239245ff1b021acf4441312ddba96d1f3d750bf2b9583a8aee76e2ee36a56d8e2fd4e11377d15ba3ad0876fd467c375a744240de0a7b38974e0e7b27c3917ce4e22f2bc78861f6f8b1fb42edbb1b0cb869fe5169527064cf2f38c0154082af5457bd"),
	})
}

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

func (s *drbgSuite) TestHMAC32_SHA256_0(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "ca851911349384bffe89de1cbdc46e6831e44d34a4fb935ee285dd14b71a7488"),
		nonce:           decodeHexString(c, "659ba96c601dc69fc902940805ec0ca8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e528e9abf2dece54d47c7e75e5fe302149f817ea9fb4bee6f4199697d04d5b89d54fbb978a15b5c443c9ec21036d2460b6f73ebad0dc2aba6e624abf07745bc107694bb7547bb0995f70de25d6b29e2d3011bb19d27676c07162c8b5ccde0668961df86803482cb37ed6d5c0bb8d50cf1f50d476aa0458bdaba806f48be9dcb8"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_1(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "79737479ba4e7642a221fcfd1b820b134e9e3540a35bb48ffae29c20f5418ea3"),
		nonce:           decodeHexString(c, "3593259c092bef4129bc2c6c9e19f343"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cf5ad5984f9e43917aa9087380dac46e410ddc8a7731859c84e9d0f31bd43655b924159413e2293b17610f211e09f770f172b8fb693a35b85d3b9e5e63b1dc252ac0e115002e9bedfb4b5b6fd43f33b8e0eafb2d072e1a6fee1f159df9b51e6c8da737e60d5032dd30544ec51558c6f080bdbdab1de8a939e961e06b5f1aca37"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_2(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b340907445b97a8b589264de4a17c0bea11bb53ad72f9f33297f05d2879d898d"),
		nonce:           decodeHexString(c, "65cb27735d83c0708f72684ea58f7ee5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "75183aaaf3574bc68003352ad655d0e9ce9dd17552723b47fab0e84ef903694a32987eeddbdc48efd24195dbdac8a46ba2d972f5808f23a869e71343140361f58b243e62722088fe10a98e43372d252b144e00c89c215a76a121734bdc485486f65c0b16b8963524a3a70e6f38f169c12f6cbdd169dd48fe4421a235847a23ff"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_3(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8e159f60060a7d6a7e6fe7c9f769c30b98acb1240b25e7ee33f1da834c0858e7"),
		nonce:           decodeHexString(c, "c39d35052201bdcce4e127a04f04d644"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "62910a77213967ea93d6457e255af51fc79d49629af2fccd81840cdfbb4910991f50a477cbd29edd8a47c4fec9d141f50dfde7c4d8fcab473eff3cc2ee9e7cc90871f180777a97841597b0dd7e779eff9784b9cc33689fd7d48c0dcd341515ac8fecf5c55a6327aea8d58f97220b7462373e84e3b7417a57e80ce946d6120db5"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_4(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "74755f196305f7fb6689b2fe6835dc1d81484fc481a6b8087f649a1952f4df6a"),
		nonce:           decodeHexString(c, "c36387a544a5f2b78007651a7b74b749"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b2896f3af4375dab67e8062d82c1a005ef4ed119d13a9f18371b1b873774418684805fd659bfd69964f83a5cfe08667ddad672cafd16befffa9faed49865214f703951b443e6dca22edb636f3308380144b9333de4bcb0735710e4d9266786342fc53babe7bdbe3c01a3addb7f23c63ce2834729fabbd419b47beceb4a460236"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_5(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4b222718f56a3260b3c2625a4cf80950b7d6c1250f170bd5c28b118abdf23b2f"),
		nonce:           decodeHexString(c, "7aed52d0016fcaef0b6492bc40bbe0e9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a6da029b3665cd39fd50a54c553f99fed3626f4902ffe322dc51f0670dfe8742ed48415cf04bbad5ed3b23b18b7892d170a7dcf3ef8052d5717cb0c1a8b3010d9a9ea5de70ae5356249c0e098946030c46d9d3d209864539444374d8fbcae068e1d6548fa59e6562e6b2d1acbda8da0318c23752ebc9be0c1c1c5b3cf66dd967"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_6(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b512633f27fb182a076917e39888ba3ff35d23c3742eb8f3c635a044163768e0"),
		nonce:           decodeHexString(c, "e2c39b84629a3de5c301db5643af1c21"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "fb931d0d0194a97b48d5d4c231fdad5c61aedf1c3a55ac24983ecbf38487b1c93396c6b86ff3920cfa8c77e0146de835ea5809676e702dee6a78100da9aa43d8ec0bf5720befa71f82193205ac2ea403e8d7e0e6270b366dc4200be26afd9f63b7e79286a35c688c57cbff55ac747d4c28bb80a2b2097b3b62ea439950d75dff"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_7(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "aae3ffc8605a975befefcea0a7a286642bc3b95fb37bd0eb0585a4cabf8b3d1e"),
		nonce:           decodeHexString(c, "9504c3c0c4310c1c0746a036c91d9034"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2819bd3b0d216dad59ddd6c354c4518153a2b04374b07c49e64a8e4d055575dfbc9a8fcde68bd257ff1ba5c6000564b46d6dd7ecd9c5d684fd757df62d85211575d3562d7814008ab5c8bc00e7b5a649eae2318665b55d762de36eba00c2906c0e0ec8706edb493e51ca5eb4b9f015dc932f262f52a86b11c41e9a6d5b3bd431"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_8(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b9475210b79b87180e746df704b3cbc7bf8424750e416a7fbb5ce3ef25a82cc6"),
		nonce:           decodeHexString(c, "24baf03599c10df6ef44065d715a93f7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ae12d784f796183c50db5a1a283aa35ed9a2b685dacea97c596ff8c294906d1b1305ba1f80254eb062b874a8dfffa3378c809ab2869aa51a4e6a489692284a25038908a347342175c38401193b8afc498077e10522bec5c70882b7f760ea5946870bd9fc72961eedbe8bff4fd58c7cc1589bb4f369ed0d3bf26c5bbc62e0b2b2"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_9(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "27838eb44ceccb4e36210703ebf38f659bc39dd3277cd76b7a9bcd6bc964b628"),
		nonce:           decodeHexString(c, "39cfe0210db2e7b0eb52a387476e7ea1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e5e72a53605d2aaa67832f97536445ab774dd9bff7f13a0d11fd27bf6593bfb52309f2d4f09d147192199ea584503181de87002f4ee085c7dc18bf32ce5315647a3708e6f404d6588c92b2dda599c131aa350d18c747b33dc8eda15cf40e95263d1231e1b4b68f8d829f86054d49cfdb1b8d96ab0465110569c8583a424a099a"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_10(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d7129e4f47008ad60c9b5d081ff4ca8eb821a6e4deb91608bf4e2647835373a5"),
		nonce:           decodeHexString(c, "a72882773f78c2fc4878295840a53012"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0cbf48585c5de9183b7ff76557f8fc9ebcfdfde07e588a8641156f61b7952725bbee954f87e9b937513b16bba0f2e523d095114658e00f0f3772175acfcb3240a01de631c19c5a834c94cc58d04a6837f0d2782fa53d2f9f65178ee9c837222494c799e64c60406069bd319549b889fa00a0032dd7ba5b1cc9edbf58de82bfcd"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_11(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "67fe5e300c513371976c80de4b20d4473889c9f1214bce718bc32d1da3ab7532"),
		nonce:           decodeHexString(c, "e256d88497738a33923aa003a8d7845c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b44660d64ef7bcebc7a1ab71f8407a02285c7592d755ae6766059e894f694373ed9c776c0cfc8594413eefb400ed427e158d687e28da3ecc205e0f7370fb089676bbb0fa591ec8d916c3d5f18a3eb4a417120705f3e2198154cd60648dbfcfc901242e15711cacd501b2c2826abe870ba32da785ed6f1fdc68f203d1ab43a64f"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_12(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "de8142541255c46d66efc6173b0fe3ffaf5936c897a3ce2e9d5835616aafa2cb"),
		nonce:           decodeHexString(c, "d01f9002c407127bc3297a561d89b81d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "64d1020929d74716446d8a4e17205d0756b5264867811aa24d0d0da8644db25d5cde474143c57d12482f6bf0f31d10af9d1da4eb6d701bdd605a8db74fb4e77f79aaa9e450afda50b18d19fae68f03db1d7b5f1738d2fdce9ad3ee9461b58ee242daf7a1d72c45c9213eca34e14810a9fca5208d5c56d8066bab1586f1513de7"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_13(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4a8e0bd90bdb12f7748ad5f147b115d7385bb1b06aee7d8b76136a25d779bcb7"),
		nonce:           decodeHexString(c, "7f3cce4af8c8ce3c45bdf23c6b181a00"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "320c7ca4bbeb7af977bc054f604b5086a3f237aa5501658112f3e7a33d2231f5536d2c85c1dad9d9b0bf7f619c81be4854661626839c8c10ae7fdc0c0b571be34b58d66da553676167b00e7d8e49f416aacb2926c6eb2c66ec98bffae20864cf92496db15e3b09e530b7b9648be8d3916b3c20a3a779bec7d66da63396849aaf"),
	})
}

func (s *drbgSuite) TestHMAC32_SHA256_14(c *C) {
	s.testHMAC32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "451ed024bc4b95f1025b14ec3616f5e42e80824541dc795a2f07500f92adc665"),
		nonce:           decodeHexString(c, "2f28e6ee8de5879db1eccd58c994e5f0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3fb637085ab75f4e95655faae95885166a5fbb423bb03dbf0543be063bcd48799c4f05d4e522634d9275fe02e1edd920e26d9accd43709cb0d8f6e50aa54a5f3bdd618be23cf73ef736ed0ef7524b0d14d5bef8c8aec1cf1ed3e1c38a808b35e61a44078127c7cb3a8fd7addfa50fcf3ff3bc6d6bc355d5436fe9b71eb44f7fd"),
	})
}

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

func (s *drbgSuite) TestHMAC34_SHA256_0(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5cacc68165a2e2ee20812f35ec73a79dbf30fd475476ac0c44fc6174cdac2b55"),
		nonce:           decodeHexString(c, "6f885496c1e63af620becd9e71ecb824"),
		personalization: decodeHexString(c, "e72dd8590d4ed5295515c35ed6199e9d211b8f069b3058caa6670b96ef1208d0"),
		expected:        decodeHexString(c, "f1012cf543f94533df27fedfbf58e5b79a3dc517a9c402bdbfc9a0c0f721f9d53faf4aafdc4b8f7a1b580fcaa52338d4bd95f58966a243cdcd3f446ed4bc546d9f607b190dd69954450d16cd0e2d6437067d8b44d19a6af7a7cfa8794e5fbd728e8fb2f2e8db5dd4ff1aa275f35886098e80ff844886060da8b1e7137846b23b"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_1(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8df013b4d103523073917ddf6a869793059e9943fc8654549e7ab22f7c29f122"),
		nonce:           decodeHexString(c, "da2625af2ddd4abcce3cf4fa4659d84e"),
		personalization: decodeHexString(c, "b571e66d7c338bc07b76ad3757bb2f9452bf7e07437ae8581ce7bc7c3ac651a9"),
		expected:        decodeHexString(c, "b91cba4cc84fa25df8610b81b641402768a2097234932e37d590b1154cbd23f97452e310e291c45146147f0da2d81761fe90fba64f94419c0f662b28c1ed94da487bb7e73eec798fbcf981b791d1be4f177a8907aa3c401643a5b62b87b89d66b3a60e40d4a8e4e9d82af6d2700e6f535cdb51f75c321729103741030ccc3a56"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_2(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "565b2b77937ba46536b0f693b3d5e4a8a24563f9ef1f676e8b5b2ef17823832f"),
		nonce:           decodeHexString(c, "4ef3064ec29f5b7f9686d75a23d170e3"),
		personalization: decodeHexString(c, "3b722433226c9dba745087270ab3af2c909425ba6d39f5ce46f07256068319d9"),
		expected:        decodeHexString(c, "d144ee7f8363d128872f82c15663fe658413cd42651098e0a7c51a970de75287ec943f9061e902280a5a9e183a7817a44222d198fbfab184881431b4adf35d3d1019da5a90b3696b2349c8fba15a56d0f9d010a88e3f9eeedb67a69bcaa71281b41afa11af576b765e66858f0eb2e4ec4081609ec81da81df0a0eb06787340ea"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_3(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "fc3832a91b1dcdcaa944f2d93cbceb85c267c491b7b59d017cde4add79a836b6"),
		nonce:           decodeHexString(c, "d5e76ce9eabafed06e33a913e395c5e0"),
		personalization: decodeHexString(c, "ffc5f6eefd51da64a0f67b5f0cf60d7ab43fc7836bca650022a0cee57a43c148"),
		expected:        decodeHexString(c, "0e713c6cc9a4dbd4249201d12b7bf5c69c3e18eb504bf3252db2f43675e17d99b6a908400cea304011c2e54166dae1f20260008efe4e06a87e0ce525ca482bca223a902a14adcf2374a739a5dfeaf14cadd72efa4d55d15154c974d9521535bcb70658c5b6c944020afb04a87b223b4b8e5d89821704a9985bb010405ba8f3d4"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_4(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8009eb2cb49fdf16403bcdfd4a9f952191062acb9cc111eca019f957fb9f4451"),
		nonce:           decodeHexString(c, "355598866952394b1eddd85d59f81c9d"),
		personalization: decodeHexString(c, "09ff1d4b97d83b223d002e05f754be480d13ba968e5aac306d71cc9fc49cc2dd"),
		expected:        decodeHexString(c, "9550903c2f02cf77c8f9c9a37041d0040ee1e3ef65ba1a1fbbcf44fb7a2172bd6b3aaabe850281c3a1778277bacd09614dfefececac64338ae24a1bf150cbf9d9541173a82ecba08aa19b75abb779eb10efa4257d5252e8afcac414bc3bb5d3006b6f36fb9daea4c8c359ef6cdbeff27c1068571dd3c89dc87eda9190086888d"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_5(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a6e4c9a8bd6da23b9c2b10a7748fd08c4f782fadbac7ea501c17efdc6f6087bd"),
		nonce:           decodeHexString(c, "acdc47edf1d3b21d0aec7631abb6d7d5"),
		personalization: decodeHexString(c, "c16ee0908a5886dccf332fbc61de9ec7b7972d2c4c83c477409ce8a15c623294"),
		expected:        decodeHexString(c, "a52f93ccb363e2bdf0903622c3caedb7cffd04b726052b8d455744c71b76dee1b71db9880dc3c21850489cb29e412d7d80849cfa9151a151dcbf32a32b4a54cac01d3200200ed66a3a5e5c131a49655ffbf1a8824ff7f265690dffb4054df46a707b9213924c631c5bce379944c856c4f7846e281ac89c64fad3a49909dfb92b"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_6(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "59d6307460a9bdd392dfc0904973991d585696010a71e52d590a5039b4849fa4"),
		nonce:           decodeHexString(c, "34a0aafb95917cbf8c38fc5548373c05"),
		personalization: decodeHexString(c, "0407b7c57bc11361747c3d67526c36e228028a5d0b145d66ab9a2fe4b07507a0"),
		expected:        decodeHexString(c, "299aba0661315211b09d2861855d0b4b125ab24649461341af6abd903ed6f025223b3299f2126fcad44c675166d800619cf49540946b12138989417904324b0ddad121327211a297f11259c9c34ce4c70c322a653675f78d385e4e2443f8058d141195e17e0bd1b9d44bf3e48c376e6eb44ef020b11cf03eb141c46ecb43cf3d"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_7(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9ae3506aadbc8358696ba1ba17e876e1157b7048235921503d36d9211b430342"),
		nonce:           decodeHexString(c, "9abf7d66afee5d2b811cba358bbc527d"),
		personalization: decodeHexString(c, "0d645f6238e9ceb038e4af9772426ca110c5be052f8673b8b5a65c4e53d2f519"),
		expected:        decodeHexString(c, "5f032c7fec6320fe423b6f38085cbad59d826085afe915247b3d546c4c6b174554dd4877c0d671de9554b505393a44e71f209b70f991ac8aa6e08f983fff2a4c817b0cd26c12b2c929378506489a75b2025b358cb5d0400821e7e252ac6376cd94a40c911a7ed8b6087e3de5fa39fa6b314c3ba1c593b864ce4ff281a97c325b"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_8(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "96ae3b8775b36da2a29b889ad878941f43c7d51295d47440cd0e3c4999193109"),
		nonce:           decodeHexString(c, "1fe022a6fc0237b055d4d6a7036b18d5"),
		personalization: decodeHexString(c, "1e40e97362d0a823d3964c26b81ab53825c56446c5261689011886f19b08e5c2"),
		expected:        decodeHexString(c, "e707cd14b06ce1e6dbcceaedbf08d88891b03f44ad6a797bd12fdeb557d0151df9346a028dec004844ca46adec3051dafb345895fa9f4604d8a13c8ff66ae093fa63c4d9c0816d55a0066d31e8404c841e87b6b2c7b5ae9d7afb6840c2f7b441bf2d3d8bd3f40349c1c014347c1979213c76103e0bece26ad7720601eff42275"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_9(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "33f5120396336e51ee3b0b619b5f873db05ca57cda86aeae2964f51480d14992"),
		nonce:           decodeHexString(c, "6f1f6e9807ba5393edcf3cb4e4bb6113"),
		personalization: decodeHexString(c, "3709605af44d90196867c927512aa8ba31837063337b4879408d91a05c8efa9f"),
		expected:        decodeHexString(c, "8b8291126ded9acef12516025c99ccce225d844308b584b872c903c7bc6467599a1cead003dc4c70f6d519f5b51ce0da57f53da90dbe8f666a1a1dde297727fee2d44cebd1301fc1ca75956a3fcae0d374e0df6009b668fd21638d2b733e6902d22d5bfb4af1b455975e08eef0ebe4dc87705801e7776583c8de11672729f723"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_10(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "ad300b799005f290fee7f930eebce158b98fb6cb449987fe433f955456b35300"),
		nonce:           decodeHexString(c, "06aa2514e4bd114edf7ac105cfef2772"),
		personalization: decodeHexString(c, "87ada711465e4169da2a74c931afb9b5a5b190d07b7af342aa99570401c3ee8a"),
		expected:        decodeHexString(c, "80d7c606ff49415a3a92ba1f2943235c01339c8f9cd0b0511fbfdf3ef23c42ffff008524193faaa4b7f2f2eb0cfa221d9df89bd373fe4e158ec06fad3ecf1eb48b8239b0bb826ee69d773883a3e8edac66254610ff70b6609836860e39ea1f3bfa04596fee1f2baca6cebb244774c6c3eb4af1f02899eba8f4188f91776de16f"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_11(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "130b044e2c15ab89375e54b72e7baae6d4cad734b013a090f4df057e634f6ff0"),
		nonce:           decodeHexString(c, "65fd6ac602cd44107d705dbc066e52b6"),
		personalization: decodeHexString(c, "f374aba16f34d54aae5e494505b67d3818ef1c08ea24967a76876d4361379aec"),
		expected:        decodeHexString(c, "5d179534fb0dba3526993ed8e27ec9f915183d967336bb24352c67f4ab5d7935d3168e57008da851515efbaecb69904b6d899d3bfa6e9805659aef2942c4903875b8fcbc0d1d24d1c075f0ff667c1fc240d8b410dff582fa71fa30878955ce2ed786ef32ef852706e62439b69921f26e84e0f54f62b938f04905f05fcd7c2204"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_12(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "716430e999964b35459c17921fe5f60e09bd9ab234cb8f4ba4932bec4a60a1d5"),
		nonce:           decodeHexString(c, "9533b711e061b07d505da707cafbca03"),
		personalization: decodeHexString(c, "372ae616d1a1fc45c5aecad0939c49b9e01c93bfb40c835eebd837af747f079d"),
		expected:        decodeHexString(c, "a80d6a1b2d0ce01fe0d26e70fb73da20d45841cf01bfbd50b90d2751a46114c0e758cb787d281a0a9cf62f5c8ce2ee7ca74fefff330efe74926acca6d6f0646e4e3c1a1e52fce1d57b88beda4a5815896f25f38a652cc240deb582921c8b1d03a1da966dd04c2e7eee274df2cd1837096b9f7a0d89a82434076bc30173229a60"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_13(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "7679f154296e6d580854826539003a82d1c54e2e062c619d00da6c6ac820789b"),
		nonce:           decodeHexString(c, "55d12941b0896462e7d888e5322a99a3"),
		personalization: decodeHexString(c, "ba4d1ed696f58ef64596c76cee87cc1ca83069a79e7982b9a06f9d62f4209faf"),
		expected:        decodeHexString(c, "10dc7cd2bb68c2c28f76d1b04ae2aa287071e04c3b688e1986b05cc1209f691daa55868ebb05b633c75a40a32b49663185fe5bb8f906008347ef51590530948b87613920014802e5864e0758f012e1eae31f0c4c031ef823aecfb2f8a73aaa946fc507037f9050b277bdeaa023123f9d22da1606e82cb7e56de34bf009eccb46"),
	})
}

func (s *drbgSuite) TestHMAC34_SHA256_14(c *C) {
	s.testHMAC34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8ca4a964e1ff68753db86753d09222e09b888b500be46f2a3830afa9172a1d6d"),
		nonce:           decodeHexString(c, "a59394e0af764e2f21cf751f623ffa6c"),
		personalization: decodeHexString(c, "eb8164b3bf6c1750a8de8528af16cffdf400856d82260acd5958894a98afeed5"),
		expected:        decodeHexString(c, "fc5701b508f0264f4fdb88414768e1afb0a5b445400dcfdeddd0eba67b4fea8c056d79a69fd050759fb3d626b29adb8438326fd583f1ba0475ce7707bd294ab01743d077605866425b1cbd0f6c7bba972b30fbe9fce0a719b044fcc1394354895a9f8304a2b5101909808ddfdf66df6237142b6566588e4e1e8949b90c27fc1f"),
	})
}

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

func (s *drbgSuite) TestHMAC36_SHA256_0(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "369f0eec011db3db44971ab16371c7a8de327a4852bd34226e0f25358e296ce6"),
		nonce:           decodeHexString(c, "ca6043750aa99545d1597f71d583246f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b507091b56fc9e9cd90fe4c466b5a132615df2d4a18f73302f1d72a416b993c4c207388699e645f6048f595fbc7c356f85f683040a1ccc3155cfe4243f169f0f3e8b2ba5fb33b56a090e553342bd543134af325baa23e4cdd114c429253c8ff9a0239d95ded339e412e23983454dd5091822b1e2712b298b319ab3d4ddef3b2c"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_1(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "268d2f3751c52f9302296f48684ec9f2d88389bca90f78211047d723b6d32e32"),
		nonce:           decodeHexString(c, "7aad9b5479dc01a02087b6a8e12b7f1c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "429082b705e7d0f2b2faa9028ecbbae792ebbd1fd877e309f5288aacd58a42c2eee866c2d79c31b01501bde6c04ce92fbb40377cef98076f2b63912d3cdeaa5b075a572264509cd3fd66124744f6fa7a3be4ea6f5fde86abf79b22344d73716004c8409a79048eb9ec4a19340e26e0a9576d3964b434118ec715c5dec02984e9"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_2(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "05ccd9244ef0f0aeae3796ce9368696b90d1c4e2056e83190350e5036d9ac31e"),
		nonce:           decodeHexString(c, "deb6542edd7e754963553b70c0462133"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "402138cb19dd4d044293f81bad9ccaa453f6cfae406f0199d0f5c844674157752b01d6d330bf61772aa2235860387e7db28dffe437477cc7f684cbfbc3434caa366ea5ec1721a65ed8fc34b2158837f83dc7bc50acee11a3b7e21b55fe88e6aa9822c9103e6e43c974ee559245a1c7f2c2c43759ea443d62a9bbe3c5119cccd0"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_3(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "159a81340a1ad14c0e77e377c9e4da79cabc3fb8f3fea8d1fd830234d715fc7b"),
		nonce:           decodeHexString(c, "87ad56b811552f05f9839a15780b8b62"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "04200567248d099ed436b77b1fa29b36fa708152237ac96ce18e7b41be6f81e6106feb33527066b922356d477131b45372bb1853ccdec058733274237e2c5cce342136a7b6c1ba8ca52d55241a5a759f3f18dd24ebf37f44cd29c36f606855adc89d91cfa8c0f6909479d457cd26b7eaca3e30db3abccbd89621ffe2c0eee7f0"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_4(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "cb86a35f0e8aca3af38dc4eceeea21d52d43fc03d795e507bc47da9008acb0ae"),
		nonce:           decodeHexString(c, "05a5f1a5fe29bb529b83d1bfa727e341"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "45b03b3e8dfdddc46cafb4d9d5765a0b5bca694a73a9bcd6d0856076772fb7d99beb199b88e16badeb2dc018b7b343ff017a6b20f6987efd85d14e54ba27b68aa040d2726b3240af3b8848fdae1ba941fba58d30685428842cfd5ac1b1935341cc76433ef100c1c97fa9f11c81622ebc08515a53b707d4f2c57bf24c3b01af32"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_5(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "680b1088d2a6fbe45e629af37221e89605d6e285f80e53a8bbcdf6dee0fbb6a6"),
		nonce:           decodeHexString(c, "c61821d54b747e2c5287d086dd02e2e2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1264b7f3da4a3dc68cb09c40ac75e53488581bf4fc7647a907b381e140c20fe7c707d4bc23304ccf080272731e77bfb65a39035cde1260d58b117c8a240074d6b731f529a8ca72706f1f387e8c8d0a22726aa4c687e2c6b8bdae8204f80e6fa72b50ef2531de3d7adbef5bac4cc9056129ced057995149bd4f2d824add6cc446"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_6(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "53e83610917a79598a6f5383c2443ead0b3f35f3ec853ef81109c322bd601fd5"),
		nonce:           decodeHexString(c, "8211d8f173da228877d99f16f5f8082e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "46094c468c3513e45ba28c4f4466bf5e96c81962ea2cd7bd444d90ddedb16faae7764720e4ddb8755a56bd3ce81598f79b3d135c72f33cfc7a2db67aa0f7ce550b7b6285dfc9f7d2f9a79175c6c5a6e47a9d83c2841b0f8b6ec7d6b864a885abbdf24a516310b1c4dc8d399fc01ca0be7c709f3afb2a3e60290e6ea7f3410003"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_7(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "24286f08f6960927ac1c5a24c7b75c6a02f40a095ae42c6d4df844015bf08471"),
		nonce:           decodeHexString(c, "472072af39fcc2e1af9b4eb59e7d645d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a32ddffd7cb5e73739de87623aad024020a506c551228a465223affe3f43d034fcfc32130878e807c313cbb178be0a87b9f14cdab345b712305f7888aebf0c462755ba59cf6caba7b62185f9ac4b2f253954d94359752999f490b9435d9e1992c34b1ab6a4390547f3dff5517a4209da9fa5284e309b6f3f14f1cd516be3d8b0"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_8(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "da21ac05cdec567d217433dbaac74e3f9e5ac8039412e38b1eedf3a703086110"),
		nonce:           decodeHexString(c, "d9301860762979f2c042233fdd4db0b0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "48d4111eb766c5bb15591ee9af02c803cd04f3e59db467a6f9083d40d5a916f3092abe5f68297e999bd3a31b0328925417c39cc6232bfa9e74ff9e29dd07e965f52d5127cf1fe2fd3bbb9cd33a87ad2f23e9bbc3549ca69fd25b61462ab4a8e8bd3986ebfda89aaff68e99aea2dd1dc81aeda759e80105f5459207729670300f"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_9(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "36ca7fa625f0dfd939c8cd11192d9c6a364d57af22d0be45c3e5c6deb104fe73"),
		nonce:           decodeHexString(c, "b74646e6e03efe09d2648271305e8597"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "30edf9da91c2f9824b4c49d601b7df039481df61388766ad0967a665c8907bc57dc781cd007100339dd92c4a8e229998170d8cf3d592a89cc29a43b6b4288fae322f333bd34cc56b95015802c67e358b8d81e0e70578f4437ed4b031550bf6d5d4b58030fdff34841270476afda9b6376363100c3fd3423f5f8c1fddabbda653"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_10(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8df532502f4b0b721aabc640bf26fce2c0e98b9ce3d1b13c2366242c839716c1"),
		nonce:           decodeHexString(c, "a1250ef983c762deb1207f22b37c58cf"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5764dbb364f5bdb53da80028af9aedc7373630ccd1ff8a92fe4bf7b71660d1fdb30af2de5648316fe430baf4fa38673378c3a7285f603f3264546e3bdb0ad3db5e0d41ff507bcb61cc05d9e878186c489804bc79a2cb4d105662310682c47dd4636bc96b9e84261844854bbc835fba216f2bf3a5c9cd439a5351d037c601a176"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_11(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "86e62b68da31a62d1bb04d391cda1cc1fa3a167d8017e9ca056ad41dde790807"),
		nonce:           decodeHexString(c, "72a9fca5fafb7fc4d65a7d7932d1c1df"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "58f260156b6c82e536b1b250cde98636a1aaf4369ded6a469c6f83d47d371e64677b4c7ce85c2aa1c3addef187bf7c0845b019ae75b53405595b24f1cafff5734918dd2e36999c5cafbb45e72400ccc53f0defd01214800e59986c85d7fea49beaf7cd1340d42931c4debda0be70e27163b4c81f10c6ca76485961282066bfb0"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_12(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0ac25dffd09bd845ed6f213ef2e1da3bd17beb4ef00f55fbcc21448676617950"),
		nonce:           decodeHexString(c, "6a6857e0009ceb559de41cecad964265"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6fb0eaada52f5dd0a4c920fced2f86b1a7a1b549649ced0ac23afc336dea4de934dc812260cfaa33a9d111ea6117964c6a6647417da263645a560885e6cc9d3c2a1e0953a525e5df86fbd12df7f87cf632c5f54db554a07805d6977f8e29552c4935e9b2a2ef67276b40756a207162f1d44c90afacecc5d89185b6be4f83d0f3"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_13(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4bbafbbca804e6a4aafd89744558cc7758bcd01bd7954cf6d2940307dd9e0d2f"),
		nonce:           decodeHexString(c, "ae5dfda1271a218ed6cc2d03cc98ad55"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "49fd164513dc36255c799e2b86912570a7ccb6df9ecdf14d75894d4950eee167a87f3fef796fa71732d12d8aa0d1c09eef37ebbe9131b1e6aedfcb2248ecc7a86b3305aef3d56b88826feefed19f9e6a14068016f0f5ff902431f859fa148e5412518709c0bcd3088229ba66c96d7ddf40f07c077bb265811bef8198a70f7d9b"),
	})
}

func (s *drbgSuite) TestHMAC36_SHA256_14(c *C) {
	s.testHMAC36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "17da1efd3e5250dfde3ef1683bd9cf4d4432a2f223399664f7645763bebd5ebd"),
		nonce:           decodeHexString(c, "0b160c67b97d5302972b5c517bed5a7c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "859bab959dd16f2cddb05376b3d3e46cd13c191c18203bf3c0bbd5803cc559aacce48d88564166fd5f43c22d08cda1acd8004f36915739796a39ca96f8e7def14b58a8ee55ff72de7e2e2727389e027657447e32e47d4ea2f0fda48e86046d111cc334bebf4ee1019199c94fdb26169661cec0b0c47176cb5fb7aed8ad35afb1"),
	})
}

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

func (s *drbgSuite) TestHMAC38_SHA256_0(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a8c77ba575b8468bb5f99220de43d466cdb1d91ac3253c3be27cf18f82520624"),
		nonce:           decodeHexString(c, "052b3c6dd0ee77fb8b0980c38ffa2cdf"),
		personalization: decodeHexString(c, "4f074ac6ccb7c21c9589fa223428af0e860ae31fe008ecbf520653b9be235ea4"),
		expected:        decodeHexString(c, "5769beeaae2879ca0d7227d2dfc51bd3b7ac0c82c9ccaae84b2db60aecc7e06bb5989418865424cfe75f7014b389a46870e222226e6c1a90a4f16208636f635076793b2ff8c99f93588ae0f93be1086a82f45c786784f683d529157268984d7c13add196bfa0c7ddb314ce9375b2c13930209c52ddae347d064ed5d811f78065"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_1(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "911f3206aef3fa424e5333519237cc7d59b71d40f97fc793c4876103a2d05980"),
		nonce:           decodeHexString(c, "ea7877e8a5b1a29a10c82ebc8f8fc3a9"),
		personalization: decodeHexString(c, "5fd33aff8724f27a9f56a2fb6d49b407e120f636279b58ce2bda77447a79826c"),
		expected:        decodeHexString(c, "9bf6d3f44c48c4b600980a1e1ed36f6554c74be9c97494c77a945ebba813664bba4f75d0993a1bfed4c41dded58fc655ab5d8ac59a120323e0543bc68a6ff5cf365123a940cef7c9e393e288477d5ce9ed3ab474fabb0a5d7a93618172df738eed1aec78ad209866453de33519a63db9424090a7a4df827a25dd53b3fbe4b6f0"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_2(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5326824ff5cc0597b46c0a162e841c5690bda10df74e483e4baca0623e43413b"),
		nonce:           decodeHexString(c, "b1f4f182a5ccfe00ddd245a4c8c0485e"),
		personalization: decodeHexString(c, "2f29b4ad28f722fc884943c1c12a586ff1ddd04db3d8695392a57385fc99115f"),
		expected:        decodeHexString(c, "994c14885e734fbd200df66c45a68b49451bc4b44406306452efbde9a8d411ecac912dca39593be82dff920d540495d63d10abe04b06ae778473109f39f5257d6a81bf63b7b77ab7dd7b21261aa41dddbbd1872bbec87a4534983892cafd06eaeb71db18ab5557949d6c34e63dafdd048bb4c81ccca712bdf9ad6fd70a6b48dc"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_3(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8adf144473335a79173d3af6e50965001a34ec27ccd567313c7bebdbec9f71d2"),
		nonce:           decodeHexString(c, "7065371d51d3285d6ea653494c308863"),
		personalization: decodeHexString(c, "0fdec2ca6179623406f594af0f662c675a7cb7d6fa65030c1c5a04fa4c89fe33"),
		expected:        decodeHexString(c, "c4fde769d5db2b89e2e635b08a187c2f9615787705c7ec82946474281366003617f186a4ad42ef51f6833532807b4eb7653d4317f7107aac1e311750931089ded92f9af5727dc40c99bc7035f0553eb1bb6f134312239cb682935c8715bea886424accf89ecc016ef67b805df6f4ff83cf758c277b4de9809bdf7e420b47c352"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_4(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c58faf114e4cf647c3a27189acf2d6346147b9b6aad7c5d9cca18aa13f513949"),
		nonce:           decodeHexString(c, "96e1b9425401337f46dbf9cd0ae076f5"),
		personalization: decodeHexString(c, "cbed9113b3b2170712a8ead60137461e72f46be14ba79fd0a70e48930d347565"),
		expected:        decodeHexString(c, "c5d2ce2fb4baa2cf5633634f3ccc13f1e81fddcad1c80f9d1fa3353264b03355763753ef4869766edda1f3dcb8f27d65398a5568e9a17cb5dd0e38e752b71896abc2bb6f945512b4307c0038c519641b9de9a88fce9c0b1a880e23bff0e7d1c56b5d2449bee84fcaa6ef301533bb0827d13cd14eba0a17e0a1e7820d4a98a82a"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_5(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "39723ac65fb657f3c273dabe094f9c4b69cef6cce25a2041e07e5f3d0c0c23cd"),
		nonce:           decodeHexString(c, "6906ad6afcd5390340d04dbc484b12c4"),
		personalization: decodeHexString(c, "ec987d4f7da75c0c6045a11180d3619c6db996c61116167a17c632d6141dc874"),
		expected:        decodeHexString(c, "fd6091b2ccf111d47c7540d2ab92e67243e104b6550b2aeb7ebd89b635f5a976890a9df7ca8b719cb4833cf52eae257eea22a731f03fb85798824d9991c72aca8ba856a767804b79a3b4003c2a82c930a4b840cc9df082ab473d185aba3bfb25be5cf7904f0912b8a1320c5ace8c6142e09b282d778a80c7406256a4872f2852"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_6(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "39120774b5e76bfdcd7a1d5c94b359bbbdfa24e7ca1ba37c8786e6e7d417c363"),
		nonce:           decodeHexString(c, "81d05d26b0af3000c9506ed5d1332cb8"),
		personalization: decodeHexString(c, "c36ff94e9777b742cbb6f7a1b7a25f1a64a3d1e343f153149b596f732e854d7b"),
		expected:        decodeHexString(c, "9970e7ac5858f7eaedce07f2a0c50673a91dabdb48de4ccaec668c3e9db5e394984a44d3b9ffda3c874deddac6a4bf5e72b0b083afb87d3fd0139f8de12d319363009d53cef0ae285c507e1f9fec2a080969af22bd52d37868732af7fe71be681f6ecc7d92b4264f6a7c11d5d04d0de40ad9b280f26f6656b56dfda50bbaf603"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_7(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "6df7250981e3b5a74efec19f15ec73cbcb46ccdcb23519f2dcb2f9b855addf65"),
		nonce:           decodeHexString(c, "e0921ea03a36ab53544f2e7815890d6e"),
		personalization: decodeHexString(c, "a807fcb6dc1439fe7b4f9494e68b613e56a608a78595a466692387ab6983dc6e"),
		expected:        decodeHexString(c, "6adcd591650110a0ed81d6dd8c885d73d03add2d81e4d654b6c0a7b96bb6cebf011a1778b33370711f55795ec6d2e1938659c409251653fc4c643002863ae674517c44af69c44d1358ed84800c1c9e5bc79a534e3e1c1f207e5acd653ed964a319598d1d73d3040144927712cf554bec81d4665a50e3b252beab0f511e7361ba"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_8(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0ee55f1797b1498cf0ff8535cd3430613b6da15d1fc06a851ca8f3aac878ce84"),
		nonce:           decodeHexString(c, "220e692fe775885b919e1ad689ba6e7c"),
		personalization: decodeHexString(c, "0e849b31f01a98ad5e9245c7799f74936efe52d99427621e34dbf83c639f1dae"),
		expected:        decodeHexString(c, "1e9e523c79bfe89c2dca46664e3bcdab79a0a243bdc607dc752173cf99b591757faf7ad84cecfd1af10b5dcd5d76d5a8e41a4782e685db46bd0ecd3458cbeeb11558685d25133e20e5f613dd4a622a73baad3df1a80f14f98da1077a300acb0ce02bf55eae2346af1b7df7b97901d382371632594190dc42c944094bff2862f3"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_9(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "7f90574ac55c4b3f10a9d39882a4ed1a9e922f25dee0779fd0a5839d5dec0091"),
		nonce:           decodeHexString(c, "914e40a201adbb144089f34c91786b1e"),
		personalization: decodeHexString(c, "26a55b8e95aab92a12b681bea7412f00a48d6b438f54da9c42f34ac5c31ae515"),
		expected:        decodeHexString(c, "0c7f925664c6db4fe5b6eb0b20b0e0bca5a704d1724f33b0fd55ed8c47caf5b77a224872bd77de138b64a8fab6b2c6610a4670d2a8b463288fe063418a19c7b865c876b66a50e8f5620f68cdf3f2108c920023f02a8b44fbb065b1d763659cdfc360109be6813fc63a14a5acf08c4d49d98732a13c8bb71555b0dcf51deb0871"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_10(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "6da05910b7d742fbfa3296dec76d884c0591c4274b0b1ef7b8b556ab63c99a60"),
		nonce:           decodeHexString(c, "69beec7da0557e59914cecda553cb9c6"),
		personalization: decodeHexString(c, "3e1c544c43118a8115ff26152c57f43739eb5cc66f63d3172bf8732c25607cd3"),
		expected:        decodeHexString(c, "78829fbf89d5f7ac217c75c3d4b36500cc454c87547b53309814496c73fc4141e88ae4d7cb21bd0627c0531402ea16e48ef829737ec84694eeecc5c72132e76fc7aae325c01d8d38b62ae117f42e3d858521fac939241493cfc04f8a1ce4f49abeee9705eb50b3ecf076ecfc464a7bcd1dace6ff61b027c5e50941af8ea01f9d"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_11(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "90d67dcac6fadf87e691b700a4b6755f388643d9d46fffa91f9ede43e9cdb72a"),
		nonce:           decodeHexString(c, "b0e142d060c97f4bf4fba4663249de43"),
		personalization: decodeHexString(c, "3b1ade723ecd8a8cdb9de06e844f5bad612b90946002c8b07dbcf4cb989a7b87"),
		expected:        decodeHexString(c, "fecaadb4a186b178236e1ec2def4ced5f796b74bc3b0bf6f8456ae1696e267f1e10e21a27b3f1bdcb3bfa047f9206ed5c1f81195af885dfecf0ea28ba3df75a8f067164e72aa47a42c19b41f7562527eb27e99cd2381d49fa88db481183e1ca351de70526d2c6631ef50839a6775a3aa08c7f96fd1befc5cb7f20d28d031e37a"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_12(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "19daa51bfec63fe6f0d3461ad0e184bcc6231052e9b84d03d7fb80c691749e3e"),
		nonce:           decodeHexString(c, "323e269e7c69c02fbf5c8fc2ee6f7782"),
		personalization: decodeHexString(c, "caf1f074076ee7692d5beb895298caf38f0b48f5c6cf971b20db2ed5628409d3"),
		expected:        decodeHexString(c, "c1466592a415356d40de0a4aa72dde8cb1d07529fbb6c8380d5006b36cb3cc0092a34b0c380fc41818a58c81d7feca4755b88b887562f2b478a5ffba88fed5197da8422352e5cee4b92ca91ea2a6f5b7b01b89ea0204fbff2fbb5ae3273dd4aa70514da2ab9d43c4ec85ed33dc9d3e27fabadfccd558bf3fa34209d7ed4c994f"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_13(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3a741bafe59aceb22db401d4f26a7d746c5ed7d3f24391153448bd299a86a7d3"),
		nonce:           decodeHexString(c, "4d13731ee770540ebb919bd07df8013f"),
		personalization: decodeHexString(c, "efaab02851795f0c8541233d89135412734a628cb61ecb96b427398a6739bfd7"),
		expected:        decodeHexString(c, "0b34a9c51d82017ff2ba9b91baa87d5c4aef78aa51b1bb3851838e9ba1fa0e277fb533e02963a53dc1619807539e3ad0524a4db76a6be1b7b8bdec774464456edf97547bf40517cda7da00da503c133c633066420b9acd878cd3109ecc3c9995a3357ee3ca7004f70968271824c2a6f4dc2199066d9dfc3219439094bfd25d3b"),
	})
}

func (s *drbgSuite) TestHMAC38_SHA256_14(c *C) {
	s.testHMAC38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e344a3bf1eac434ca09e944efee161cc1673590fed203527bcff81a97368823a"),
		nonce:           decodeHexString(c, "2b653a89e549e3b1ee7817f5864fa684"),
		personalization: decodeHexString(c, "814146b3b340e042557b0e8482fcc496a14c02d89195782679172e99654991ed"),
		expected:        decodeHexString(c, "3ea100cf50c25d7b2ef286b5fa0720f344de2d568979e7349befa23589083e835205cdf6a4670722fff04260e54618c9c00af75cc26eee665b64e7e628ec4c56a8086dcd583681170f60d565bd97d0f416e4c231e281081b0fcd16c8db63ea9029abbfcb068bf57a36364aa9e27603f447adf337baa35f049a129abdc899f808"),
	})
}

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

func (s *drbgSuite) TestHMAC40_SHA256_0(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "bf834dd99be9d58e3f6eac7664be2922c5fbcc99b8337037398e72757452b5f0"),
		nonce:           decodeHexString(c, "179123b7c887982acd3b4a37f3d87283"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c46477fc8d4c9c2097826f24f66f65bce6888d9766ee2264661f0c32ab452a0f7b2d1705e2b22873a22fbae0ad599494970b2780881b0a89dbf237a5c5b868114ba2004fb737ba22985368ab2e1940369888f484e2d628c7426adefd35712dd52b91abe48132974cf97a545140d8820da92a6a301e3f27e6b3160b1f4c1dba91"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_1(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9e99d33410a8b2081814714ccca9997f8efa85bf47b3f44325000e7a26885e5c"),
		nonce:           decodeHexString(c, "fec5d7169c2af87b2075f8c7953a2302"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9be1e7e341343bf0497ca2af665f5b2ee7935be8e8e8b10f5fe9b646bd32b1876a634207338a670fda09b750ed589c56901e7111ddaa2158574d9f0ea4a7edb84559ef406167e107b0b49ae32a1a318d038fd83a372ab8e1eb04e845fb2330b5d3dab39924016fedc5ecde3022576c4d00c790a1cbbc60ba21878c73e50921ed"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_2(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b41e761ae51064b5f1bc3d77dfb4b4ceed1bc4bba7d4f821895b84081c31f75d"),
		nonce:           decodeHexString(c, "c7b8a8d8ae06daacf64cfb5da139a553"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "aea278ea3144b9ae4d7286d48e07ce674062417743b7d6be2ff8a9ddb39b1bb0a76a3d6e76950aec4fce2376eca7056f4897d8cb8799634ac8120fd75b78e6874774d040353493312007f8ac2c85ec046f9e54d6c54e4a64f708c97ed521628ace6d4811144daa0ba734bd89adc1553bb090e5dbfde7158d3b7e04187cb26ee7"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_3(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8d12298dea58e35585545ebb5f20d7da6a640d59c1485b38a60dc56260e9cf2a"),
		nonce:           decodeHexString(c, "81bff3acdb2c6ba76fa2cb029fa29cd0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c19ab18a2e671d589a4931fda6c835dc366068fd51dbab62c842b9846f706eb27344076ce772567e3633246ddd2594188cb5aaf7520d89e29707126152b94434a1d68fde56754d78234e495921529318d20965a19878857176f1aaeb4231c2cb535a4b54dd6b245ea5306b7c03b00dbf83e927228a7bf048f34ec3eaf3b0e7f1"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_4(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e1b9f54f7b16028caf1facbbf5a09d1da61508eb23848f9d3cb961dd082e0e3d"),
		nonce:           decodeHexString(c, "ed5606c8230f993a0ef8e30e4ac6f87b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ea858ab66ddd7c268a4a21aa7655430353ca0f12026e6c7792d6bbbcfc84ae6d59e478075881ec39d074c60a01eaa46e2d0663b323d9dd31471cec1cf858e5c4df4f0ade660bed3eee076b0fbcc09f7429eb756a2425e2a0435b1fba221189e2b28002370cbc85d4fe8db544f80e0abc5380f309a0acbb739cc07e7ad3808108"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_5(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "49137936175ffb835e80ef48fea9354bc018a86d23596d561073cac534f4bf8d"),
		nonce:           decodeHexString(c, "753563c02f45c9af21b815eafa77fc5d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "325efe5b6e98a1a0cfb52fbe5f72ff93b9026aaf908e0deb512c75535ba6f17ff446b4be926d946b559cf86d2d16960ff3407576701f7bc02d39b345877ff4ecbb463202c2bd4e32a200dcebff6b7379c954ba1a995b565fe4070bf0b181a800b07172e5a7afe1a428d2966b893ce671b3a847a38037af3066fc4c5631f39d4a"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_6(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4849a2df18e5d528c172481958e1d1ef53a608e213698af8ecdbbb508daba39e"),
		nonce:           decodeHexString(c, "c827f4b4cb07303066bc78d5521def39"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "00bc3d2b9bf7e56add8c25993c998ad35ad55eeae3a338a31334b60a4afadccb6cb8cd9797881bea849f8c914e1d25780e13d2e620b5e18930dfafbb2f362bdf8bf8ef040dab3b16718419ac27ca1bf7132ceddd1657d60cc63a7760cc8d463e30e3d2a9c7dc50478438a7d8289713d6934fe38865f039eba69fde55093067a2"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_7(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "7fa540133452de6005b1d79c3fe87e4c50b942ecc21739253a867d27af439043"),
		nonce:           decodeHexString(c, "84fb3e54c85c20cdbddc04a4538c8038"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cd1489b14b1f9e784a5d11af4502740b8f1eafe07ddc818e7b0236bf0b340acd4b8bedb37a7cc7f168701c9339a8d3ea11597cb7d04d3c74baaabf1c76a1fc4e58bdd35237322ff3dc4fa613bf537dd1198d7ed2ed91fc71f0224fb8872ca75398a64a047fdb733c320d45bd662b0a61036e017bc9f0684b3e2e9a7ff7777ad7"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_8(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a541ed73fcc5fb2125edfb514eef05c4b2e55d68b0c03a9f24da4d78c57d472f"),
		nonce:           decodeHexString(c, "a81fdec163cb205cb8927020edafe7a2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6b36f4b229c6092d430fe2b413d46a577d90efafdd84cbfc9b9728cdfd5845c98f203ce507f7b618d3357217f7abd344396275cefa11bd9e572ce2d011abe66992c64b9393020c2305d45b6c4c50db4115f2f2b79f4659b976932d99fab0d3c5eda0c698ccd411ce9ea89c9f1c7970895889e0dc82b8fde4b67caf9299f1c073"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_9(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b43bff7fde71c178cbe11e7a1350c79bcbe619ac4b428ae90dc45427b962e6a7"),
		nonce:           decodeHexString(c, "1a1ec9ae03b53cb86362c6daebdc6214"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b358fa64b37fee910c5456767e73cba955b0768fc5d073e0c96b2072f55e1e7df71ef17ee04b6538d4045e930b65f666b7208f95800367fe74494d101d7f79388b939225cff4245d175a142caaa450ba15f407eff53e6978cc48b41ab6cadf158e94fe4a5821a8c71d2f2bc98c4f87d8d424d681924ca3615f15c1ae720c6b45"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_10(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "11603d301f43587b45021858a85ceca9ce7eec33baadd09ee073e9d12cf7dccf"),
		nonce:           decodeHexString(c, "d80d5cc4dffdaa05735079dd391ae848"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "05ac8bfcc06b4c6114e33d93f4d49616b58814f5906e28937ebf6316fbf96f71b6dc5bb73a4966e6a10a7f065a97171780e2204da4f7e43057181612ec2bc82ead92610552fa969b1f49cec59f1ced0ba5bd2285069efd6e4e0916786047037171664ddaab2584d18bfde5364d71e1a5d0804e36ffab26208ee96917ed19bf8d"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_11(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "ded63893594595036854ac58a1ba4c49e2a262bd6a5bec530b8797dc0f491be3"),
		nonce:           decodeHexString(c, "267ed02edc56cfd991a510fb6d0f69fd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c8ee488d07eab1ef20504dd838c01003e6f2ea51aec3ccca927290bea289f44fa692b37766787ea91a3c5b48740f05ebe56c7cd225d8342a46b02064e321d90831384b301aab6213b010336841d09f04c9ee6ac4ecbf1cb932ec3b2fc9a15596d5b1129b67021de20077e975a4b8306d65c5adca4ba590b73483cdea53e87970"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_12(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9e520e1d515e4bec39f2cdd032cfa9bad9ce5541b107d7e6a616833beea72a40"),
		nonce:           decodeHexString(c, "3fdfe4b121b69dc292081b0edb4e68be"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a3e9f73213fdecbc0f415724c41fcd0f3426def28ce4593b8358a56adf980868e01069c54f9efc679c7320c9153231c394a07421ac162db788942ea01b5351776ba5747aa8bd19ae982816937e2ea556204656c582323b19103536db68122623b53b9da6ab8da8c77081ff746f354018840f45a019f308a1d77a3c5a1397bdea"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_13(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b5ced385bb14d96498b7c8f4d11ab929b482a2e6050a5d303348aa97f5265092"),
		nonce:           decodeHexString(c, "3508f53b7825951e10a770e826b7491a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "01b9191a5078fe1d330a97aff8ae937c7cb3f66c9764e200ad94696ffd70a9935ea14cb50a888548c413d8a1fa0e1511e3f20b6b87f58ee90497ef188fe6fbd4968d77c1d70129dc8f4cc83cc72bf986f4ae84656b92a50ca071400c7db3738c485151ef60e4821e0f4c5fea1c75831f5dedea51505ea2e6e327cdca133a6f53"),
	})
}

func (s *drbgSuite) TestHMAC40_SHA256_14(c *C) {
	s.testHMAC40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "32695b2c55839eb3a048fabedcae1f23bf0c7206280ba4ba0d08b9bd9f119908"),
		nonce:           decodeHexString(c, "01f2a4cf8a9311abe5ecf58d6661dc5a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4a4f44f418d585e03f508f2ff05345abffeafd75f610a957be7f3ccaae31ba28e69bf8ae441a405fdbc0ee761e39c76b69062f5a3866fc296be1ad306e6584ab2d250d717605c70a17c46a298f714e4e820c85a1fb84f4d61b9857a40c2902193ad703c78635a2791abe6abca6124229ed75827135c27f1a04d244e1d73ff059"),
	})
}

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

func (s *drbgSuite) TestHMAC42_SHA256_0(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e50153d9d7114aa4b8535482f8c4c8f187e4bc12a59d35c51f3fae9970d1f778"),
		nonce:           decodeHexString(c, "1175f514a24b02cdbd1d90396f92c51b"),
		personalization: decodeHexString(c, "7ba1b78349569a81902cbf95b5127cfdcc5bfaa761c349f1930c62cf536abd0d"),
		expected:        decodeHexString(c, "924462b8099a1019cb8837342194ad10f24b3c70b0e3b7ed8f28063ee5ad34a725a3311557ec63c3044416e785739ed4ff386d6f5e5bf53d23c45f62acf725fa548b4c564e562a458424a63dab7771e4adb68fcdde2c250413bb7e95c47f117d7bfa85ea3cf7034fe52b2611fa5deb3f7be98e27b8e5adb83f97e897d4e0cada"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_1(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a1a7dfd64b0bb565b6965c23af2ec3814714d1a7af4367d249f3ef2c28e10d70"),
		nonce:           decodeHexString(c, "ace62601e397838eb0093b8bfceb04ed"),
		personalization: decodeHexString(c, "128886ac929d9c4d198cf29091ae013e3ba2aad3ed7c017f0da7dd9da478d8d3"),
		expected:        decodeHexString(c, "e7e3e99c793157becda566413ef21fb41e468c1192122f4f1ea6be51d946b99709235fe7a028319335120e0d60758f85fcc653c5570b7adca527be222a867e33c5fc90cc2202c43d036a25d88f0121a082fdf7d145ba95c5a675b247bdf5a3d327e67e47fb2dcf821faa9a907dab628f70a0e0c7bd211fca2606899b46c0cfac"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_2(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8eada77fc0bf869c8077a6b3aa697d4c818e398b309c4d9e73b77e7b43958f8b"),
		nonce:           decodeHexString(c, "4ae5f1dd363ca3f0a3e8bd65311102ec"),
		personalization: decodeHexString(c, "9328cbc2233821eb0b977426c07873661549488eb7aae957e0110e3762a46864"),
		expected:        decodeHexString(c, "821ac3c18dcd7bcd3059ed4bd02bb9623003a2b05d823f17d3c89394264af0a9e53ce44db9650a96498bdb21f270f854aab79c053af154c271a2ead59c74b8ef420588569a5c7828b7f3488069bafde17d60199224bbe3e40b177d40e91c4b748c4f5d43b634f2d7be50bf037b0f5385ffc54e050e89013b8a8a8a238bc5767b"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_3(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0edc07b780c304d8145a36ef567912244ab3c49c11d0ee4e324850f580bc7f8e"),
		nonce:           decodeHexString(c, "4044447c33e8a9349774d409ea04093a"),
		personalization: decodeHexString(c, "32d1710102b28da78d2cde1ae3a14e0448603dab18786a3a43be95562161b037"),
		expected:        decodeHexString(c, "9ba83f591a73bce88ea8a8cd1486d383c64af6667025b1ce4b930e389b017abab1df9691b66f7b57fd52320c3676fafa280e17fabfbdd5e567edd216fbd8cf1aab2c530ef7bfaa432305e38e3a8fb56094a4c6ea0708dd4c8b3820bf3b87e1d7381a10ac23926afd91baa45baccdfebe78822146b815db2ecc4deed0298bc8a2"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_4(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4fc150782f8aaa6ace45fc5128b8478cd8feb34d1cc3e14caa8508d8cd252581"),
		nonce:           decodeHexString(c, "fcc48fc6618359b700d2936114aea646"),
		personalization: decodeHexString(c, "f7ac2f0fa50fe11d397311c0387df50567004baded7941c0ad9633654a92ea00"),
		expected:        decodeHexString(c, "07e2a5d9d56680dc39f2d514a3ef48d39d3a8f024cd692d5bad864a765ca7a701016fecf9d01aa62e16ebd908c8a335f147015e1656ec1e646c12bae177797d0439794400ab7bf896577c64bdd1aa0aa3a0ffcea31891bb971e7d62a4b45c23489ab23cdd399ab6558156129029ea09b8273d0d9955054a4cee427988bb44372"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_5(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8eed1b9eb753ce303fe8f30c4d782345f27bc4839695b8bf8b558cc8b59b9a07"),
		nonce:           decodeHexString(c, "e42b1c108bfe505a5730dc69b8d2a6ad"),
		personalization: decodeHexString(c, "8e9d09e5c51a28ecce73442e47414ec907034f2dfa2f24db2c0a4f7c0424b18c"),
		expected:        decodeHexString(c, "29b59ee90517aefb8fb25e60a7a59ef34ee805d03be9b9cf30288b256f3e361ce692a7221fe115d6ea3cd35a812f3fcbaac6abcaf4cbd30231ebdfad3945846e2c00ae7b85cf710ca688609dc33a21eed8276a6a70bdae857cad6073617a7391ded6f74625392be49ba781dc14ed81aa5de93f99d357d71dda1a6be503ec56cf"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_6(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9f0bbaa33b7321608f0cb354add1cacd01ecee863282c8c30c58929f197dd877"),
		nonce:           decodeHexString(c, "d4388f2404c73dfa515f309757752dcd"),
		personalization: decodeHexString(c, "d6136b57bf0b8ef3d0a402b757cd87dfd8bc98af42cf6b64dc7251beeae7d3d7"),
		expected:        decodeHexString(c, "3e026fdf4cbe34a6345f809cb5d3b31cfcce13e02a7e3274e8fb054b60718933053098bc329d0f65743c6523d747655869d5b56400c7ddb6d73620bfd9d41d82b6da85ac1d4703c93c074431f709896c5eaca30cb95f8aa138f88f369e23ca600ccc3e245dfb080141efc2e2fcfde1ac40120b96f8b024a8d7913b498dba390e"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_7(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "abb007b472c21869d2571b412d2320cf7c0d080397d35e47c47a8ec10bd21cc7"),
		nonce:           decodeHexString(c, "59b420bf6ef70bc58d02a074e09f29fd"),
		personalization: decodeHexString(c, "e836f980a188f0189be8bf130ba6136ff71e0994863cafb25bb611ea875cfa55"),
		expected:        decodeHexString(c, "a2abb57a18401a54c9eac07a1f4ed1cd21f525f9a5795dd9bbe7db61621073e6c150804cc2dc11f0734ed8000062df0ce7c7448499687da5d21302f507f8c225166c23fe01eabfcb0f83448aa2da9111785b0ec3e3212694225f0f80426d39ad000fe904f68f9fb7d6851e929ddd12ca9cabe97d717d5374b7d60bd4b33573a3"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_8(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "831b39f472980c2cc0ab18bc0fbbf9dc2639c0fdcbf8bf1aa7b85192bf589f57"),
		nonce:           decodeHexString(c, "d3691ea3d137d7248f5592397bd1c6d5"),
		personalization: decodeHexString(c, "a08affc0d4262986cab581f602f6139e959960de35b7931ccdaba450185ff290"),
		expected:        decodeHexString(c, "c2359652f77d03118eb570b1d3e8c2525aba84e48dec6211a6062f346614abf249052b72d5b05880c3c9d40a2d05aa4211499a06eb4a4bfd011ba1d447c7e16b6b3cc061a9c40fcd6fec9f32173d2237a49a462df4fb2e4457c0ce94c29835351e1b3c68056d5819d92fd035fde6c8b0f52e5f327a9cbc7896932b8e526ea465"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_9(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c977c3a73ff79c5d7d3fdee8ccef4713e90d0a87f0b28ff65407bf1323b70372"),
		nonce:           decodeHexString(c, "9d5d1efade50b35415d190f295886fbf"),
		personalization: decodeHexString(c, "560277ab734b3865ce5a38761099f3aa38700a05e1180d30fbaa6250b8a827fa"),
		expected:        decodeHexString(c, "2dfc99d31356463ee6ef955e9382ae7b6dcf181f8b7ade07fd029ad6fea5e1f0b571c6eba513d3d8d8f804a8d723a76841e104c196e53c2939892a607e6dd02646d2f338db0380b62434c5d2d2785a173c3af5fd333a9f115a733645241056790b3ef7bd8c29f23bc9b63529b0676d0157512d74e56520bfa5fba08db56aa951"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_10(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "658565fbb879495ac5634af9f478d9f8409c9708591f802d0183a3036cf786c6"),
		nonce:           decodeHexString(c, "a39383adc3c396c0509662e022152899"),
		personalization: decodeHexString(c, "c60456ec7c0dc96bf947293076b5b1f8b6f7cef4289b225c3d99bd8b8ff5f134"),
		expected:        decodeHexString(c, "33c6898798a7e84ee023a2c935766cfe49c8c9d23675852116c322aeafc49ca0badc1d8fe271ab6d766ad16e1dab047f11a6c6fd4b54c5b6c5c33662322e7e226479f1f940c1a7576c8f6a9a5fd5ea6c76e11f7ebb64d4540d7f69e21eaf12e35c34725e5618b3fb5bf41ae34ee315d2cdb4ebe6eb7ff6187dc37176d6b444b1"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_11(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5f369d910ef83b28b012880db63b86d2139778c931a4fe9ed11a3cacc5630a54"),
		nonce:           decodeHexString(c, "9ccaa788611202abd00f6a230f36cb8b"),
		personalization: decodeHexString(c, "9f43246e07542b8b72a0d49648f6539cffcfdadd2bf364930003e58fd645c697"),
		expected:        decodeHexString(c, "114cebdded6802545f568a8a1e20a8ea7941735ce6a85a9f1310e70344dfda961211558af1d260c0485789d3d89376a15e4666110a6ee53860dab6a46100f34c771e97623db5c3ff19bcd904c5ab626139ffc149e82f188bc14f5680735eebeae410167bbb67cdf4d9f536f0479808e01540c6b3e16e9cc5754e7533c188c0c5"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_12(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "ffbd8a4cb741b9f636b5a35b00be7d174ce0bd0c6c4807ad7425b8688511ebc4"),
		nonce:           decodeHexString(c, "43bb0b0d7ca0488aabf66cfe79cd4c78"),
		personalization: decodeHexString(c, "06dd817b26cd5cfb2b53058fbb36ab2934fc1b00fb2c25903f013b909ae6ba3b"),
		expected:        decodeHexString(c, "7e76c92d2973a0cd991dd65137498e86f551e57424cc655473de7cf8438a1740d1aade63e5c9b60451a8cbc1c3c6cfd520703bbe969093ee9ca2c96f699af61cfb649783c0c33d67b86451ffba9554a20c2c306c49622ee6e8e6b8681f6fa9a58a212d80d71c2d7fb998da1c4669567532287cfe67f653a678e61493d2eae1bd"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_13(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e742599c62d9baec6461daf2a28a77e354f1069e569029fd2c6ea32e56e52a54"),
		nonce:           decodeHexString(c, "231c786e778fc70846b56c7159611ad4"),
		personalization: decodeHexString(c, "41156ed56a74f98dbc311069d8edaf70a267193705c784b363af82cda9595570"),
		expected:        decodeHexString(c, "be34566a89229f4c9bfb43aa61403d48f59411f840d38061dd8b1331715d821b17200d2c7305196673a94eccfd99fcae5fb9e9a461032692ef5698c6634037525a661d84d6627f2052dc9a08d98643b555d4fcdfd16504bb7b441ac928dc4ebd74a4fa647bd853729ee525277b319450c104a88569eed42c2a2c1bcc3eda9aee"),
	})
}

func (s *drbgSuite) TestHMAC42_SHA256_14(c *C) {
	s.testHMAC42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8296aaf08f44bd70b0d219306e6242dc74775cba1793bf2b41b4c1de6519fbe7"),
		nonce:           decodeHexString(c, "3f9e88b93a6e69d070328c2c570c3be9"),
		personalization: decodeHexString(c, "bbe702bbd2265e73aa073f47ce55fb65902abbe51635b414df688c60868546e1"),
		expected:        decodeHexString(c, "0280555ba6b2379dce7cd56615d7d86feadb8ad995e2852a0607e663a34b1e0342c7bc649adcb204e271eeb87521591fad74b3bd841971cb100ae5f21599b732d8c5f9d578c1113da7034b580013720e62b1d013e28205d5024f8b1eb3219e6cf821792713354cf1349d32a64f32ecdbd7578c55e401fbea57f21ea3ebef0f9f"),
	})
}

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

func (s *drbgSuite) TestHMAC44_SHA256_0(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0398eea9b1887385fdd440f46c475829e5a15d73e0fdc22e1d9290852a0fa0d9"),
		nonce:           decodeHexString(c, "9c7b1c1fa7491b8c7421854427ddc1c3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d2bdd8ffe6d840380f7dacc3ce913f10567b7ad40d3e319880c9ace504043d5158cb0679aa374ebc4d4693620ce9ea372ed9ac7b95d90a098467cd4b6f491c41d86ae365a4c0da37690b1748fbe76f5312da9399565cb691710c15e1e3a83b4e61f7e68c6727b9a2a5bcf752d11f80736a6f1ce1553e92d3a388ac83568651c1"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_1(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0ff19bb811df7ca0f547b5d9a6809b1a7b58d5d144426c00e924878101536924"),
		nonce:           decodeHexString(c, "9478e8b18fdc530a570852bbc3460cba"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "848653b4a3d65f1e1811aa6da7f91d6826dbb22f636dcafaf62d966e86f5ce67f0e2b27bdb847373f44627426cd04ef27e79274edbb727912d89662376e5e1a831155f72ee61cc5a102dcc042a2144474649adc1244539e4be23ff49333544addfb9b64a97b81060d1ea2107b6cf883d25775836a8a6560bab1b50e8b688f930"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_2(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0236edaba4e5e27e90c96bdd78ead44fd7a2cc5796b8dd7b2bcd1dd06a287487"),
		nonce:           decodeHexString(c, "f86fa888c9be09b4b9f8c02d8f851e2b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5dffab11d90d4b9782a25b41caf73c4264953bf9531d066da69e8c6f84064d547904730ecc42eb78f21e9f2bf8df012d46257541182fa43e412853392abf33b5ca50126d5d3cea6fa887ede484f2173c8a65f7eae2e8479914328c44617b2bf57af9ae128f0482b0ede00715e58f1c3cf2d043d1c1c276d50730d039807e46d1"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_3(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "55a2fea78b19b685e0fae6d9bbd14ed528342a169ad494f2e4054e30ea54a36c"),
		nonce:           decodeHexString(c, "a63e8e20cbd540490639e98a3021c358"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "aad57f77c18631d5bd8744388ae6b47b975ddcc51ef39903d16e7e6aa90e0ca3d56b97c6992c6175782f92ebc57e0b9ec4f2c9f5489f96a63bd3c2d1f3c1e82c4417c24c7620b1c37dee5a6bae7e7a4d1cc543151e3f98e49e4024cf79c516398b3a12f3b55b12ad33a690fbc3c66fdfaa471396dff727ced7ab5a2f09a73dba"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_4(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "35f938fc8bbbdade64d95c50f75aaeca356a2b9fd1ec1719a94b8239081386ab"),
		nonce:           decodeHexString(c, "c8bcbe8bdf4532cc50947878d414f470"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f77873425fdedbf30e33b2442ff6763d2d041d3b838a66d26d469dcd6103e203ed7473a33b443fb8d2964bf9a02214bd14cf8938744c4ce28ea46e6f827c8917da407dbf2956d458281767cf0f7ddc973b16ed81c446d85d9dcc454bcffbb6f831109a1592bbfbe1556aa4727c5ec3be6a55a0282d6ee96e9e37845873d6b858"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_5(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e107669ceba4715a97d531d083f842993a4f217745387e79088b970be077d1b7"),
		nonce:           decodeHexString(c, "fe44cfa21e308b55b4575b4dd3744c68"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1d7870659867a1c0ebe35218e647a56252f73a1050083730aa293e9ead28149397bf5e5c7e8a6c6a336dff4442119966a0fd6502dc0de72274d04ff1acde4588ff25ac08f154e029f609dde8019ce696f83495725588f4edbcc09bc6c03d43a96a0436e1cfa0a3e2e4303d0f9fa481cf7f5b37642d7851cf5727ac41481c5c70"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_6(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e75c87acc72256b4c1eb11df060dc3fa21c858b737178dc61f907c57787b4d06"),
		nonce:           decodeHexString(c, "0487c6c9609f9de7db75b63b000c3af2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a87bd43c52d4a7c9f21f53fbe2938e59dfa8df09a2cfc110174ac4a66f01e95a341d8a2d5feeb24683852b2e123522c91c4833d0fec27aafe2e774f4c1c938336e05e6c7f2f3e0806be945ff2301a44b21bb8d6ca047a9d0db1b404f38c66afdb4cd495618a5c6e132368bb950b3cbaefb2323f289918f046c8c595e7925f6ff"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_7(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b1ca7743d644438cfae752bcbc1489622376ceb0e8272b3718ab0d71165165be"),
		nonce:           decodeHexString(c, "c3c5b30c0b4e599c7e710e6893248d55"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c08cef3165727b8d6c4cd0068501a6ec22df38c754cb0e1ada39c2f902db475fedc449c34c51229ec77c52a592553ed2ff4b55907fe16394b61f18693cca19902a692cb6737d0d3b740625ef86f0eed0b9f8129f709c8cf68374b031c887cce685d05d6e50675adddaee662d16c2e7c6a5e450f407b6c6db63d76576555849d1"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_8(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b37f987c7c36f253852ed7d07af677545364091187c0fa7111f03affe8f65bc1"),
		nonce:           decodeHexString(c, "6005e3904c94d629d161f81fa810b7cc"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "84a0f66555383cf133fc3e116578335685471ba8b7e6876324f29d0f991e6e3413f0b19edf69dd60ac05d4d7d7189d11f9fa2eb3be1013eb59ff32c1d576408bbb11734d3c8538327fd4f20f5d7df48cc59a3cc985d8783ee2b6b12fd991b0658fd25764360071cc96dfb696bb4baccb61bb293dd6c26c11f0939bc5a4f6e774"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_9(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "416ceb8c2ce590b5773ba8ec82fc91122c58808273d65615f8ab023cdff77692"),
		nonce:           decodeHexString(c, "3d11888f43fc72e329719c8e09852b4f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "38e71d00732e20b2eda46b185e5a45647ad8cccfb987ada270079cb223cf4271618a41df6551343e093b0d5abbc079a406e2fa6cd955bb86789c4cb3fe42ff4ba82ec3f03329ff786e34e681ee26b35f7a8d764e948ec80f9f6d7cea6b939039961fd22806ae5a404febbf7e062745a0c64dd3e87922767309fbea5d1b58a7ed"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_10(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "34bbe706783662324f12047f1bdd4cdac8b09ec3e3c8a3faa48d0edc3a241042"),
		nonce:           decodeHexString(c, "1924993c64cd8395319bd45471502f5a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9ecc31d722e6764e358bb7d9aa2a278f784e2011f46df7ae633ae9427963a05e52857f11eca36b42e76a49366bfb335ebecfc61c9c0180f3d102a93472bd4564eb14ca40511d8e846f387b11a37aad97e08900431b303acaff746397bd0442eeb19af57f213c3233f3d8656f139518db4fad823ec40f2d7e637c57a0eb192d70"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_11(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "6d7bd10ada2c3b56c42de6634dce1d34270f04f0e1ae89f804c90ef4b2dc8eb0"),
		nonce:           decodeHexString(c, "247373004e17d7704484049dd649e8d9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2d8f85b73c227092d44567e23ea45b90b674c3e29e9356a33180cff0c8dbdda915ecee403524fc484889bcb3c78713bcb3642faafd75fb32009732ed7dfe352528447b57b6863609a626631a1e84eba3dcc7a23cc66717ec1225e29c9774f8180a6de671cf5ad21a2fb2387f63b9974b47cec7027889310d41fe6c802f26026f"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_12(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f86bdd78fbe954f941790c8bdd1e650929c3797afaa092346faa22a91f6a1a0e"),
		nonce:           decodeHexString(c, "9b5a2d78c91bd9e28b138f0476666be0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b8083d6337ab2429b4301bc0b0e0344a63e4a11d7804b8a89ffa091b069a41664ed0e807f2a2a5afd1bc6c44b4d791c433a76a0de89bc0470365fafe11a82538e31a44c3e6e263e330873c3ce8f220dc239bef3cc06bf778d09219393957a1162bcd2e7d7c2d58fa8df2f1793b0ca773be634e5eb0d8204ee89b9c08add83050"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_13(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "675d0f1b40e76ca58a97fc167de10fde8fe12f9973584f843805c23b4ee569ce"),
		nonce:           decodeHexString(c, "d5e4b9857b535e5bddd172efb6fbba5b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dbdb9b0230e0e5994fdea825a92a123b18313894d83c24223758e76ef61b841062af470ad9e3de28d0a1a49731c72442df14fe3f63f4fa408cdc513dc31a8c09f68b127fdeea936231dac202cf2b63dd08083fb5a63f6f409d1e54dc055e11af8392efa83a0cbb68430286e8984aacb54c13f73f29490d7d2bcb7f956c58291f"),
	})
}

func (s *drbgSuite) TestHMAC44_SHA256_14(c *C) {
	s.testHMAC44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "1006646f977b83f4d90870f24b3b72d0b4947037f7671a64ce3b52829506a519"),
		nonce:           decodeHexString(c, "5698d50f59c42b26339d218fc985a41d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "44ab1d22fd3a84f8847c33d0fb0aea66408d5181b8ea95416beddd9784d86d72d2851857b503253016036246cea11f2ad2bd18fe56508697a50b14e7c85bd9b002deadbce5ff9f72508b6ebce741dd7803a2d8633dbec235cccd37c089c9d747a52000ed4cc1dc8545ddb65e784a698bdc74a6ff4fd7b3dbed31a22f83b4fd8f"),
	})
}

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

func (s *drbgSuite) TestHMAC46_SHA256_0(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "30197171d85c81d6526474b43cb5efafeba746119ff10ef2a96d9b30f40a354b"),
		nonce:           decodeHexString(c, "c634e60d27088ed0cab663af404706bf"),
		personalization: decodeHexString(c, "1f0977ef52e535260e4f5a0d749fc6b2e9752e0f10848ba939a8b1ec3320b333"),
		expected:        decodeHexString(c, "af1a3ad8c297300fd1a7e32a2d306f8265d287aa9fa1e3727b60200ca8786bb2e4e4a44cdd9e12ecf396fbc33d067c8167e202c5a524d0701b30be08697ec431dc497473046a61b69e3becb128c23d857c5f17442760eef220102d38be11e21fb4cbe5398267fae7de5aa3e29f79c30c70ee39a7c06e05874e7a2b8c1735d6ee"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_1(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "455f4d93e91d45a36faf6bbadceb021f446852e8a2228b5934972073a131e80b"),
		nonce:           decodeHexString(c, "49e1804270f15512d811c74ed9d5d905"),
		personalization: decodeHexString(c, "50b1bd2d3ba3be6d048e069cc8969ccbe8ba3b0dc7273ea0cdeabd5a779f446c"),
		expected:        decodeHexString(c, "b594d436422690f2bd83d304b5333756785c4851062f47e43f0fbaa89dfd0ab4a94faf7cbba5541bbcbcc2008aff50d88ef876c12dd8364235fd41240cb7b0908f980244ddb29194d06eb389960311396aef4e0641d95e9c26796fd793f15a51e69911109f41653e9738c00dddee21960854202743b9362a282f2216a43bdec0"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_2(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d10486ae771b1fffe1360ff70eaf5264272fb402162af835d6fbca194c4bcfbd"),
		nonce:           decodeHexString(c, "a269686bbfd9a3031da2fd5421da5dfa"),
		personalization: decodeHexString(c, "2611bff5b6484e76641625a1887b4844098fdea0ca73a65bf6aa89aa0e5fd15b"),
		expected:        decodeHexString(c, "6b44ef05d0650180b94783bc33c1c7c664e69ab5466bc24d6ef44ebebee15f7bfc22f42b34980aabefc737ed456fa903f651e73173d64987b7b2a54d8b25fecb69d74cba837aad4ceb6738f94a13c7eff800115b70b3e242b8ad46cc0972269239eb68d7118bfdd99bb1c4dd95f24f8956cb802a0c2cefb6b02ceea2c0a05a1b"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_3(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "76bc1536924130b36b83328f40adaa1f8fea9aa24809e2f1b1886e8421ac5a3e"),
		nonce:           decodeHexString(c, "cafb00f40e590ad87c2f9f1404bce230"),
		personalization: decodeHexString(c, "c6a45da5b04af67d0d1f5dfcb388e8ba51e675aeebea1a18578f51b2e7ff4fd7"),
		expected:        decodeHexString(c, "de051ac87331749acfa44341740bd5f67afab1dfc67ea340610a70900d049171ced410ed4d6225c706f0eae3599f399c633782957f93eca8f9b0afb94d342e8b8ee8b27fbb3467b75eb9f32239516b0a3dc0b8d0794f05abf149d7db416cf52cb73a8f97b6ed578e654812e514e6ead5a5058d8b57b704a8cb6a7c243f5f5e26"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_4(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4a207dcf464ba938e1e9f03d3c4990702481cac85e3c831d74c0ab1e718636c6"),
		nonce:           decodeHexString(c, "ac9cbd6cd10c793d450c2dec09d42c30"),
		personalization: decodeHexString(c, "7620cf6a8828eeb4369c5f3841466d06b7ad38dc9de90293307b57632bf43def"),
		expected:        decodeHexString(c, "c4ca1ab0ad257e3de0879b4c8f4bbee4e4b22775e0f1709b8f7b1b30c962a6c867a8e49e1a7e8639c8d1510d51911f1b6dcf5c0ae42ce7f860954c3e954dcf20d0f56378ceb43ca4949deb4b7d8b287da600c6c31ff45bacc2f75c106734a0bd810865ce5d9f5d84a15fa942d271aad26d6ea9b263911a915715b0475e151102"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_5(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "df8aa843e8a06278e1ba51f529bd108e90ff710b6d8a0b957f63ec364c411ab2"),
		nonce:           decodeHexString(c, "1d20f877693716f5b2fe8bbecad9fc06"),
		personalization: decodeHexString(c, "509a42718c5d8f24ccdaa6a546eec3bce0f8fe785bf3c72146024e8e7c122e09"),
		expected:        decodeHexString(c, "03233972e3378a35c76171ff5847d111ed39114455b1354aefe1011ccad284c9e8d3dbcbebe7cf86e82387c0c025682887350796f080cfab3422b0e9ded3a60f274388a0757e32358f97c13235f01c803eddbb0bc3abad143dd050bdb0086b97f57d193a44e3d6adb2f0ad0aad2a45879ce13eee25e5615a39b570ecbe673348"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_6(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "aea9f1ab7f2a7b176f76a1d114688dc3a692158c2ba4fca7fc6285477fe8e6c1"),
		nonce:           decodeHexString(c, "ac2a7d31a95908a556bb7c75ceaa21d9"),
		personalization: decodeHexString(c, "78bac89b1cc0c21b32c2e24394e9385028c0986d4639b34130a6983a39010240"),
		expected:        decodeHexString(c, "2dbc34d5d949d830d0684c8a21049bda78aab9068f15be81551a5961e6be5c3dbfb3e8fdbfe131a72e69a2a68ecbc9b5baef8fb7c75ab1383c04aa681aeb5e170219ef60316d70d44076edb6e1f8dbd6094f4c7befad0138c6393e8f8363fd708efbc9610d6b1ec1a3d2bc458bb56b6a33960dfdfd381f1f7e4626385c7616d3"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_7(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "329cf7fb5c8905b7ed6a805eeae441318fd4f793c50c14a8aafd04d476109539"),
		nonce:           decodeHexString(c, "c9ad01bf21904253b76426d94634ea74"),
		personalization: decodeHexString(c, "b79f0ea558c4dd2e42bfc592634a92d51ef6c13154a6c1eb51c9d08557a1f6f1"),
		expected:        decodeHexString(c, "3d23e8d902f844403f15425d8a177d7e5bd7d337279f12e8df350459936d7fc86105a5f34c573c0c9554ff9ab663aba74c36f243a8f1770f80bff3f15776aa7db7815af6e9354782c0d02375063345a58bdcf4b838124cee8e810cf75430f9ac54ac5955fb7c79ed7c6341606e82138c131e6e1cb9ac6e0437bee5da68eb2c66"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_8(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "adf012e2395c2d53e3a6e3e73a1d5f83afe1ac065a75f6b20b45db14d0d12734"),
		nonce:           decodeHexString(c, "d729499703a5fb90f9b1d6c6989aa8a2"),
		personalization: decodeHexString(c, "e97021e3b7f72f5c6bcd82e654706e83fb409dafe4dd98f704f03c6338d6d24b"),
		expected:        decodeHexString(c, "cebe2a94bdc056224498fd95cd3ca676997da94839f3cd0de7a3beb0324ca13ff269db8027d0bb01daf4dbe55ceec325d34281955f425ab4edaf311fe85853130144c43ca1c42502c921d28a7b7721d32831c34d2ef9b9ba8dcd43650025a95afea2ab2731fd43fe9781835caea31a5cd178935f5a8374ce78a337725048cca8"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_9(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e29de9b2c5e069f3fc29339ac517e70d9b9309fce6076551b9e5f016567641c1"),
		nonce:           decodeHexString(c, "ba666331b85bb6d8a763df9d30a6c6b6"),
		personalization: decodeHexString(c, "67abf3319b242035460fbe09bae8df4f10600632a19295131543d270ba45335b"),
		expected:        decodeHexString(c, "df4fc7fefe67c4b59d29cfaa6538d1d6a7acd4ed0b6710dc7a98772af519b2d563a0b4840353e987606e32e02c6af4a43f25404ff4d3c98631d73b6412cd4c4f9aa13e3ac7decee2e4a5180675e04d6b34415dc9fab1216dcdc4ba219e9424d6c935c39fe4ddb9f5b4cd9ed40315b068a02b9c20fca9b898c5136ccbf30bdc03"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_10(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b2ebee204c7165dea375e9360f308be3ccd3801a71255e0edd1f42ba3ede07e6"),
		nonce:           decodeHexString(c, "486cb1ae920d332847d7019e9fc61611"),
		personalization: decodeHexString(c, "5f3bd6d419778e63caafd45178888777efd7b484a29e9dea30d450654e01e83f"),
		expected:        decodeHexString(c, "40c271a1dbd1dd069bcea65d9086b6b2723472a9e9bd6ec5e9ff479e8335e04d3cb988b0d0ed6d5b8768458a2aa1cf5d94a96b2c824a0690376b87c9dd8946f62699406e8fef8d5a997be8e3f63e815f130786cd5d4f3e500dc782263145911c6e69ffe406ceeb3e296594fce9041ad77a5b005158caf3617b8fe3bb0ae8f2e9"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_11(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "bfdf29359846af38a24267ccb68bad50858b8b9ff47ed5fa8ccb99694ff9eae1"),
		nonce:           decodeHexString(c, "ccafbc9dd71255d1ebfa76617642d6d2"),
		personalization: decodeHexString(c, "71e50feaf0ed045972b44d80b599a2087fe250d266f1129e821f54b57d99ea18"),
		expected:        decodeHexString(c, "4988a75a728f9e89b3d68824062ba03f3bbc1fd651749ea8522de4b466f66f35dc202b2d87b8b05671cfa5dfa79347e621941bdc81329c3112bd520337ccab5cdddd2a982abaef5619d076251f5ca0b5e4550559ad0884727494105b40b968c071c3c506ebd72532585ba004db7c9eba61a0e30f2ee2aab8c5e5de1ff44a8731"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_12(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d10f709fc7674fcc37e77b3214308dce6c0433b4034edeae098564509688622c"),
		nonce:           decodeHexString(c, "63c3ab9f1b35626ce98ccb72ef3ad5fe"),
		personalization: decodeHexString(c, "d9ecf8f8e9f3bcab221cb29dba385737daaa57853bedda0cde26d61edcbcef3f"),
		expected:        decodeHexString(c, "3c5fe9b3caca83b59cbb33dacd55fc05021bd648dcc89c39226e0b6c81ec0053d99c4a68a627b41e62199de3041ae79c7ac46c7de92cd26643e5c472ffd1af0262d10c7f527aedd41e973f5698b9254e9883149f6041ad8b21934069543b408f2a66531d22d469144e945a11259e9e464f96d8feed8bb14badc11ac942a7dcd9"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_13(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d74f66ecb33efce890c4ee4aaca1d3438d82eb65ea46a137d0d42d5be4b13f93"),
		nonce:           decodeHexString(c, "bbc9981a2959721c7b439e42e00c1aa5"),
		personalization: decodeHexString(c, "91065f0c37c28fbcab2c1a883614eb8889dac50f53248834c7d5a3c2ad24d0bc"),
		expected:        decodeHexString(c, "e1c36e42016a1b38418d6f93cb6816cbae186679a4259369576b2b466d66efb49c81e611550398208a793d19f082fcc0ffa2567693fc63a6534028f5f707faf029b79d6957f6aa613a2462dde735cac2046d000817eb59362302ab30cc69c658a2e975f18c1862d5d0f41e7b1171fbb8de215f176afcfbabbf8c458c444a176f"),
	})
}

func (s *drbgSuite) TestHMAC46_SHA256_14(c *C) {
	s.testHMAC46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "6cad4deb8e3c18f4f4265d845237bb0f9760b379292e363d5ce8e5bc243fb2fb"),
		nonce:           decodeHexString(c, "50f723edc4f658862758e149e7ae4f20"),
		personalization: decodeHexString(c, "39d43e627ab7c7a6d12fce4cd8c001678bfadd9d07d4086674e5d8bdef4ac62e"),
		expected:        decodeHexString(c, "02e68bf3f78812aa270619b307dc0e57b05b8310084ecd1914a67d93b77127e0b3ec40e359adc451eac8788ac708fde70575fc1b9bbfd291bf5b8d7bda7bcc23a0271ba0bb0e6d617132399bd6cedf5a9a683ea98b3b0dd3bc6d811e4f66c9ec751012992cf54e3ce474e09b31ba9c01ea231d4fa8f09441e204c4d3285c78d0"),
	})
}

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

func (s *drbgSuite) TestHMAC48_SHA384_0(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a1dc2dfeda4f3a1124e0e75ebfbe5f98cac11018221dda3fdcf8f9125d68447a"),
		nonce:           decodeHexString(c, "bae5ea27166540515268a493a96b5187"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "228293e59b1e4545a4ff9f232616fc5108a1128debd0f7c20ace837ca105cbf24c0dac1f9847dafd0d0500721ffad3c684a992d110a549a264d14a8911c50be8cd6a7e8fac783ad95b24f64fd8cc4c8b649eac2b15b363e30df79541a6b8a1caac238949b46643694c85e1d5fcbcd9aaae6260acee660b8a79bea48e079ceb6a5eaf4993a82c3f1b758d7c53e3094eeac63dc255be6dcdcc2b51e5ca45d2b20684a5a8fa5806b96f8461ebf51bc515a7dd8c5475c0e70f2fd0faf7869a99ab6c"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_1(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "067fa0e25d71ea392671c24f38ef782ab3587a7b3c77ea756f7bd496b445b7a3"),
		nonce:           decodeHexString(c, "ce6acc722768ca0e03784b2217bc60e4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "16eaa49510ffad8cc21ec32858640a0d6f34cb03e8649022aa5c3f566b44e8ace7c3b056cf2a44b242de09ae21dba4275418933611875841b4f0944a8272848c5dc1aad685935e12511d5ee27e9162d4bb968afab53c4b338269c1c77da9d78617911ed4390cb20e88bf30b74fda66fe05df5537a759061d3ffd9231d811e8b34213f22ab0b0ddafff7749a40243a901c310776e09d2e529806d4d6f0655178953c16707519c3c19b9aaa0d09fb676a9d23525c8bc388053bfccfbc368e3eb04"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_2(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9f76503e84727297bc7056c7af917a1c98baa725295457db4fcf54ed09af7f15"),
		nonce:           decodeHexString(c, "f39c46142b85a67b4b323594b7e97bde"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7d6a8bc5a7f057ceed6109bfac2486f80f81373b6b31d062aa1fad6d9eda5874867b9ef007ba5a92ba8f3fca624bfd9f7ee5770bbeb0391394fef783c16a7f003c06e5469bab03445bb28a2111def415d162e40472d3e5ae628c5c63170bb19f741c79a5331c883c12bca429f518bf71b14683a071b6c6e1e55d8c7a0f3942bc12a103556c49ca173e498b3b4a15027145cdaeb195bc8a7e1aa82ebdf6ecd516481a4d21f400d0d71b5894545888fee8beed80d3251647947f5abc4735b47fd0"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_3(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "e242e5b3b49d87289fe02840dc742a2a6cd9490fe2cce581833dddb1edc0d103"),
		nonce:           decodeHexString(c, "f987f5de5c68cd345c81b032ea55f36d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3a858345dfaf00defdf6c83114b760ef53b131fbf14bcc4052cd948820eee78a11cbbd8f4baa308e1d187fced74cbf019c1080d9efffd93fda07df051433876d9900c1f9ad36ea1cb04989bb0c55fd6d01e46923f3bc8887ac00ebd4710212114165355361e240b04232df55a81add3fb363f0d4c9c5e3d313bc7caac7d49dca8517cedacf571fde9686ae93d901fb9b17097a638bb9899cfab0ebc9d1f8a43c2eed7c9f326a711d0f5b9cfc5166c9b561824cbd7775ec601ca712b3ddaaa05b"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_4(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "42cc17365f5ea5fd22bdc4ade715e293064d6794d82bed5b77c4c107a73de1f7"),
		nonce:           decodeHexString(c, "6d759e4b191ba01e0ed5dea788ab018d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "de06dee8c8fe453aa03ac2546c39f5cda12412864d52ed5cbd0d4905dd226746d50d1af9fd3e1d90de0f16295cb7f6f4d3271ef00564709df4b05eb9f8adc0f8e8522b05b9f32c37d8526813898b9f71db57fc8328e3b79144482e8aa55c83934d6e097e43ec6d0bc32edaf8c0e6ca449b2e8388b32b286e2d4f85266b0605fb99d1a647565c95ff7857bcab73662b7218719189d792514edca2b1d0cdcd9b6347e132ef4c323da24ad5afd5ed6f96d27b0f879288e962fa0baca3d5b72b5c70"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_5(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d57024a230b825b241c206f7b55e2114461ecc9b75353f12ac1d9ad7e7871481"),
		nonce:           decodeHexString(c, "fe401c320f74afdb07f566ea500b0628"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e8930bd55a0a5a6d83a9b3b2cde7085c2ae467ea4a2e65ca303697d492ca878bcb801769eb1b7ec564586ec8b36d350e192c4fbf03a98be0ddecf56d465914ba353ed7734d19a680fc4593d9234c4ac8c23b7dfa1e26b013f590cca43b9fef126121b4842496b11dea3ef5e981cb357341f03f92a546a62609236ded6f7d814456acc0596d555cbdc02cbd47dae2caa1897831ea464225922c6600a8bb92e711653067f83b21e1df054309858948c11a1399736fc8391c5b0fc35629abfa5650"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_6(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "059ded79125b2d56d9d52bcc950bf608d1a2373515dafcc81efb6588005a5722"),
		nonce:           decodeHexString(c, "d8f5f4181f9f2a316c93fdfbadf50e75"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "db65d2000632c3d7009c227e99c210e5897f4d7edae608a242b5a4f17708613f8c19a4dd65d6bc3ca57737c9bfdcca068288eea49440af768d1fc977c32b065bb71aa3d8c4d77c9e8e8a6166f332a247978a6c41ed253a1b68ad934a3416b40344a681de28638f00b0a0ffb75514c3f62253372f809906043de35e4805b8e962e5eb957f04212835f802b2c0b3e76c7cf239c89adf31909cd6224d542d929f9b20a10ab99a7c631e4e6188fe2ba8f552c9c88fdadb528679fe950431641b8f37"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_7(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "4630406b475b1263b6078e93e5d4282205958d94eb97d1e66b429fb69ec9fccd"),
		nonce:           decodeHexString(c, "0dd9982c338df935e929c42fab66adaf"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5d80ec072f550981bcaac6787c0488cc470406249ec80f4bf11050630227f8b5ac6b3b369db237d7c24a0980dffe8d3abd9b64fd4efa492349bd4eb6902edb94553546110227d7de5a864ddae8b9fed8de9f0df9c596e39de903fda323ee6f788831452eb9e49c5eef3e058b5bf84f61f735a93e042bb9e458df6b25f42a6eb8fb03d437cfab757fab4990c721a757eaa5e9048208abbcce6e52f177b20dcf52f1fa551a92b68bcdb01680855b8f79131266378cd1f0c2a4141c9675f01d1e48"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_8(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6ea9c6f784f12a9707ceac8a7162ee5381dc893ee139f8f4b4d93db266829db4"),
		nonce:           decodeHexString(c, "ae92bc52ff860d8ecdc9fc16bd070130"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "234366f1591cfe244956f9496cdf446e0d390ba64beaa066945b1b4c5337dded2619dd2bd0133a5d612bab7c251ab79e3951cb134894c422553fc8cc7b3ccb29c20adbf52dda35af779142d7efc735342db2ee067649fda25f3e8a74f8e4f6620cf5a17cb943602609cafb85bdf482873efa4c74928cc0d69444b72aa6bc72694a3a21c6a721aa4e0fccab0a98aef375a37a3e8a15dccad13b6d70b3483581004642d879804aa00cba207b51affca43490bb98f67953265574366ec3829e67aa"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_9(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5c13056be92a7f71236fcfef460298acc8595dd474310727f5ccb9a7acb2254a"),
		nonce:           decodeHexString(c, "c7226f86349e20e2aca737068ab0f2ce"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "16d415eddefa4dc295a64adcbbcb8c6fe8c8f123c6b09dc08a56d723cff5978cc120fd0a68a2f4c202c220db372d3128ef52385d5786c12dfc6e60ecfc3461a09fa80453e2b1b6365eaeb4df602d192aacb25ab6b4a59689d4bf8d1c4c42a32779f62b06baca6461f154cf40901f5787c1aa2bf67cbfe7546ef5b2bdff20790d8c72d077d48c59c92d1af90a90ccfcdf643dd9d6cee0b1faf5f2f35cfd01d2077ced5e2d013ec1e09336dfab9d9e51ba9a3a2837306213bca2d79abf8dc3282c"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_10(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "38f08a099fc2d405c32d1e0f867e5450d5ee0d53783c31de9ddeae46d962999d"),
		nonce:           decodeHexString(c, "a01f13a43320c715612cedb920cf12eb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "079ce7a5b540cae96c2883e95acde3039048a6c45a2d259cc648639e7205392d91fa3ee080e615f1e0741a0e536c9e05844651b93461bfc547fb452fec61f853e1bd6e08eabd0cf1c5f84f85eca9d42b53d1e5bae51be5fd35189e4f1c02b843c6361fccf4ca6648bf30a23ccb8ebc16fcf158746eb39cd96f19d46707c001e11c4e0e8ccbc89fec66c69fc92843b6bb2ee1cc7595b65ba89ccaccd6130a8417faf705e8e203e90ee64ae970c409389b5cd0ca80a4e40b642689741691b20621"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_11(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "0863c868c32442a1a64095a71ab6ae2f9e61c119b58dfa4f34efd26593bbbf68"),
		nonce:           decodeHexString(c, "bc407904c43300452dd4e61df47fa98f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "585334828cf531828fc7127fee0c926f85b8e71e8522ea921296dc62b83a09a00397cd45e0664d0f26fa24edd3e3d8ecef8fdd77ab22431d4066f0efaf3882c97f179a7060efe9e8cba5d8145bebd502c0e09ee791231d539983c08860d7783edb58440d193ed82bc77c27723381a0da45bb1fc2a609f8b73b90446e39869a5af5038aff603b44db9771113927a5297fdc3450eaa228e313afe43c31b0a95b476c5ca312b4f589f809749481722cea9990c02b647976aa6c6f02ce1e5e6ea6df"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_12(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a41ad223e41e2bb9c131ec945ca310600ab00c51f6e4fcddd803bd9ab9be8af5"),
		nonce:           decodeHexString(c, "483373838894d32745a81ba9d6967751"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "95ca31a7eeebdd2348cf1d43411d2c35faffdbcaed4052d50cf92f0e9d2e757686b72d631a56ca98b68215e7014cfed943abc1e13441c1d660f13adf2188d0975154e1b42a592a62a43b57f82cc21a428873a92fda83abe420efb5233140e4d6c7852cf81e85961fa5c606c5f33e06077f414b0f814cbbe50cc606bffbd474364e608825fdaaf5e74d862795539be8697e2ce05d71446881e3f65bb54ed95e941586988f6e0c34e1beef426696e9dbd9a214013d826a8c99a2a686d8402c583f"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_13(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "62a26c1327c0ebf8b40691fb4c8f812e81f5474b0c7db70aa9424110fee3a05e"),
		nonce:           decodeHexString(c, "41c0cf2e87210e34d0c6bffc269bf2ba"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6e20a00df1af37e6cc55e580ba21335111eb375395343618df7d630b9dc234496e3964cd45c5de34bda46a28964f6148704c30925feeaecae0574038434cd33c1dd943207a8dbdcd72dc9ecb76a25728b3c2a8ac13c1de3a126d7d43a46e12e0d0ca8991469e582b78ef6aa691b5a0e3e85cba7d7aea3c1e8e031674e85f5af36546eb2a0a28d4ffbaa316a9a6c944fce291cc0c235e8499882eb62b22b548ae07cf9430329e009f4443cb94f7a14e8661166b0d681dcec867205abed48145e9"),
	})
}

func (s *drbgSuite) TestHMAC48_SHA384_14(c *C) {
	s.testHMAC48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "fd54cf77ed35022a3fd0dec88e58a207c8c069250066481388f12841d38ad985"),
		nonce:           decodeHexString(c, "91f9c02a1d205cdbcdf4d93054fde5f5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f6d5bf594f44a1c7c9954ae498fe993f67f4e67ef4e349509719b7fd597311f2c123889203d90f147a242cfa863c691dc74cfe7027de25860c67d8ecd06bcd22dfec34f6b6c838e5aab34d89624378fb5598b9f30add2e10bdc439dcb1535878cec90a7cf7251675ccfb9ee37932b1a07cd9b523c07eff45a5e14d888be830c5ab06dcd5032278bf9627ff20dbec322e84038bac3b46229425e954283c4e061383ffe9b0558c59b1ece2a167a4ee27dd59afeeb16b38fbdb3c415f34b1c83a75"),
	})
}

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

func (s *drbgSuite) TestHMAC50_SHA384_0(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "2cd968bacda2bc314d2fb41fe43354fb761134eb19eec60431e2f36755b85126"),
		nonce:           decodeHexString(c, "e3dedf2af9382a1e652143e952212d39"),
		personalization: decodeHexString(c, "59fa8235108821accbd3c14eaf76856d6a07f43383db4cc6038040b18810d53c"),
		expected:        decodeHexString(c, "06051ce6b2f1c34378e08caf8fe836201ff7ec2db8fc5a2519add2524d90470194b247af3a34a673298e57070b256f59fd098632768e2d55137d6c17b1a53fe45d6ed0e31d49e64820db145014e2f038b69b7220e042a8efc98985706ab9635451230a128aee801d4e3718ff59511c3f3ff1b20f109774a8ddc1fadf41afcc13d40096d997948857a894d0ef8b3235c3213ba85c50c2f3d61b0d104eccfcf36c35fe5e49e7602cb1533de12f0bec613a0ed9633821957e5b7cb32f60b7c02fa4"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_1(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "023f5673dac29f62245510d0a866629c43c64bf35a0bad30f1270050876cfb1c"),
		nonce:           decodeHexString(c, "e80b615a5a47ecb51217a46079e11fd3"),
		personalization: decodeHexString(c, "a6f797b155d6da01f5d155cb7291442e1b82d4190e93e279fe5b4aaa7d04ecc0"),
		expected:        decodeHexString(c, "507b824443af5db28f746229e03ab00c73cc3ee4956aa14b33eda00dd2b9b645c132dab7dcdbc659c8ba0e1a3575fe7dbc7cf9691f9b714acb1b33bef96943003c992f661e04fe9e8b9f648f4af9a58a45b08b8fa7fa3704e6bdc289abbe14a8c7e1747a52ac916c31ed079de0b900672e658a201279824d0d75ae35dbdd43aeab915653765d83e46f347fcb4fe3321fc28abd2d0d26a662661582ce21b6dc4ea6d1b236e9692a83c8ba0fb299157b80623ad4f448d25d57f537b10e5e30f80b"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_2(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "96b5bc16ce0d101b90d54da6c4b3d85a70ee19d54cf4cde3d048afb5f758a6b5"),
		nonce:           decodeHexString(c, "2ea2c10c16feb71cedfab9bfa9e462f8"),
		personalization: decodeHexString(c, "2ff415e2432d2e6c4279910a5e56c0f5354a5af0099132d891943b4a8901ca6c"),
		expected:        decodeHexString(c, "ecebe717afe6dc08dbff3ed626bb06de0f9784283b70e378dec19d4fbb50e61b7be48ceb69851b2bb94641aec5027d53d314a96500a9bbb38a87c9aa42ebeb96a23cf29a0fbd5e48b399daa1b24dbdc85223f24b7d77332bb1a137ec709d27c008c709696cbe44bb2fc19fb10a2fad4ffd8a9d89492a939f2268d1557f44b6a64e2a57887830fd8bca1b6306aaedbd7f3f476b827995a1ed121388497edc7e639c87d092f6591a45b5647c6c091c15ed39f594b7fc4ae92331f96dd8e17be970"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_3(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "364a833a283a3e0b8a5b681daa50df96d806d4b54828f2b016de5d88597e6287"),
		nonce:           decodeHexString(c, "d98cba8fda464d21aa1cfb7b26b9b226"),
		personalization: decodeHexString(c, "35b0e7534014dc2d7eb0f20ff78a69d5548d0a64122d4936a6ed177fb3ec66a6"),
		expected:        decodeHexString(c, "df4c799cae37173a81c545d019ffa336ef2c039a5865af425e5b60bc3d7202f4bc1aac5a84022bf4088061abd5c39d0fb047ba80163eb5dc8b9dd515948f16915832c6f76b45acc25b9c01e7f70955c0eb51bf50f00b24bb8e7ff53bd7c051b53d8b1a837a17a00355d7eb21e43b2b5b249dadced37d06e7047c2fd12012705a59d051afd26245ce3a59acb4b996b718c7dc1ae964bf12b1db02fd6c06ac2fec6ee5deb02c2c830110e9bbbd3c778a136b646ce2a0738563555a89409c56b81e"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_4(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "bb4d38c775acdeed663256abb747ec25182bc16efd0de02cb4b05e4ad4749c92"),
		nonce:           decodeHexString(c, "be6f1e856e423a8f3bfb0c0f27ad8210"),
		personalization: decodeHexString(c, "21591e796b7e68e7913fefbef4872af9c062f21c8023c0dbf47e040c3aed3733"),
		expected:        decodeHexString(c, "12575776e1b9f54b0fbc39e85a77b6912160bace4f1e9f049e3a1c5bcb452cf9be42ea10c028c3cc249401ac236dd3baa53ff327735435f4869d3289bc9465ccf15f826e4e4fff099986bdde0d09bd12e3caddcf452eed6ca1206ae4561b84770a9cc6e962567304ef79d8d3608529a3b5e4067fa83c8c35a06f1855da5f5ea7eb106e4c60181d12ba00cfbf7eac60bda00571d95c45c9d75c43b42e27a238aa5e0f02bbd96cde59a2e572934a99d05c399ffdf15c65f173748734c51999a29e"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_5(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f9d041d24158f480600c3747cbfd868c3f7e9ac7f74b3760eae5320839e4f513"),
		nonce:           decodeHexString(c, "0f8477d88b1d914c0d8b375d089a4c83"),
		personalization: decodeHexString(c, "b148049f4093f0032c7f105dae219aa9e3f70487ce3a6b6ecd99429f66be5406"),
		expected:        decodeHexString(c, "84c58bf473061da92fa8d56aab3a75598428f18dca504191a51746eb5fcad8f784eafac5ea81d636d579e330baf7db95c8d706432e9f585e84da090c0eb40dcd819bf10e0d5b8600150d186f732af50b431c596c920eca742e6555129fdf5df96b44005083d7a33087b150d63529bee4b6e1ed4189ae2d93cee8dc671d47c0e74ba04218dfe273484a4bb59a57743ea56843d516ff2c72ef9841996d31b0d6c5beef367a6b44cc84cf4d403a06b40406e4c9f47da401e3cf31412694e6164dcb"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_6(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c18f511ffc3479a59357c17c2fb3d1e0e6f0edda4c8b567f2413323c2037f2fd"),
		nonce:           decodeHexString(c, "140fb0cf33eb59526d8c0dbd216939b5"),
		personalization: decodeHexString(c, "7387aa3b0b3d92afb29761d3d5ea16e32a68297b9ea6751e1d54c8612f6351c1"),
		expected:        decodeHexString(c, "949bf03868563c7d1498c69c327686682656374b2efdef6342e69a388229c580ca2217a9332d3ae77c2d1223f5dedf4b34ec50b79d5baa7283168ed7cbe71c6c3c9193bbe01b76e011c39d2d462017c2c74b7e698fa2140e16886a9ec0fc6c36decbae37537638ccf17777f1cfa49d2c2c7ba3aadd0a1565d61942de94aa6fa16ecafc2dafabc9082f23e75a0e2f8f79d1c0a15ce57fef7655f1a4fc6fc4d4a694bf6ca9e333959f35ad354524f614905c6a52ef8f524cdf01c5fadadf207772"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_7(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6b09295110384eb56726f61474bdc532fdace31ceadb5fc23d587356cfac7433"),
		nonce:           decodeHexString(c, "8ab6f9d89394b907edb646650865a3fc"),
		personalization: decodeHexString(c, "7cafcb4db31ab411c396015b8bbbc990607e08bd1cef3337dfa0e295ae024f9e"),
		expected:        decodeHexString(c, "e51bc5b3a6bb2a2667f5d62c2ff9902dd07b566870b4c14242627da7581449ec985739cdc2bb5ef036033fa798112ce20df06d46d61aad7121b8282fe7556bdd363cdabbf47184e55edd85ee0b7b0be17b9a7f822f4d8906465b525c16385d0899b6c27728ff2a600870aef65f58f9d3777e8987d86e59fdb69cd232e7289fc75cf2174304137f988a17b60c57af84cd8e556aaad458f511fc0b3009516435c0c60098f35fb6a4a90d90bc6071d38000703ef57cbc19d6b78a0f797f3ba044c9"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_8(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ec6d0f68240f5c47e822d9088364c6cd03ca53808162b4f06f5956da65290946"),
		nonce:           decodeHexString(c, "f4d26653d079e50604f836c1d798243d"),
		personalization: decodeHexString(c, "b40b5737cc76c5f6d1df0f13bfbac7e26f92aa933125705b6197d9bedb11f2e1"),
		expected:        decodeHexString(c, "207833cf65599e1406ddaf3452f060c872099cbf7483f1f7f14033490f7258ca5fd7f5339f914498b6e61fa426cb872c880a9fda9b8ba590cd8006b990af7ad412f60c8b2ad969c2f9cb0e9d005943d4dd2dd7af9699046ce89d6405597716d43b9ad54641c2278b04b2bcc5b8ecbcd5e2044e4e6ec5a628605fcbd67249e813bb769d7df01b60404d030e69e9672b4fdeddf82a22042b83ca036578b69f9a0ad9702bcf95fe846705b49b0a0795dfbc4f671e0158ded6242bd8f8fbc2410c46"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_9(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "df59ac224e4ba1b6dff348f17bcf9c5a94a3235a54f2799a6cae29d8654b79d1"),
		nonce:           decodeHexString(c, "8b09b444a28a7d537e1a2bc89e95abd8"),
		personalization: decodeHexString(c, "14a0a91e0cfd63ef5fcbe2e8c7a44bcf5769c9f95b6c50bbe9d3b48b82a09053"),
		expected:        decodeHexString(c, "656438e7738d441b9ac116361e9f26adc0e303da7889cf559841b3e44127318edd356051bd0b3ecea78feb2b928227921a0c183c9f56bfd11ef31b28da6c78f3891d8ae1804bc158fa56e8b7a1a46be4954de493ef65a7f9beb46949a323a04e944034db30b19cebd8b70bfc155882ddfaca1bd5acb981c2c1b3e0862c6234d13093ddbcdff15129d586fc24ea2fd20946fe45b467bbbc77a6b6973eb6ea02994607c657eec29e4c4b3915cb730db056babf1779127047b401e25f97f606063b"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_10(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8da1ad6810c1d6b7ead210e48f51c370d4520547a330a4d591e61a9847aa0434"),
		nonce:           decodeHexString(c, "63f69d1b237999fda9b5697f1e7aaa07"),
		personalization: decodeHexString(c, "291c536dac72409e31e71cafb1b5f55c14421b2c7a44d792cfdc663dc8f62692"),
		expected:        decodeHexString(c, "c2bff571554c26bbd4442fbb3b0f8eb4db09840337658a7425613e0fd4f96e60da39b250c3a77379a53325a56ec02248c4d67fb9154e3b0eb8972a3109aed531eccc027705b267d2b9c037da79860d76e5e980b5b30b7ea588fa221d24d973f6d4c625de65123e91613a1528cdee59993aa827f319a759412f20aad6c50fa79a3debeb346ad92809470daf228cf344e09f03c839a28d580a2b3d7050685ef51e95649aba7228a2f0c82a2dfd89cae6ce549e8b27fd46f02feb473645765018ef"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_11(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5e8d6571f514519de6c4c0a7cc5b85df616735b8dd09c3bed2377499aaabb296"),
		nonce:           decodeHexString(c, "a9b2c94642da10e8fa737cdfb3129334"),
		personalization: decodeHexString(c, "6ae29c71b76fc48f14a3d731a0f6f276f73e7672eff631dbb1d22b06463bb236"),
		expected:        decodeHexString(c, "5cadc1264314fb4bc7ed7fa74bfa16aefa624bf2fd60c992d0cba10429c56e0028ebb430b1a1c6662a9b3c7f6de244ca000ae63db9570f1aa3e7ffb1e97a9d848021d8e632fedc037712a29abec4063b9d57c60738f0af0b1aab3844b03f7aacc65d38bec91a11b7c3bf8d970f01e00fed9dbbe9e2e499a21c72a7c5a22864125133ecb073a4c9f6d9fd46024f5c1ee7fa447209afa6ccef1f97ae77ca67fca5959dde209d2597f87af6e154408579cec42c69fa9b7cc075ee3e37ee3d91ad9f"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_12(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5c9481b2642855fac8931eccd1bd6c5a05b560a55f96d37e865f057a95812d81"),
		nonce:           decodeHexString(c, "fe65c84c96a990eb7a302b58de723cb4"),
		personalization: decodeHexString(c, "b6a61b9a31207363d62c0b88f1632290f4f18feb41a6dedb85b7450ff9157016"),
		expected:        decodeHexString(c, "9cc77b68e1ac23fdd2e2a6ff697053f816bb48b39b1162f7aa3fdd2dd1867f68b13980c9e5989d4631b7983248501731326bd7bf6e967b3dee7d2d5625d3cc2e198623af9f77f86103491ebb4aefda5c333b51557b8f643e6d6c593fd7e27e4bccca13140f6129cbd024de076e4688567fd7e41dc7b2bd0bd9b3e966d5d3c461502221b52b001a4d2102894da04172efb900171a0eabab1fd134217580cfc33a0a94edc0bc132af91d048c6f5ea4e34ebc9686a99f81d19118ba4da63ae3df7a"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_13(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c43f883d0adc2b56984d4a497a8ad76813a01df5a0ba22b53144763b65c7bf3f"),
		nonce:           decodeHexString(c, "6f722e4ceac59966a6e44ed898e6109b"),
		personalization: decodeHexString(c, "769bace2c263edb87101743673724ef67a935e1ae9cace87202b6015d20fd9ca"),
		expected:        decodeHexString(c, "ce61480953190453247d091838dd80117f7f85a7e9a1237c92edf10cfa26b423735788b1e89f33625480d9faae57112ee62c8e4840475a6a738018ad3fd4a77efdd8f15ffb621c429419b6adb20431fd35f9d62fb33d500b87beac4856aa4971eb89710576b609ecfe758f3682dd316e7ee9d6560b444c2446656c8941dca7d6eaa70fdf8a70f18386ee5d4c86738bc261c0e8e5f509dabffd0425a86858ea3c71de5be98570dabd80a37b4f7f954002727c0b712e58693603c23130a45e98df"),
	})
}

func (s *drbgSuite) TestHMAC50_SHA384_14(c *C) {
	s.testHMAC50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d083f7f8c65374627ddb51582b3a39e2bf074508d5f28ecce25787f386058de8"),
		nonce:           decodeHexString(c, "afafaf2ad7e6449308e176be01edbc59"),
		personalization: decodeHexString(c, "ddb4ced192f52bdfa17aa82391f57142ac50e77f428fa191e298c23899611aad"),
		expected:        decodeHexString(c, "b978826b890ce8a264bf1ad1c486aaf5a80aa407428c0201dd047fa1b26e9ea9ff25a9149215b04c2f32b65e007e0059a8efe11481926925061c748678835c0066f596352123f0b883e0c6ab027da2486244da5e6033953af9e41eec02f15bebdb4e1215d964905e67c9e3945ec8177b8c4869efc70a165719b8e1f153c41744d44d3c56a15822d522e69bd277c0c0435fa93e5e1bc49bc9d02aee058a01a04580a6cad821e9f85cf764fc70dfae494cbfa924eab0eff7842e3541bc29156f6b"),
	})
}

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

func (s *drbgSuite) TestHMAC52_SHA384_0(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "26876e6c5336438fc1d6a42db8556b79ffb40ddf54d911204bfcf9815b6a587a"),
		nonce:           decodeHexString(c, "529c6636613073ca2834bd49ec6e9e70"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "de4fc87a1cf14ef0d8024e50ec1644e2166e16efd4b9104457ca038df0e293e09091c9a5a4cca20eec3b4f4d9dedfcec1fad477b995ad5b75c178987ca07b827a354010fea51c2197fa395dc2763d9828cf24fc8d23dd0caaa5cce877fa7b53e964ad64a7b6f4f00a23edba52999b2d636178b458e1b32174ae53b88f01f661c225a2efdd41a747d416c2b4293e06ff0fa8819fc0a81be85bc9dad4d657d220a2fcbf1747d4403b90e8b5aca1abeb5f292f3cd56d7d52d87c1b768c1efa1f159"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_1(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f7bc822d9dbd992050bbe7ce63d75f533d563c679ba79af2319e2621bdbb3a62"),
		nonce:           decodeHexString(c, "2996479aa1eb7b1ad7ad3757ad00690c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "818b7b5362bf5ecfc1a3c9cde98b6c0992c89c10e6e4db7803b855cf1684f195d3e5b688748d0784adc2c17837e7ef90fe89969900d99305b005f7d065adf32d4aa329891c47c92de7ecf212d68de1620a833aec9c25ac2e2c5cab6105899d3dbbb8d2f72188f2aa971029bfc2e35feafada371ab261eaaa0cb07ba718ddc2650927c715bb15b1a9c90e885a4601f492f42c885ab44c6c0dd55954b7776a1446d4b7156b806e4251357b8b98b965f52aa89a9d8fee3b6792e5464196fede4ef2"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_2(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "949d284af749288f9b212fa0f614be223231f23b5a808dcb4a681a6963530a59"),
		nonce:           decodeHexString(c, "fee00892bf66979b20ae63aed253b276"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4677563d7f97cf3e0f306c9b4d25637bde575b50f194ace05f4b4399d402b1ed509766acc0832e83aebad0fc0e3498cbdd5679b83fb144b2872531407604f069f52920a0882d543b552f076af6f1ea30850ea19adb70a258a72e8a06efd4662992c0f5f084ba3a51655e65b6a38ad7ffdd411889170c12c4f2caa32e41a88840d2be66e33a80143c9a0e4128d033bc83b005980891ee20b5564f7b376c3163160b5f3c467ceb57c1cc6b0b7db504c76bb6137997d8d8abf93658b3427c7c966f"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_3(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "35a2f9862d3c5d1854e45acc410b8af3531140bfd0ac396b5b9aad54d37d42f2"),
		nonce:           decodeHexString(c, "1ab6cd08babc134af3e387f67072ecd4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9f548d7d53d72bbccec2712dce82fb5c9004ff99d36817a2a026930574f8f767a653adf82f1013177c0acc6ac53e38ac1d8cc1869f5aff5876a0b11041d362579aa2754c0f77595e8ebfcd842a6c899c81522443516747b77a398f0eb134257cd57356db5eebd5aad023baaa0952c1cb1dc5221f9fb5ffec519bbb62b0f51e36097e442d8ffacc0306702480ae68dc79332941c72492ef1198438a291ff02e4edcab40423b14377b04c3253c3da40af9f1047efb7a6ab314f04014ebd787733d"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_4(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d263f0f194705e76f7999eae32bd273adb72cec1d6bdc5bb4f36ab71d29a0fdb"),
		nonce:           decodeHexString(c, "c0883f1977acbca45ebbf125c3dfbe98"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1a5b7ecebf9ffb969ce8b2d564fab9f713d9efac26e5b78e6b0e95f8270f754ade0afbcaf0352c7dadf68a42086a04aa346db4f082b06f945821deeb252f51961d161262456702c8fede5b122ce3073a64aabc617461f231b72332fc2c9fd459c99ce60064ef3f8b43b318ac9933810bc0481065c624da47af64839f1ee34b46af2cd2d6d2ffbbbad78d0076532d0e6ccf4c7c05d516bca844106831d084b4b3ffc78429c571a55657c954a81d6fa7b4ff3a8cda6d346915344bb35ad6a04f31"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_5(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "63deb4d3aaa7f72938a1e8736d2b8973aab624c8a22c313a8391318ed321c866"),
		nonce:           decodeHexString(c, "2b4bb4ad4a1732ed5ed6f8b3e7c86a4d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "681571bb60bb0f420cd55335aa989a17bcdb124e25280ea74179f7179da5fb8789276ec5aacfcd1369d31ddc2bd42f3c30d9555d529ee967ca01a27ce5f16967f3fec2575803c0b5dde71e9bc9bc4c4ec68d8c4c2caad24bb00144f76b41f0563bceed75f07a7a089f6e6d01214a9ee435c6d4b12087edf0773d33e84ce82fb3b376f7bd0c537d28b659040f92e8ed126734ed9f9767e9ad08305ea1045e243f9336f8f5876aa832e10ddaa65901883afd139c4d60291e0fc25d01aec8d10173"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_6(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "bf942c2dc6ea6c13114cdf0deb79647965122d158dda77643d7001bd1bd29906"),
		nonce:           decodeHexString(c, "6130041df0c0b3456836b7cdacf21489"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "627f48a3386b67b9b26281d25f9a63f1e31ab02b4f54f777e4efb010d5adf57a31a74e933d38039477d74a80a695200d0b59fea4277f291f4f4223ecc5cedc023136658badde9608035951884956e471bae6b93799af10273460f1cbfc4289ba6ea5245e1e9d13624bddbf24a6f3669f81eb8f8490c0eda9a7698b66f743a8f1f2e1f29b8f99be0c260a59f5f2210b57b44ba3cab90d5b983fd3608db5b5b75e935fc246523aaabf9b90d9689bf744144aa4c900b5bcd6735d7808e12959d40e"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_7(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ec994004c471addd48523971bc232c4eec91548f1a149ca3119a9c9c444d4542"),
		nonce:           decodeHexString(c, "5cb34f0f0f24caaf965ecf734c120e5a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "89563d7c337798fa0bd9cab2c782658233a8cdf9ff42f1824e4d0858e8e6a02ce3c0fbc4f96519211563b934bee1a23d8848055327218646d1599775b1b03777382745e6876a35116f2dbefc5a96f0efc584887e49966b8e0dedd726cd11ace6c5a57e9fe6330d94a50ad020a4254ee5822216c4ddd122c085f0bb17c4ef680c83ee832ac9788eebbec6eed83f55e6fda1a1860db780366fb007369a0e08f594e19d104f7599c615512c5ea7fb2e736c39c959e6519288987d6e1fb17674db8b"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_8(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6fe36237f785b1f1f423486cde5ed636f8a3f63764b3374ac78e07100ecc8f08"),
		nonce:           decodeHexString(c, "17dae741f00878fc5749c1b91467e196"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9818398c6c6ecf6cf2689bf8ace75227d906139bb6445f3a290ea1280e796b2a2809eb5b73311029bbb3542902ebaffb2e778b0106683326d0f63da777d4d64533a5a3e1db014e491e8408d9c0826ba560dfc89626c9de8da1b8de7f38525e9b947f600f6ada514758c9d2f9a2c30af2fe133c29b4673087129384b5354373dd79dde1e09d9866b7db13d3b6f8936ffbb59d9e7036281d5c67a819527d85584f31e341210772d1d92d9bbd6da162512183fd9fbee285f8ab1aa3c37424635384"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_9(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b3dc10a08bf993887e6f832c863002179269053a902ddb2f8be64de85a75e2ff"),
		nonce:           decodeHexString(c, "6a73b04b74634e5402f3675e92c51fec"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f76d670ae68e656bf15f418fb608734d5a729e8ccab91f3e1e026b741cd4db1a146c95dd6fb40a5913cc094af37d42f9420e747ff9fb9993b554f4b4c576134e29ba167178d00051c50ec8db6ddab31849faa888d51e3172f7dfbdf5511d71a9e421c63fd328e06bf24c4488b89a8c12860b4f50dbaf4252932f4fe1d7714c79160822e6b09326e8ab0f6cebfd37b7b53aa63c74eb23f9b76b6f88445ccb2776b64517f0c4460a3b989c280c04a833e14c45b4970c692e0c11a6b9f7980d87a3"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_10(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "081804a3b207c53e2dd569fb43e8f3a1d6c8e4c7d6dd929f640f9ca404b7a392"),
		nonce:           decodeHexString(c, "a95a8412e7f34bed1ee81f6d4a118774"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d5e4de0d78fe49c8e3524fe3e3e8f040689f40278027b677c750fbc8ca04a85d9da9ef0104e5f77a923e2bb16ebddc2e75d0ff1d5dfa7ede9d8b346e427f3b80ae3034b696563f6e2a6222567e7935cafc82b754a920a84d66855f17f07da945e9aae60c58fc8506677729874900cf90aa0887b1aa25e83855040b529c1846739e6de886c2f72542bd159812402bb5d89b0ccb2505abb97802e748a25a879a28d3c4275fe2c2e63ad88e6907f405066e60362bd5f06a45fe42549594d4e68830"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_11(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f5d86fd2539713d7e3f781b2d923ea5970ee621fffcf0cba495fff1e5ba901bd"),
		nonce:           decodeHexString(c, "7d3e11364599ed19cf455b8a450355d6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0f79515263336ec096d018ada253f63cfd5c69a4f65c3893087598ec0a2e8a569243fcb4767d9dd94a1e6cd8fab2cdc4cd7d6dc8015b14e739341a7715d8e2c699bf9b2310cb83bc16db43cdbb2ba02aeb1acd34ed0b35e29cc109d70b62d5f2ee171bd1167600c88d2a2f08379a2107778508d9ae0ca6fd5414c3bbfd02458445790354ed9429fc4307678f448bca3edd50bafc64dc48441286f14669a5c6691c889ac4f7b89fb146aa30e6747c8838d48be30fc483d74345a3de5e7100a57f"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_12(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "4e39ed4180d9f4cb5fa769f483b3b9febe6e17d98ad1b76e0ebb3289106070e2"),
		nonce:           decodeHexString(c, "26998b626c94ba599a3fe052252de22a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e4586c88e74825a0906523ef8f390829620bdf3a06f14b93d6383e55d39353995f8cf5d3251cff72caad6d109eb4b0f4dc853a80ba9bc49a68586b07e9d4dd18f31d9a2c8920dd8b905ff58df378a2eb5070c417abd65169a250b35a82344978793bf072217a652b7ef419d55447ddc349f75b5f252c36378d2f4b35de0ee0cc3aa6000ca7e6fac5bbe36af85523b705a91d2efda5d114abf51e6e63bae08280ab019c6cc6a66d91c4d3c9555fb92b79709cc2f55d1cf86322c5089490bed82c"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_13(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "40dfe11932d986451b0ed314510977e47c22df026dbc3187e4c421b4c8b905a9"),
		nonce:           decodeHexString(c, "9ef4615b4e45760341286b6f3c210c72"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d2c4243b4165bd5e9a5c9057c1ce4c65f149f45719e07f2df87980083868eb48068573ef853a4ea84a3d18ac6fffa201d0fb7d20ad2934a80b4ef9dbe472ddbd7893cfe1fd9e947ec05e370772f865c86161ca0ba57e2fa85b6350a4e6dcad350f44cce5f3f8e0a9b53da9f9db98b2317220bce777968a05e5a31a35b6b57335090ff4d002ff384f4eb5ac9203ef0a67e3bd8004fe90817e3f2bc671b7444b768c79fed4c5cd6d0f7566681200756a0cad121d0c32341aff8787a8c621aef4d7"),
	})
}

func (s *drbgSuite) TestHMAC52_SHA384_14(c *C) {
	s.testHMAC52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5f28c73baaabbc09e8260df3b3577c21f2f02be057bf49d2e73098ed5ff67f89"),
		nonce:           decodeHexString(c, "8c2f85b546903d8d4c10fe4549c3f673"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1563c678f1b072813888970996af33c2a6b70b8dfd2e146c46df0616509382062fc9c72d223ebd555f4d8892aafd7b3b61619559fe3d3e7b5e83c07f422eeac912ca7d8858a2d25b966a8b34348b8ebcf44a4651edb9cf5a886e383b01423322ab3002edc8c936aef869d7638f38ca6688c308d2a17fea0ded21901d8e9f1ff8508762cb1dc7e700970938a0ece74c1c2d1801230ea785165d62a7ab0d6d59caf36b30be8e2e1f691210373b7a2866e32ba4b49b6a2f9cc9b80aa1340ef5c76f"),
	})
}

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

func (s *drbgSuite) TestHMAC54_SHA384_0(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3d8c838b13b1a2ae1624200fb734273e99d7cfd1f5664ddc0219f843bb989ecd"),
		nonce:           decodeHexString(c, "86a712402f94e31a77c4ef90f62a63c1"),
		personalization: decodeHexString(c, "ecf3b9deede92f0db083c357480e5aa35052f04e978a1244a7510db146d7fbc1"),
		expected:        decodeHexString(c, "560c30e54c104655e740855b42ef4c1f1b4a4258b9b8848d872b983e95feaef1bf5b90d0ac269e68127296ca822f5df9db241326ebd6a7ba08c356884162551e396f2507107f1877a253d3ab772a9793e0cb568e7f0a8a66852f5085840c9df500be130dfbfeb4a5fc8b67b36511a865d4d5446a7e1dbb8e6370eefe8b3a7b19120198a423c3780608bdef537191b05cea2322eeb16b5e58e047cb647a2aec836f050f241f3135cde6d0ff9ad413c3420f13be4d410fb16f513af41e3dc7219f"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_1(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ce4ad450a33d1ed41710164acd23563a6a0bcd8aef890ddb5828537f15069e59"),
		nonce:           decodeHexString(c, "cd09493ff51e749b4fe30f59fb4ad542"),
		personalization: decodeHexString(c, "0515e1a57e69ca196748176ddc4e3d2d36aa1976755fbc06d8874dd9debb36f7"),
		expected:        decodeHexString(c, "41e75940f9b806fd1cccba476b0f6b9ed6197d38d5e8e1f37a9b9d2f595973381ac51764ce540dbc33223a69b8f8dec7af0ec55f073cfd938264576d92c16b1467af6ce9ca7bbfc08a017e5706beb658b921335f03d5b270decb19f51e73f4554487cca15dd4141f23c2642266798a71d6b07bc40a6bda8f1d3783f50ef5aa0b6d4ead3622c841fa01ec626982722890deca6ab049c3b2e275521af1ab59afb5c9d660fbfc03ade21f4a89403deb6de6f0e433ce2c1fc03f2d8bcef9d60127aa"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_2(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a245a692d7a3e240eee4f4ac059f213f7bb649d58ccfed3182968c62d39369e2"),
		nonce:           decodeHexString(c, "058ad8521a26ed89b55e47c737f1a4c7"),
		personalization: decodeHexString(c, "6811a882b926875a484853cdef9738c212ce0661fa63012968a14239ff411d89"),
		expected:        decodeHexString(c, "b3d0c6015d7c7341d324ac1a17be3ae63e9132f17c9a48db50a75a36f7562061079c716b0ba0f5ee6f82c404ebd0b6d9de0c1697ae261d7e0d4f9f43ed32665fd4e182dd813548682aafbddb92036dadac28667e474935ea5e221fa16716018c90ae60dda369b20676ff7f5bf0f130525c2b0dd8e467bd0dd4f62b0f69bd988284d539f1861d767874bb3ee2ea6211090de81f1687ada0152500474566d9abfac236535e4d6d6b2c39ebc79782c7134f56527744df5b32a44bda3432987914f2"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_3(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9eafd49658cfd5a9873ab83282076677c8bd7ea1b3c9ca92181978824ae486d8"),
		nonce:           decodeHexString(c, "cede47939738975ac2853ac07eb8a18e"),
		personalization: decodeHexString(c, "8272c97255b3dbbe53ecca41250013454b329e537b78c4af82562bcb00bc7e86"),
		expected:        decodeHexString(c, "6a51b8fa6fb18fc3957c8f7f9828a216fde6f1a91b05d8030882dec9f4b37dbd5ec0f4cf9ba2ab27c9df0a65ab1e795ef830d13a1c89ea958d5dfcba302e34d72ec8435abadd874b9772ef3e53d297f63ae3f902b3df66b0aacd540207aeb772cf6a962ccc7280f90372efc036b20b829c6a6acbbc71bd078f6b2bffb37095333f551a7f6f68649c8334d7f673bd223fa00e2af7549a9289db8746ebcbaffd8bfb59b58b9455cf049a6e02a4b476ad5e6e7b8c891c6a8adc1a5a279d0f4ff5a8"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_4(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "58a28e11822bbe1a41e32a8be1d27e8de9668381c6969b4dcea864d70d7bc367"),
		nonce:           decodeHexString(c, "794a3f1067e30c754dc96102a436b9cc"),
		personalization: decodeHexString(c, "3347257112059266fb1a4359e8350479aec27b4116eb18699fd5495e4a3a166d"),
		expected:        decodeHexString(c, "1f4a0091c2648cdf9d4be467edff582169a0b6b73da859015cebac9bd2200fdcc9b109b6b703b35c238ad1551ad4fb45bdc0b5dd4c4814158c1c7641b94e51539dbeb8261a818afa68fa5abdc50eb9e173472709e9686495d2072065963665df41b94a7a94ed0fbb5f9a6cb851a530e87b451ae39c59f437ed16ba324221935317f256055dd63b1631a1ca6d4e6e8915dd79b0250d83a3cfb117eb299cbe3c41f6708e27d62c8959df445453a1c8282f87cd9078104d9e2aa83d3c34b00eedc4"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_5(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1c644ffa4e1561af95be8b59a4aff572bc345cf942f6e8c1ead6d2b35a39fe5f"),
		nonce:           decodeHexString(c, "fef59f8881294588c486e6be0cd177f3"),
		personalization: decodeHexString(c, "dd31fee7a712a0d422e9760dfee0b08e09bdc1a2b335620a7aa1bd520bc0ff57"),
		expected:        decodeHexString(c, "4ec5f212b020ffc80182ec4c8766bb7ebe4b152c225303cb1e17ff6f3319af5bd6d78dd5c4b6a7bc3f457fc1bf73ace8a5d83d046d6964b9cd47102ca4139156595bac84043adb5b017db046504d7036f2c5430cd9a4496f60d041e1f11a08bb716dc53e861a18ac8547e5f1a93849d70d5c0098215b1b231a52f1ddd8cb1eefe6f746603caf5e9eedd35bc0c1139949039f725861a768c02708c4180c5c83d4488cb37fcfbafbda3c2764c3a9fd97280a9f2dbb285340c9001378b43df93d37"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_6(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "861ceb71a8bf4f9c972bcd4a0303c31c3839957d14f97fdfeb44ee3e8a6943ff"),
		nonce:           decodeHexString(c, "ef359fa8a16d7ac5eaf8b705f8802166"),
		personalization: decodeHexString(c, "7759db318373f0b45ca5b569479be3dbbd44313bdcd1cf674dbdce501b5c5289"),
		expected:        decodeHexString(c, "96b7fcdc5767af289128acaffcc46a7f0b40a2c661300563880065ec38009898d44ebfbe3dab1ded3768b5a13225b1a24f541ee5d8effae22be4df2d1c78b09fc087ce29808fb0cf3ff6638d03075e62100ce032d8e171bc742e9e67a60f4afb5e77c70376c52988cd5979ac3840bc432d63fbe8f783669c23007102bdc733b2fd39f3e26af0f9da035ffdb84d2d802a544457b7e762b490c1f2ee13b313f7861c6d666ea82425252ece54e9f82b06172fd1df73c78a37970a6ca9c5f34cef5a"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_7(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8e6cfeb8efe01efa18f46c9cd2441f23869999ffd385470928e15f3aa00d4871"),
		nonce:           decodeHexString(c, "b3a364dec4842609ce8b32ce50d66a61"),
		personalization: decodeHexString(c, "681a398b9a1b2ca78566f60bb39324cbfa82dd9194059c32f9ed3bed1e710513"),
		expected:        decodeHexString(c, "a6dd28b76f702ba30eeb580e753333ec6b5dc15295d7ebfd488274a07e73cb3a3c99fce2d51e84797466dcb9c8804ded9f7d1cbb912c18c2ca84ea18e2d527e6081c30460c2a6780ba09fd9721ab28a337960c9c8b923908617c8ee36baaa8cad6cde150fa31d201b164288378a221e95aa798155943d567f9e57eb0eef77c35d382c2d0453d46e9d5b8c537db0acb7fe1b0c890f9ed3248a171b8f96cf65e79e735f0abf6f63011506f0b596f89ff2de1d3a016a9aa92cbe2469304da4b4913"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_8(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "299acf476d2155f4374624a8ba35ef3103fa6e56cc3e2ed445cd90913a70da46"),
		nonce:           decodeHexString(c, "5310710dded27361c092b77cbd923a4d"),
		personalization: decodeHexString(c, "5bacb4ccfe5a822ca5e371eec873ee668427bbba80f30779c1b86b3e62a7e7df"),
		expected:        decodeHexString(c, "661f5ecfaa8b55b344d7325c97d007a3b12b8a1b6d26c6ade00c1f9addd9220b6b978523bab0882c787a6cd8318d8d3a0f98a006092317f9d82a52da07eab0e1d3070c464df8d10a0d9827fb7e776e4cb2c8851a539fa44cfeb7d9c489e55107356a49c309fcbcfed9c10d084330f55d199fa9d9f9dd0d70dd4bdc0a9325351528174dbebb304c85e35a6214a261448d9000de9ee19c81e3e73715201b3880c89193bafef03cb4d7610ced9021dfdee8450e410eeb3105db27b98a8b77bcd4c9"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_9(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c7212588ee610d8a6966eeca406989c3c46ab0bac021baa07db4d2263f00fd26"),
		nonce:           decodeHexString(c, "1990f704b819461b247c77ce9b16201e"),
		personalization: decodeHexString(c, "d06e1f51e9b5e6e657c44ac158039ac0629644000a460807ed5a6bb95c5cb8e5"),
		expected:        decodeHexString(c, "a8a625d9573e997a6bbd5cf720e23debb78943f8273460b9582e79b4243184101df5e3054c217fa3c105b0548a37f256668fcca3b4332c147891fcc9ea1f29119de2e4d1c2949c85f0fadd2bd3e8456455bf8b51d60e0d7f6464334475fc881645c10b8cfaed9f5c811e2b1d9cd2a49ae2555cbcd419b44508b569ea43f549ce9da27ade3947d3b6973653356281237311f0ce16e68935fd046c48275a7ba17de6409f6bb26678cb58fc12d8d71d47ddb6e03153eba2c063d46135ee762b27b9"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_10(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ca0e42da77a3a29b3cd9952f931ad932700df526e895389d5b25fb1147d03b05"),
		nonce:           decodeHexString(c, "8c9e53664bdd9b75330718e6379f3758"),
		personalization: decodeHexString(c, "0c25284a3f6306402bbc96f67449e0075a1437469ddf922db84df16f9be3e976"),
		expected:        decodeHexString(c, "1607d57308a3c98ad91001667cbb5db626fb77eaa2dcdae8e1657e46d920d708f01d733814ca952685b18d972e62c8fc799e7a2e2e0262405505fbf5436287e125a6b19d4f7180cf5c3f96f211cbfab4627a1c7d8ff9f7534f79b22f3d3adcf4fac015974b4f982d81ead08f9d7d31d474294e8fe519d00d70c983d775ba4709fd283750c86458944435d2b8a5eaeb090995851c321939c3d8dacb69cbe374a0657817638dae1a1e950e7fd9f085cd1198900ef05607adb3f0f515417220ebe9"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_11(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c2d015ded06a0d382af18aadaaa67a91b56779e13786f530afa2a694913b5180"),
		nonce:           decodeHexString(c, "0e74ecdf06f0779e6868c7d0004ee3c4"),
		personalization: decodeHexString(c, "c39d1fba53cc1e066676bbabcd1cfb941d2d9562991ae9fedad3aae98da0e61c"),
		expected:        decodeHexString(c, "969e37a4609a25ff5f1cbdb98d526b47ddd966ebe5cbe94c50fcb7250db8649ebce6a9c61e9891a8935968eeefa92c7b11ee3565f672f3df8ca1c6c17fa9a0f13200775be4ce7cf76f40bb60ce2b2690901eae1ae4ab9b3c2a36039a5cd05ca8a942e44bc8c99b170f7f5cf442240dd4d59b7fd85ea6e4fbccac9cfca8a804bfcba19c9b289157550948885014bcaeb289e023b8dedae477d3a02f2d95f07a54933c0cae71c516a74c783bcc268d2bba56fc58de91ba8c834de2a075a77ef0c7"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_12(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3d968a89b6944455c45a0edbe57e5c26a1b7cd4c1c0703b5b0fd49ca9b767255"),
		nonce:           decodeHexString(c, "b402078ae154a901061d1a0ea45af2c8"),
		personalization: decodeHexString(c, "eba3ff1115cbef18d89fa59a112c2e31870207201a2719edf63ad55295c10373"),
		expected:        decodeHexString(c, "da7f439008741250e7525f61e1e980d662fdf3c396062de34d77d08b4b8fc5beccf0584875255647e0ad95a215c1293309068a2efd9bb13245e5baa1ac5cdb2b143a94e8853972fc9de5567794d8940b01d06407700b5dd1f498a05093029c56fa62e825597d7a25d1d6fba75a3d6254d2e759a2493468b7c402cf42e0e94b5ea8ab58e30e5d1594ab00145c65ec6c0ec2b535b81e2250cfb97f51a89f8d61faf0008151204a3e7521c21fe82901f5aab457d0f1f5456dd6e0cdd4bd96968b1b"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_13(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "912ee739f45caadd545abfdcca38f8b328ed1b08e28935ffad84ebb2450c4646"),
		nonce:           decodeHexString(c, "cdbff46667365d6e74e5b32004114ec6"),
		personalization: decodeHexString(c, "0c64323183aee41ece9cfb9aa5fef5767fe42242658173b339c5b8bca1b94a0d"),
		expected:        decodeHexString(c, "ee116564835e608ffd776fb64056ab138e5f59f36b801c3d4ca900fde853c317641d60bb693ebda975fac51f652ef4d4f2c20c059cc5466e5279a235f7018243f86fa1e6b649661c84c9e58a876d31be278a50ee9c2de361cabaa1c3a7e085e023ff3623a7a689c8bceec13324a161669d258abf728e2c557753d26697327dd827af827543e50419909a5a95e214219d1115ee4d85bea60e89c7e3c15ef2e45c417020a0a28d5b1da139edfdc238bdf473fb16d1bb03d609f8de4a93c6b96f9e"),
	})
}

func (s *drbgSuite) TestHMAC54_SHA384_14(c *C) {
	s.testHMAC54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3a4e2cca3a98a1ae21ae00c5a2c8a68cbc11f5130fd9a88302fe9df9c4612c0c"),
		nonce:           decodeHexString(c, "d28f752f6e466e3fd9595fd380fa14b6"),
		personalization: decodeHexString(c, "232727310fdaac541b182497e5240dc2623a36b4efa7a912ab3ffaf9939c2336"),
		expected:        decodeHexString(c, "3bc26201261930bf3dc164d25287e41efb47c07c8c5c0adf3e86613435df202116331cfccd4e07c9ef008c62d4199d937221a17dc97be2043270ecc605d3d48c609cbce3aecba3557dddb304f440250b2c9fd78838483e2d5a2b22015b97869b891f9e42afe21df5fbb8dfc9061468c70c63a14b6dcad9ccdeced41d021dc0ff47821415e8793d34377258d9d6629b9e396b9d6b8bb7fc22e03ecfd4890d16912001cb7ed002e33a595052ddf7b991c5607ab93c220b2122783d51a8372a223d"),
	})
}

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

func (s *drbgSuite) TestHMAC56_SHA384_0(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1c18486f4e6dfbbb1c0957e0847fae335543ed5372e246d9b570e636eac32483"),
		nonce:           decodeHexString(c, "03b567b8344c6bf6e0eefd978f8871c1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "12a3f6b00d380b795f375dc6c7b4732c1bc0e6e4936e58f4a8542c6b3fd37f3071d3741b53c3019022dddbd662deba2c6eee15c1424dc17890c872db84f44f3434574e5ce78fd5bf4eff394e3ea46a51eb10b0f70884071a740f554145032a98550491b5f947dcd28f0117a477465c1f0d678ff1ea9a1e183690937400659a6d01b6ab1feabf8e50ba88572ec16f15504272650c344ef9c55b8ef35f5212ac27c8af7fbe0cf2b54ebc277282867945d1a6b3f15e50c63dd70c724de6bc36b359"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_1(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "700f47567c8fb2d678e2f6278ee7523718ed22009fc63f45c815b5be4adb99a7"),
		nonce:           decodeHexString(c, "44f50596081eca8f134f4e6b0b9e1216"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e0bb2784066bf4a178149510b11a95f6e9c1e53a4e84220c81d7ed36c4e83475b145f9c4eda65c40d811200ad47bf9ae6c28388565df70761fe3d738335a1ca1839a130abdc31ca771cf76b79a17083f4eab6d36b66a54162caa810172e7d67a28d838de92eaf44f6dc41bc02b6d57b00ca9319c98397faa8912e229de7cba69011a73bfe7610e367d5fe9eb11608988c9b002f23e143b9f99e83d86aab7c3a0dacf6fa02dfa0dc397f2dd2bf7f656015b1ed10005922b36643b3d4ea2ed608e"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_2(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ea21baee5676e92d793a916b49156e0e24f4c06b1c20e754d15bd2b98b3afa13"),
		nonce:           decodeHexString(c, "984b4c6c4cced8495caf74c5866aa10e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "40e3bb79f2f3f76a29cd019cd1cd3d1d44a2cbe4da25a7c06dfa3f8905e272c0ef80b0cf2430cd7c7f0b182d447449701b80f840ba09c9ce4575588575948b1be930d8e44b0979136f09424ddb4858a01c0b8845c1a26b8f7c1a1cff4e2cb0eb6eb22f6fcac07f641535481dfab9080cb9306dd80f0e1f63909e8cf23b5bdc70e93ed1be4bb5673cf71b0d830ffe4702c86c523bf51ef9a6881f9af8f606e320fc36dc73c163b6fbb52d0b094f94b38cb48578a793915828d47f2780653eaec8"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_3(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "fe8b2f044f52fc0f068fe93aa6f4024b6820c29020f7ea7b1ce96e3c814b6a9c"),
		nonce:           decodeHexString(c, "ca88bdebede91d024c45058a6f921445"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0350b4be4eb2309e4cef8f2890b76f6a6c5e96ec53494612d0a079a52e795453761653a73cb149b08686ecf20326d185f8478ca5b5d73eb3ec495267ad7c35a78fd424b1ded656e69db2175d03edc601185876b9451c48c39417c2dfc19aaa7dff60c6a74db52ebb5960879400400451ef7d9b3406d822ed340f576f89e4c72b484161031947f284cb0c87730adea276eaa877cf0c4df3d198c20953c5c2ee9befdc51ee9817949beb339d37ab21e73ac61b4b276592ae08fad37b43c67fd785"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_4(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8818518f921df409f6f0fa1404b988b4d883ab5837cc6b8686b8b48783b15f7c"),
		nonce:           decodeHexString(c, "6602439de339c11b7dc013ffbeccec11"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "98744227792c825a927a713a72caa1d94b26c6f3a52fbb9486fc39325ca021215815def57d17097b4fcd834b31ddd2cd88b38e81fef5f5ce2d57efd23043160467ed2e36a3504b1b316f6254665b5af9765e3d05ed01c2accdf573dd6bb97d193c99269da8ba7e338b0cc22a26b4725feea2411f77a13e12eb405aab939aef7681874cc02f3f024344ee6c340a6ce7357f54a76eab994de912ea25348d63104569f36ce63f1d9611824d08b7dc1191c23df88d6ab61ddf3e74fceacd13771820"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_5(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "327a439db3e8fac78c5c4dba3da6bb267d4876ab84f07b00b86e66e5107a186b"),
		nonce:           decodeHexString(c, "0249ace151b41111042dd74dfecc2f10"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "86c687e5bfe842bdc1ad283c3c7c1a60b3980a0e9ce9eb9980e717b19c4fbbd561b77367234698f8e1b89b098f1d602470491642ed716d3140f08e44c0bfd953e720b532ed60281b8360dc68028d70947ff25464f3bfc19b82fb3406c7c3b15c3e59e624501c5c085f80cfeb739433b8384a333fb68ed40ef6760e5a9370fbccdffe565226b9df4f59b28f277a5e40de20b51be8d4d1f3399e1764629eaee6e5b6d162780043e3d5b4f0d73bdffb11c222616e932fd80f16c359617774304e70"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_6(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "83922a8bd65ac85978008f4afa5e73451daf787d5ca34c080e6e683f0fc9f456"),
		nonce:           decodeHexString(c, "e722cd83333f3741691953d7b566f4f3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0a2412287f1fc5f1b9126cb5dc82ee7d996301578b60b5cc390a2fd6ef77b09216ef42b60b2cf1d7dafb34d6ece8efa735674fbf9bf2e8ed611bc53ceec23550241514fcb5954270fd37a1b468779265a60346a7cb431cef6ce72f7ddf5c55e387aa7dc29d66bad2e26986edd4d959696a408a9986b1e53c84ca1a2fe3eb3a4e517e662eb12a3cde9325e2543842ee4f1c9cd65b07b2304e305b5c8e0c1dbd7d1c7a6bf962751b7aaf706592b9fefedbf3fbd888596cb8d50d0f04a8040a7bd3"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_7(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ea8989f5b43902e20288c438c2cd35bef2e4dd207bbec3d2015e70b9b5524ad1"),
		nonce:           decodeHexString(c, "2bf759438a5d451ff19422845735c736"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "44d5a315d0a0d51917335a71cc9283e36aed8d00bf944a108873d709d9dfb57efdd47d2a17f1b81530fcd871e2dd30742913c447ce95e076b64baefbbf3f9ba86399869a4fb6331ffe7d317244f6be0788dd520f0f9028b01debdef53fff9b9af2116d227c447e9dc3da1d1393741d6404c5ba7121f777bd3876b791183164acb32d8c33667b5e5bec5d987baebb28df3192859d83ed2ceffbf74ee7ab97762c90a7cd17c5c7cfc1fb22bba009e84cab3d59bc7ca9b19f467aeb12f58736bc02"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_8(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "4e38b53df75dcc50b95f36e41bd5a24dcd9aadc980c64e68386fd86294bda3a6"),
		nonce:           decodeHexString(c, "7bc745a77981fbdf7500218754d62660"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e10ea6a3b1bde7bc1a301c81e3d016e189dd7729780239742bbd93b3c982ba3db093d9e8335e7d5ec632c98ce0654d0071442099f8fbeaf9d0ed46e151eab5b9da788d0b89fbb348bdba41eb635c10cd6b73b2f5433708193d73d691b849b1475c7c74548b6a5de08d1456e2ad813b0ae57faec646d51609d6c486c15f0ff18090d94cf9a6999895c24aa09546422d7d2e8cd739b08bcd605fb709884e06359d72f01c47d258b975232ba2528abfe8f28f36204a0a14507b4accf57836e9a722"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_9(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b8f78540c699f13b00312eea671a91a37ed28905f3196b1ed4a1e494f3ec3693"),
		nonce:           decodeHexString(c, "6b85ef4eec4c39c65d8b90cdf0ff1960"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ec4bd7958166f008e197e743f5e6a831f97e402bac958ac5e40508c33a51a6463af1a76119ec82c4ba7a1689d3f7cc9544f231a4a6b034e96911a62f005deda1104619d7e96694c0ca68aa8624cc3a577f798ad8f0d20ba4842fcc8ba90ce708413e183654387e99c20172e4aec8faaa504fd53c8d8064e97187917efa51494b1a7738a135d7cffe390a31b11d78845f7871b5ff2de7f0d2c1f249a66b4fcf51db7654fe4f8393f7641d9bad2609ba6a0e7ed6212d33b92e742588db5a07cc99"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_10(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "784d53c3bc40b4338d3fdf294306e8f53170d60512aaac21a7fd67caa9369be6"),
		nonce:           decodeHexString(c, "9326d079e84cc1a48868bf8791416aa8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b9e624193d5aee01d00e3a48612c75a8a51bc1c7bd1e487ab8dcc926b7683beda0ccdebfbf67542099bf88c0257292580153fa7cd4a42d680260922655307199b4f3130a2a79b5b1eae59b01b8adaa744d3f5fb21ae2edb469d58288388f31043e80b19ed16f205426397545ac88c570e795e2e88ca797283f898252dc80dd89c31f34cb08a3de620107e3d103347d25e27d0dabfc2d3a2aefa3a2481d30bedd9e3f1c92f6526a1d47faad3a3af5b4ffba9ab4113cf893461fb5d9aff730b9f3"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_11(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "7be3e68883ac15c82bc8c38bd93b79c0af39d0cd23c2095eb026c4a6d360befa"),
		nonce:           decodeHexString(c, "44bcb78f61a5e7c32706bbaf2ad6711f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1b1c30249a3b3758237e31243323f65ea7997579eea6d839b65f35797b754a34845939879c7840eec536ae328ee5e8e3876cc0b0ef412fb74ad98d6d987bc9cce8389c2e5adf5fd1f1c8f2314f9fa1ee05d6cf3232c391cd8ff8d3a08cedf1cb52988ffe58c2e7310ffa807fe97468ba9a9ca8e32d3fa0fa0adf62419a22300a3f2db66238f564457d0135d404f239752e650059177840b33b6b77a4de422320e58d195e5cca9e41c753e7be6c8b525efc447e7546bd19e91a387ccb0aa6f665"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_12(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8c7fdf4b71829495d5de18adf6823107e0e743462e77b7cf48bdc9be0524f1d3"),
		nonce:           decodeHexString(c, "70a13ed80e2480107c2c5bced30e4d90"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a9990b3ab01338e03de3188a4abc84f2ebb65ac8cb1c57d263eebe5a56607e552947bc756bc036e4826f89daca5851ff7322db9e8135a1e2ebbfd206f67ba43e059a32f75358b7402ce12b4c377c750acc5598aa8721b6ef2413c2295c10c3a84cff68c6250ae0eed541e20f420d2c46fc5928efd526ce19fef408304723a54cad2f40e97c5ff93f41fa6dd8114499c0db409cb70acd58404a6f02e5a9004d6dc062db2895ed14285a3f972cc6f4f611348d434387e0e937e4b7beda8a3bbb20"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_13(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c32ac6afd0c780418d98420990bcdf63e80e5bcbd5c9f79f91695d031f9fee22"),
		nonce:           decodeHexString(c, "7d66b3d83ae22021f383d0b19d6eb52b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "606e2a9b9bc568afbda558856cc305acbbc1a99d0087df4dec2d1cf8cada9596c0276b19a4e48f7ad83f45fcc995e4647de927c0002e9117e44308bd20d62275a74f2bb0d9c2f1c83fdd999039f21d073cdf0a368bb963b86d0fbc478bd860dbfc10e54d121efbe2f08853e7c7628ec7d8c97289529088fcab8404ba0c657480f7c581dea23fa172b05e389182ff3bf434b230306fa451e67fcc122b32586f0f8ff3b6e3a7cc9c060f917a96a59c6fc270f654e8500f6e5ef84c8a47c296bd42"),
	})
}

func (s *drbgSuite) TestHMAC56_SHA384_14(c *C) {
	s.testHMAC56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "57050c5fe58b2a2a0eba0d3b9c08a9b285e1180d2a297e0a9ad20740c6fa9f00"),
		nonce:           decodeHexString(c, "fc309209936c569a1367d45b212a9a50"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "288668476b39814edbce5ed91951cec398ba2dc3bad76048df5fb1a2a680519c217ec4d57adc0251e1f8892a866b142e0953353bc2dd207aa2703f81814d26a60daedfe94d97de6043ed5f3bd957b7516681827f7a36d1b2a87b692c67aba050bc38b5e84f65f07d70cc34549f01aa390c5fc8dd01304fee7378e62549738e3f710ee6a4e32db3f472e1c2ef1e803e57a8ea992f389f0823c922bcea8b00ab844e071579170baae90839ffd5e00844ec343b02db090847cd323f8a68f0dce64e"),
	})
}

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

func (s *drbgSuite) TestHMAC58_SHA384_0(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ef634a2fa208c4b3d286a7a0d9c5c0cade45c18b4b80a0cc52160c3c4195a22a"),
		nonce:           decodeHexString(c, "4481bb6010534f61621be8ed36bab024"),
		personalization: decodeHexString(c, "c4771aa90866ec257ed00bb4a26ebbcd0434fb480c1a1e2965bd5b7508fadba5"),
		expected:        decodeHexString(c, "f098fe063550997cb83ee2d782fced1bcab43b601fccf4fa127cf9dcd86df6fea36dd7aee7ba7adaf2642352d17a815090ce64ce8b23ab55f7e170655d1625ea25f46b745830c8af777ad4b5f06941459ca7cd23c84dc6dd55505e4af6e518d80cc39a1abede7a2adb7d8aaf89f0f52e7d75ad975cb256d489b4cfd0f493e99785e30f01fc0463f671f0889a086e3a768b8037a538d13c708c0f9ec5957c2aa69ceb5552e13d5754e3b8f36a582a0d2d103453c3ad6e5ae6fa0c606efbbe6fe8"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_1(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "66c7826a288db41060521a95bc955811418ff87d97d142bc5411d4d8f7e3e32d"),
		nonce:           decodeHexString(c, "dfdbec93e22a3b159cdeabf30cc015d3"),
		personalization: decodeHexString(c, "3c5f09d775985c5dbd27b360e4ec15cc2433eb125d699c181ba54bac7eaeb40b"),
		expected:        decodeHexString(c, "74f9087067f3ecf19b9d83cf22ef7742c9af476e73c14c8c5fca245af503545c62d071d1d5bdd028b44c3b18d2680b1a2401357a45361f1625526ce3814191580ebbceb724d099e727b71e32ed5af196fda4fd997b6f994e63dd953ba7f8dd874c0a4815b2457e16420936d795bb350a6f9de5504a81a08e4d81034e96ff9c41112f83dcd04e964ecca37bb59b23a96bd8a2db684349339432f6405834b90889a3eeaf986a312e59fc148dd85d6256b3e9f9214f0e011f9c4bfabdc84a284ac4"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_2(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "22c6ecf7f834b3d23cd974255f5e664d9e6e00ebad971e02daade9cd3e82c8e8"),
		nonce:           decodeHexString(c, "361773240099c21ea1d62dc377556432"),
		personalization: decodeHexString(c, "0e1cdefa5c99dce4638734ed9495ff4a43a9b33ffb146752c3c034605f4e58e7"),
		expected:        decodeHexString(c, "ff53c742ac1f0a45f9321b5b21310a6270922237ec22e39ef1299b72a3488511732cf3bf436bfc66e3c4e4e5ce171fcc1aae339d5623e9f728d3739f1c48edd087d2fc6e21f5648f81de39377230c75dd3822d8d060ca9725dda80907e3ce39544cf5b4cd48f8d1aa4900dde5e70263b044142a64dac9f42aed4833c5b861e1630268310b44826b021224b53768e5ceb6b186a4af15e494753b00c45681480360cfb260e627d17a2fc6e492a5447a6d99c87853a57c1d2ac4f2ab187d7494e94"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_3(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1358aa2df891f990c5b4750a607071245695e9b49e9e0eb755094336282da9cb"),
		nonce:           decodeHexString(c, "d7483c29db6943e3a757586b9a45fba5"),
		personalization: decodeHexString(c, "76694a8784ec67185bda5bd02ade54165ebc2c43cabe60810df08e7e6143fec5"),
		expected:        decodeHexString(c, "d5670f81c1acc1aaafc6f8157a6ea9f74b49c14993ef3f61396998df5ddc1efad0060c8234f69bef6c9a56485f98ad42e28e246ca7e15f352130a184fa7bdee46cc1f4598e7a39d9b31a47b47ebe9d1b3e745451176bb3361b6f502b0de34ae134c276f322c817df3ff4ade40973b7736aa2c2470f0da45e25b7a80ba187de4a02e17b0a5000bece919c01c77062dcfd21dc76adf597eb50a31018c953a0829db44a3ce577f244df490d1c47e5783d5c71805c70de5bbf540a91510d9d1a3bd9"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_4(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "01933cb95bd72dc97cd3a5fe722f17380df95e0c5fbc4091f54e96b5d70449ca"),
		nonce:           decodeHexString(c, "e8d10bfce84b7ecccc94d2de813c4f8c"),
		personalization: decodeHexString(c, "b07921836c827387d4afe21757f54dfac551b892f249e63b8ea6da57267a1d77"),
		expected:        decodeHexString(c, "356aad872ed2097374fe24c7d4d9e754c97ef6bfde2e72cf8582b0cd0bd544511c6c2abdaf8728342297ffa197c44463973616d87400ae81a972b17b2c90baf692231db7b2224fbafca3f3e5f89bd887379e0c4f7665eaeefcaecef34c64558586623003c65d2cd53c6997db448fd178eb04c4dda35db9c2a6c2402858a8bb19bec8595c0c29e57e5a5cdd71e76f215e7415d504d89b0e9ffa9939d08815f82fdd8e8accc32441e4682f8da07d0b1516884abd64f2b5daaad14fc195943beee6"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_5(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "0eb5b221daedf44d9404bff9407d85271b3a517048b954c50ed0f7c1bf937344"),
		nonce:           decodeHexString(c, "187de3ebf99990df365ec1f0b6c48536"),
		personalization: decodeHexString(c, "63db9544f60c8b049e3525cd399b7269f5fca85d43b1c6aeb39375015792defb"),
		expected:        decodeHexString(c, "5eeb2050b17895ae2c0710fb3d5770e3ac1a38eaf2e49b41c0f69baa870785b102a9305c224ff7adf0aaf8c7bd8b7a3348de3e038d2c79bf418e4d34603bdaa3647b820775e5b4e9e5a538b62799239be75ffed8bc7b8b675908b3aeecf0baf1ba7bf2b25cb8b2717f21be6a794355c300f16b24d935b312c01f56274f565b4ec0155cc50b9b6b15001874f9cee05d424df2e4910e59594b86905dd86ab04cffc5266d2513d7880c2f04cee5137d2ac58aca52d5cd96f1455b97218fc4962cf4"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_6(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9ae14cdf2214c2e74c1f8e5e2b8cdaf0dba057c65793f9cc51f39d83f9b85133"),
		nonce:           decodeHexString(c, "622db66870ce2852cd0d08df8212688b"),
		personalization: decodeHexString(c, "6ea4afc062670c6f07714a4006b4ddea1dcfc21da7e660884a8c41c4b23644d0"),
		expected:        decodeHexString(c, "682de9f80c901263a6898f269a1fff48cdaf5d52747144f9a6cdba09110a5c8c36bd78d72322012a91d7531dad52042934fa80808e0fdd4167d39dfc674c24d0ed0f98a5e45ad04417d58830a31f0c73caaec8f21c89c905a20ae7048aff5ca67a5403f8ea3ec9e53699507f1baa5cf7841cc8f1184fa092b094e99ec8f951291a7c381510ce456e7b56b0ccd39468de88346e430cf6ac6f81b2909fd867c7a10a1b51ce3da3c0ecc1a3769696c886f1bd819b393952366412b5ea5de823d2fd"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_7(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "2d855f1a04d5f65f69986e7a1ec6c58ed7dc4d3f03d67dc9293f0651d2d48275"),
		nonce:           decodeHexString(c, "25f04000c06d2953d4c254a920ec0010"),
		personalization: decodeHexString(c, "2c0a3fc5373bbc75a150a9e360ff82abcb855273d5486802966fa15d9a5463a7"),
		expected:        decodeHexString(c, "a0589d24d5eee689b18ae972c7d886cfee95dd50527db32de1fe43685cff3214e97be1041084aaa280d5b15af19e361cc9dbb664880128ef7945b4691dba1b8a5d228e505bc51ffcb194e0c7f2c1a1e302a72d73185961e291f9aa4fd58ec7dc4d68dfbb95d0b4291a8c17fccd641e572d9a042143fcf5ce47790736e8c9949ae2c23e685d2958a78fed2c4ac861af2e0542ee0e82779592a9e238a69169c2ae34500cdcbc20d42d36fc57031ecb60e63e44b6f81bdae3d186fc02e8b7e5d7c3"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_8(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5230f6a45cbaf86ec55539c1e20c52e589ef93c733db397335b7bce9b3871537"),
		nonce:           decodeHexString(c, "aa67dc753f0701833f0b283b2e9aabad"),
		personalization: decodeHexString(c, "c62c19e84b7c5fce42c8748eb698107cbc28832b3326af798ab3c1b6d5101f15"),
		expected:        decodeHexString(c, "91703c6eb85484755b70ec923ae93919a884dadec0cc7c5dd4fa64bb6513c5c187570fe85721116c5a6f421c17785d3f68d826e17826e76383357b04d72c7eeb00350eb6d39f284df65c1cda404e21745f92375f6e6734cd9d188b4cfefea738924ec5968fbf6a15ab58bdc8940683d9382e77b4dc8e7b3a7cd52bf789cb8bbc1e27373d2a803cdc051ce84f823fb0ab20e85f290e3f17d3c030b83150b135815d9f5eff9ef2c81c5ce728c2d259bbc2a3c1764f65ea0426484c2c3b0b518e37"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_9(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "90b5046853057797c2f89d73d650d9bca3ad63454aef960399742ad4e91add09"),
		nonce:           decodeHexString(c, "c6181214992648ed4826e04218a3a588"),
		personalization: decodeHexString(c, "48d37716832a3d7049c66fa7db241d0a5cbfe8040ad30fdb606213b6ebcfab7e"),
		expected:        decodeHexString(c, "f445fc941a77b13cce20248b2b5b3ec45a8fdcb041886c5cbbb2bfdf1275e6e34ee6a76bb5ff0937f2875b76fa08bdc31df426f096827fcc56b098fa4076310bfad22c9b98b652ddb207beb4b1392d6db353adb7582b73f2bfa2bb46d7d585e11525b65cb95de2cad9869480c27a043bf17d796d05eb12d01aa0b0638cb413e4a6ae54d28c274548706d829ac5d28e0bf2dcf9903b2b987a7d2d6398c52a3f740ab47464c8e6eb93106ff7d0db419eaae38f9cb7989e7770f398420412356136"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_10(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f86c8479d39fa3bb7b3dbc4e84659fc710d16cb2183c3d3c4e1d5427f9a7556e"),
		nonce:           decodeHexString(c, "44a148f52a8efda2f54cc2988562d7fe"),
		personalization: decodeHexString(c, "2ac8374e7b10ca0ef618ab2db2001326a07fb663320d9768c8b8333e53ec13f3"),
		expected:        decodeHexString(c, "a4c612e877cd6cbcb8dda0a216724cb45005124fbee148a2afef7cac2430583af259e361ebf9f7d00766bcceb5b2f7507f134c724cc69b1e2abed1e361890cffa3ff2f81de8da2176503238bcd9b51b6897663552b561bc2b3719d4f7dff242218f8d0b51b74c323c698e0f52c356f09b74f2105b0304429b3d89f3cbdcb7fda2dc84ccf2d6c7ad87f75a9ef73ce407eefca8eee21895cb4914508325449fde43bc77f3fdd16d8c769f2bd36e07f8dfbbcba896b15911c4b0143a5ac6b6f4795"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_11(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "523d0904f258ab2eccf2232bd5247112bde507eb613bb29a40e92b86e2ff2797"),
		nonce:           decodeHexString(c, "f4509136b780496145a5d7789e2c280c"),
		personalization: decodeHexString(c, "feed7c9680fb11a17b423dfa55e26cfb367a45fb2e0d63f4dd806849181b896c"),
		expected:        decodeHexString(c, "4a3d83e002acbaf108f6072ff014a2c0720b50bd8de178a6b9259361ddf351c6ce1825cd4de14bf9aba71ca04e1f276fe732dd3cfaa33f35acb32bdf868ebce6d4aa1589180365473f40e274de6ed5c46341cf51e45a70caa4f49d998561bbbcda258248de3eef656bbd07ebe90d96b9771b249e765e2d3c295c8ee8fd9faae20eba7af26e924eaa101945ed0ac839ef9b6f23cf3d03245ab8200ebd75b70d080fa8379bd3ddb7a6c3428b7ba640b6ee065a3a56b86b0802d1ff5b1880022643"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_12(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d75ffb7da2b4f46e313b1e8ea625a499c8b082f9f3c26d66899aa524d9832a4d"),
		nonce:           decodeHexString(c, "f8d729306ef7649ccb14e9c3c6513e4f"),
		personalization: decodeHexString(c, "294bec06c13c3ca2f2ac34dfa7dfa8c8a8e6483358642b4d4072e314a4df1120"),
		expected:        decodeHexString(c, "0594f3da2e175d8c9a83e7fc2f76dba53ae1e125a7986195479a9a19e59fed2d19bdb2544b623dae9c47394c0f57d9e9e37f811b409f4e391182b16720a460f52989c8aad9c8afd0efdab460563e4651f6fe599ef57c98db56389fd628712ef04edaf636e620ed6b5bee623d1f45ba4480424de884ef03bf1fa9f0b722f3d211534da8ffbce10765d10b7649373070e3e354810029f9c63ee7a217ac33bfb4797500edd958cb2929646ceb26cf8d8d159865ee5fdad7aa43481499dd970fc630"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_13(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c4dc5f712b53926f8f1f7b2af39d480320ba1cce56e39f722a10f0fdbb6f47e3"),
		nonce:           decodeHexString(c, "04fce136460f211fcedfe60f4a218d78"),
		personalization: decodeHexString(c, "85f7692af420b7e0c0ec1afcbb2b46b9972c3bcfc51cdb4fe84f2fd01d11376c"),
		expected:        decodeHexString(c, "28a3f1bb8cba67e70acb682e49aa22f6a51f8abb7f7138dfae88fce3c9c3132732fd5bedf074301c9604aaef834c5900b90195c2e081e941fdd6f6d6d10122dbc423849ac2fc14a2cf1bcc0f4248c9bcd3fe25f34e975a4cf7b501aa4903927f836831b239000d26fcd6252e863a1dcda3eb72467e284d7b5b78bfb035d5e5226e6ca6b5a9822d0f805f1a6576f64a37cec35d539a99e9b419ceddca816e6d706bc75f72e568d7721e9019a7319b19f65c1736523e1c277f101ec9ee7677dd6c"),
	})
}

func (s *drbgSuite) TestHMAC58_SHA384_14(c *C) {
	s.testHMAC58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "446956dff7fa2b038629e16041915d58c0fc9214312878958abb87bbf3259dba"),
		nonce:           decodeHexString(c, "e1609138b91637917ec170fa3c3fb278"),
		personalization: decodeHexString(c, "230db2e57b87e910cbab26fbac7fa93a65c07c1ec004c74637e346c2db63288f"),
		expected:        decodeHexString(c, "fa58f2e96776b4aa079dbfb49d81d8abfcc30d459caeb45dec4f1766fdc3b234d52cdc5337ea770e71a28cc42c82cbefce896d1fecea5a5290300208aa79b5ff97d2091498d749b66a9e5b2da7b774567ae9f83b87a8417b1bd089935e575b16618ffe8ec04b91fc9315968dc395fa2bb8776133d3ede95aa89ae675881b26ca831fa5fe6cba800d2fed1d509353e8cba6f007cf3c5e0b9424cc034e1c817d5f7326764f5ed1d17ddf8900977a0172dfab50bf4819a67e4c1af4704f59eda3bc"),
	})
}

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

func (s *drbgSuite) TestHMAC60_SHA384_0(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "7ec861a971e4a5171531bcb60e13109d62f91392b8b24ef9af0413bd44e3816b"),
		nonce:           decodeHexString(c, "721f6aa183b04847e45cbca9c84a4390"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "015cb92b0ceff3fec9dca022eb53cfed0f5c066e2bd2082801c6a5d3112a1df8ca2a9748cd190e95ccf2a5a86d0ea164c25cd612a4c4793b3f4fe17348d6db7f11b02a2a1708c6aa4b3fbececb8db1e4ebbe5231f078e9b841a768c5b5a3453c30ed3d21632bfe0caa92d8ad00c34e36eb90cefcaaf4bfd3c5d23198bccaaa224f4bf642de696660b2ca7b1425e57ae8cc30925b940b593921a0503155c586c2f4b4a9c3499dd7f977184f89a6b53bf847c08a0a8f4d5ebdc18aa2367bdd1d43"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_1(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "76ba96536c4976bf307766cafd308229adbbac3ee4bed239c83531840827ca05"),
		nonce:           decodeHexString(c, "f56479f011e2c46dba76d738a5bb3d09"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8b23fe629ab734b6204932ccd9ba02a20f7293c55ab271f7ebdde54af9543af9b071b27e48b83641265ed15961a35926a7830e808444eef27a9089439ed278c11af894c63184f2f8fb4923f1da2b414eeb3cf7414b99edf65afa1a02ae0c3376e525aabb7f7abd363b2cbd68ce94183455dc10e2b92b4870cfe35fe1aca83b6a916f791b9f642a20ea8ba930e2f8b565f316cddbd020ac94da9500021c3218864da7f4cf8533f3538d19902622ca7819cf725e4be5c17973cb3ac8487d2f4bfc"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_2(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b821a3684d176480f41d12c444d85ad78a76aedf6647277618d793fd03e9cb7c"),
		nonce:           decodeHexString(c, "e7836140aa4039b91be35524a5accacd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c943054f1319c1185ec71f1641ae7ef7d2ccd073b710dd7e85702464314d88f5d5316553a72a906f5d99897097ec87617a483971063dbfd88c495aa974aab3f633b62a73f95364f90dca491731ea87b308403821136be078de3fd88baaab9348c071bbdebf9d0a9515083613fe8e067a7d2b9bbee8a70b464878ebc95da6b7239e87ed1c5c27a06db189f05aefbbb87dbfb9978a24f4644a96bcf7f836af08447890268e8e786b4e0ce1fbdcb9e548d905d1b7fe8a3a69f95965504665bbf198"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_3(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "fbf6e4827e10a380cf9d417714a1a9e4e8f33228ca56bc2e16d0b4281576ea69"),
		nonce:           decodeHexString(c, "cc90c8f06c891546ae3827fe35dcd427"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0819f6331d9c831ff9e9428fcc762386a4ef1cac711a29f726181abc2e2bc76b958b534e2030f80969cc277c1a02189621139eff9d9fbbf02572dc4d6a8025fc96ccc24135890f0a1b2f921ffc4ef94e2c06430d0e32769eed898eb274ac19c9aa00b41886645f55f7cd86cc42a98797538376caee380b50eae6e0398cc967a8debdafd16b8cce27773806701c5370e894a67fcd559e437c8425413466df7116b61ceb155539f26049f5e59f1f1214fe0d7111190d437168a9977e1c7ed716e9"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_4(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "69cc8d57ae9479c32dbe51ade985eb3b6e6544f32c95a7774bd83631a4cb3cce"),
		nonce:           decodeHexString(c, "c27e999835c4b348f433cef33e0dc9d7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8ab9505d1c4cbac5618faf7eb0bac480417f8810069bd8413e04c0164b96c5435199cf6e40b684d7ff4dc1b7ba48634d004bce718c996aac58b8169b86899cadb8470198bef3c7f0710e641683f4e048027b4381e551c505014918e4aec94dee56bcfa08beca3adc14bfeca86ec722f2c360dc45c26ec73cbe6638b2dc49ac13a1625a66229d5327cc037b7874c9b3082a05839400c6b18f19e1edbca2e249a816dbb0979b4566d481d0d493f5281c1acb070234b9fd876e42363059d89bc4c6"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_5(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "bf13f2521b5a6e715effab45554a85d5e70b059c35b1dd997daf02246ddf385b"),
		nonce:           decodeHexString(c, "aa94f820b0c56ef0b1b5899955643e04"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cd8be0723808d583df5232df652bea57f043cdc004f8edf18ab7cd53b75b0627b1d6affbd8e7f27a8e8098cfa33a8b34f21cbb99fc2298d7f12e90155da1014e36d74781f1c48549496099b4a12b5780af05aa9cda3fb7b3641f30e2160defa2f59f1e8aa754a9fa3c0f31a1b7adff1eb3149bf6f6219e834cced5fc1ab357c0400797e969b2a11ca37af17342c77d2b4aa5e7fe49f3ab530de0041fe785216865aeff18989e9e7859174bf39ca811bc5cf8d4cfbea8683ab007ae6f58dde898"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_6(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "877a45679277a32c3dbe08285702dc3b799c344e9bf05f3621929fa48208e06f"),
		nonce:           decodeHexString(c, "4a33c7167e2800193222a29139792f31"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "885700296f0e10c506228e49ad393458112483d894f449f41afe8181814d06bc248f1068c0236b4326db64b9d12d302b2c5ebe57774fb5070e56b83d283c7d7a1e6045caf62e781dd5243ea75013bfdba0c2eef24b632719cf590012e6685dc8f9811370abf51c15013ca66b0e2164aa7d95ef00cdc12695313dd68534cbbb783ed37f7ca116fb3c40c79e869f9cbf13c294987c7dafb1d4eccf8934c769c487f1e593e316f91530ce3c6ae0fd9b9c7286f2d99b4262f55269b97e4654bbd575"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_7(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "bddff6b625e8af75ff95d00371f098f98e7e46a9fc1c58225370c989c04790cf"),
		nonce:           decodeHexString(c, "53fb18229c3180a01b27cfe06d5ed81c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "98281f2145b514dc3baa0f153c06b65d17a856096c28da6bb63a5ce72ff2a7991c1b2e56c54feaa872d203faa11b67e4746ff28f8d0720ee44eda590a235b2935a6f6eb44e4b99db7e4b06ed929d76bc3ade6d051e78f568c1da530715b2977ffe34ad73496d92e22b2adfaabc70504c5b07b254434f69fe77e2fe8e4c281159ab5ebbfa27fecf585f5e1ca8350dd8af08d614eb9c2ccfd23a528240d4c18f1e38a2f0899a7756f1c933af46a20d191aa3ac98031f46398f1d31101c8b7c5bed"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_8(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6b9100a1a9f7794cb91a4839f0652d3d6145a560c902a65a2ed04fd64705f806"),
		nonce:           decodeHexString(c, "991cca4ff903c7c11b5aabdf3eeccceb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2a023a002385b786889ad4e90ecf4fb8feec1205ba22bea0df1186805676c89edf8816dbc74fc2c6f4f9cd99d5ed9d5d513119439706b45a4f694d765ff0258aa61ede082a0a07374a8b31a3e60059cd0554f6404d316c80ba2c1e48bddddcff7325b23eab2aff046b3d77b88cc16add5187f5c6aa21c60cde458eef4985bd458cadb7cd6e72073961267c76c4ed5210d6d3656f5212785e81e3d5dfd7f9ceb1be685051f18a942c914fff5b22eec72365158de583079594aa075e0805387919"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_9(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "0e4213f8305d5f79a03911e56f92056ca972740ed13c7c443003ea1950a752a6"),
		nonce:           decodeHexString(c, "8e9d8602dd03e0e48efa3d2262799bf5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e6605936700593052d366fd6270cbe134004d7eff6b0e4d5b795dc2e592ed01529ff6454ee51c4e162d713ac58548f022ab327a7dd528c7e1a03b1fa780c6d642d18b2de50a572b5df3aac3b4ee2705e26387798a097dd1b3bfe91f171fe9e84a6bf8f40fd8e78b042dcfb84e502c1cb2fb8d90aa9160dafbba1656557cff61e9c778451e9ff608c6729b1bfce1586ddc2e02c1cd5eea75a3dbbea1edfe5c3366d731d1e8f6bd8fc6988e34904f546100e80bbb9b2e94aff5276844ff97f116c"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_10(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "800b8899668cb039c21eda997426aaad014ff6f75c31bf43fe4e6c351096b535"),
		nonce:           decodeHexString(c, "2819a2a2438a3f345d13ea74a0eb5560"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7da447d31e9708332427820e939182a22fe9133d141fa92d1db3b27ac2ca062f738b54ec52b6d970bdd64791b8fd7f7311934a46926e2856963ecf28de4319ae2802259d35a8a40ca4d334fac9b434efe9e23f8d004d7375b04c2ce7bd8f18ab31f820f435a116b78a9176ced350f3dc04afb03d83e05ab877116ccc55efc80a75c9199fbb0389605d581e1a995f38211e71b892555cd5632e8a27d23db41397d0a9f9c715e5b27f784d7c20ddbcb93708f17656ec77d5fc72ca3b5e91058465"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_11(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "fd1d6c0227e52fdc2bc487cf684b2103c1b67ec452424da6da6e073d4b0b14ab"),
		nonce:           decodeHexString(c, "97a121a6f769277690ae2d1584e602e6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0ae6343c01a33dd566c695fd8d89b8d940bfca8b8112fb2d217378a47e85eeaebfc95260336216538be1bae906d5c945ddf9fe4beec588d10e2b6e35cafc4956d408d67a522ea4e0ea71409b71fbf85c4aa1490e0ed60a86d9b4aa0af730671c2d5a754139b07999db03922468fc22b2773da21c3af92e9da846d53a6505095e657b45021109bd1e89ffaa243b07d7eb7f372bba7b3bbaac12cf8919a2f7acf7d2b47b16321ff9de306bbb1209fa521c5d30e9b3aadea89ce8500b2c1f04267c"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_12(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "0665e58153e45c179d7642324c07af0d8987c79b41b87e2d562c3d93a0f7124a"),
		nonce:           decodeHexString(c, "38d46ad28aeb68dc18af6d5e20248e49"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ce68def79d3e0526d56c97f95d415632a4df57ab187e264dd63f488a6692c65c1bff9a0315c3c5613b9efaa34bd8f778d0cc6f686a791cf95eee2fde86f197a71a352fffe6ca3d51fffdda29c9b926e95863b27491e0358c5c090ca858b876062260e459c7fb304aa28b82ff4739f2b1cae2462d0e2b65cba9b672a5d971da523b197a6c3b364343f97e40abe4a06f68c80e62ce8b49d0dc1341b2488d7471208d1c007ee17d6d8eb84cb38666e810abcf3cf94742a757b5e4a4be3d9b830d3f"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_13(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "76d73d310dd5e098a1e5b4b1fa695845742894c8af70a435cb2471c242f880e6"),
		nonce:           decodeHexString(c, "0d5df7286df0456f6e7c57a4f2b0fc06"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1ba858b861bdc4eb4ccd356564fb145a49008ba0c3fb47813b11271cd65df113f9a123f0769b6a3c921ae0cecf25265256e36e287ed2cf389ebd7e29aab0bb74214304aa6ca9f10ffb7471e74bf61cbeb7ab1be1717a6daec94e5c2cadbadfc71b5dec408debb9fc228e43af3377d91dcff956cbe39cd34728e7f259f51dae4c75b13b89131056eb5380fea3ba5a8ed462553bf85722a3c5348f7d8a26caa1168776d841b6a1b2d7ffa9a36b4977fe9a50eb915c4725611534551cac5c3ea3a5"),
	})
}

func (s *drbgSuite) TestHMAC60_SHA384_14(c *C) {
	s.testHMAC60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9168436a8600415b83062125de0ce6a998090216dea7374af08e6d3becba054b"),
		nonce:           decodeHexString(c, "94206c91dcdf9c7c3f3571c703013419"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ef12bd2b6dea20cd197ea9eabd98eec1a2943619cd2a96dd16a6c5485435e00c59570ff14d7d9fc09c99ade0e5ec12a84c0a8ccd5677fa9b92295eb2a620e8a0400bc9ad8a1ac1aa4969d8d04b77ad59b81d95cad75358698107dc8a2ff42adbd679ab29cc29cd6ea756f4c4e60c271c3134c48b5d5aedecf011e73c2663ad1cafe57120cc70137370760c350f4e9c0b8e9b01c9acaaeb56094434f4f87c67a5b5f674783204ab0d0598c06f0802a05ec97073c005f3c9f772fe0bb449c1cad0"),
	})
}

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

func (s *drbgSuite) TestHMAC62_SHA384_0(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c226c99e0bbdc88687d0255efc80136a3e76a5fad39e4f163f954365000ec0ed"),
		nonce:           decodeHexString(c, "cd4b4f1435bc949900b6524b55d78eb7"),
		personalization: decodeHexString(c, "e885aa3050cdb3afa838e5ff7c813c04b0095465b4ba6c4c54f92cac717e53ce"),
		expected:        decodeHexString(c, "2e978624cedfbe0b48f9dc21e4ea31d58c517bcffb0e8da48aa402c275a120d132f80502400be2f8c33d3bc16f677a901d4a9c1cf48ff7a558ce901f5c14039b4473385ce69010e3ebf5454b71b11ccb9cf1851c2707d1c56e30615261c77888886fce04f312dc5d93e8ca758538d2520fa92aa59e90924ba8d8595a40734c0d7feae97ae58ea2c418543dbcc30c2478b06245a7336a3c9e3ca8943a4fba8701442ecc88fe3b84e3eaaaaec1efc033e47bea1cb82a2a867ab121746226667481"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_1(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d0a1d38a02881ea4e112344407be2055f96239b39f0751a1ed267f6a77207444"),
		nonce:           decodeHexString(c, "029eee3c270d1b4e8e0a19d73983cc3a"),
		personalization: decodeHexString(c, "5b768d026f40ef55ed66e19834d95304b9b6972a40dd3c43766acb87914879c5"),
		expected:        decodeHexString(c, "c801e38dfaa17b2185b61cc12570450884dfa272a67ebf4820592fce70a9eb2cb2ed13fbc39dd935c54cd1a8445d70c6718424db84e6b5e76a6efe6c1f86fc51327b72d38efbb6af9d3a1eaa9253e3b72c994d939330e5eb47c87afe7312c47719d09616095aeceb4680042944554b3c7a8b58754cbe2581b91040d546422c2fc8934ec905154358f45f73f66b9dd8c6cdfbed1269e0e73eda25f64c0f5c82a43e852b6f92a98e62ae1dd8387910c2f352a314242ec736131580799702b3f232"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_2(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "69631db949d342739b49fb8220fdbea39e5ef5329cd3244816545bc3c9b94c00"),
		nonce:           decodeHexString(c, "06bc4c7b448b9c389a35d47197707301"),
		personalization: decodeHexString(c, "37ba849d3ec78b5ff44487b0bbce6edcbf7b1737aa99b632ab3020f5d9834a49"),
		expected:        decodeHexString(c, "573bcb166baa08cd384bfddd7ca98de22af6e5c4013478765cbeda74a2de6ec21a66b40bda796a8131d9f56725b6f3673f2374b0002d1e23ae0c17571a71702162d2ae1c0f4dbf101e38eb6dd91d8a7a6782e46f39801792d754a0394ee38127e1f3d6d759b584a876743149bb124a887614c30cdc7842b4d48d80d6a3fed5c96d2f6b30e6e183edd0357bb16927332a78f55c79a9dc7a3f813e3026a69d079b39c31a44a6b544cc3d84b21f8805d8db97b4ca75760ad53cf2c9d0e4e468e382"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_3(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "866bb09d74ff6d9ed788def6fc410e70c755051369b77e103da9ec1a8da78476"),
		nonce:           decodeHexString(c, "d83d6d5a3f03e7f8297b9cad98be7068"),
		personalization: decodeHexString(c, "7b06685f6db8fa2e16dfc704b810e7fcf88440d25266785b3e6650df42fd1add"),
		expected:        decodeHexString(c, "d8c4d3f5f3dd127d56b721b5752f8741e2f484448002e1372e5c30ebd2522bc58034489fa7d095d8311521a3e05d698d3121b30ccaaa4990ba16c79d121f1df2da7e6a9fad52d851b29060cfd5b134c2a610d7ca710f49741f69a10842f1b407cc968645f9bff967297ae316f262da03be788faa4b67c7f2bd421fd85a0a9bad8e15dc4db371365d391d60c30be40e86eddc8a3235fd6e64b98fc8b2b04f83f2f1399d6b2f49b2ba03ece6a73a4c65ee93df15db5700cbdfb57384e1029010fc"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_4(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "fbd6587801700d3f27e437dc2f016d3533f492b38fc34fe8e9fca7d898649c86"),
		nonce:           decodeHexString(c, "48f13df7a179cc6b1135be1c09811b51"),
		personalization: decodeHexString(c, "17f3c855de72a34275288699d056dedc0ac6ffb6e679743598af9e08049a4d12"),
		expected:        decodeHexString(c, "41456396fcecc8623e5592de93ca0b9d3eb8a3ec2484b1846fd2dcba50f8493ec2ab6c9d004800b82be94dab61730d82d6a0c6273fdf37067f7d19ee137b462b8f80df50f92d2937fb2aac183e24f06d384bd62f883cdd35972bfb1767d41f44a1324b2db89b1192e005fe3b8dd1dc3704a57519994de304e4ed4baff4143038c3d7a857a8b0e252d63d1f1451d313edf45dcd1b7493da67633e24e293badf3929e09a6552900eb709d92b6f61d325448efa3a1956426f35a5397beba63ad0a3"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_5(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "cabc1f91d773df45e9486463a14bca91a7a81fff5f878e1b9fbc55fc75b38ab3"),
		nonce:           decodeHexString(c, "8299c3957b3722e2612d05f888bc41e7"),
		personalization: decodeHexString(c, "a819b53f9e30c48ad7e25d10f5951380c4d2b132fbcb429c7b33b5aacf261cd4"),
		expected:        decodeHexString(c, "8c7c38e525169c374671fa388beb792f52e2ae9a9523fa730a51616b1e8588a84d3b739d3a60e4932df41effbdf6de7b771d67c506371367188e0ac8d1526f53e1881b5aa13f9853a2fbcc03bd1650957501b85f760239e110714a22b9f8f29335abc98ca68540a6eacc42679980cf40fac0a53a9808cd3d21ac5c077c4a081ac6ffe9acd5ad7f44816375ebdb0f7936bcb74f6f5493f2825502edd4bec79cda16f407026ce092bdf56830d00677843fa19d3fc7b0f0462ae937f09ba7bfe131"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_6(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6701625b6756e0a8e8de1d0b9dd19212319c3bdbfe9f297bfa037a6fadfc2754"),
		nonce:           decodeHexString(c, "2a03a06102767ea29caf9d097699ce9a"),
		personalization: decodeHexString(c, "89dd6daec1ce4112061ca7f2fbdc60f33812aca9b6c35ef488fd0696c086af45"),
		expected:        decodeHexString(c, "cde347b70312faa4526626c1cbdf0d9519abde1120e9b6cf773481b0e4b402729561a81a8f8127d316d42bfa0bff2799f87445fa89220c206a0a9e4700c95b99a4fa3f77704f3b513b2b8ab5c84664c1dd7e30834d9d7a0e27fdd9922a311cd9474bd5e824b586652a5a792886f427974aa4673efe1a5ab6391179277a2f3fe4308516f1a7ff04a075a1fd3178d4e1117e3cd3fb8bd3d666d5735b7b4362f5ba784453894ab9625c1bfc121050d22ae6876ff0fb5688853d2e4acb064d66ec96"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_7(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b67d67c81f6bafa0cff2843581cc474afa2ba45c09a26d8a03daec1f7a60c560"),
		nonce:           decodeHexString(c, "ef06c7bb28bd8aba6de1562a2491ba88"),
		personalization: decodeHexString(c, "99d8c88165f6c6d9a7d86e557a9f527240bed0849074e3f8a9184907dd8bdb78"),
		expected:        decodeHexString(c, "db591fa371e527beedaaf1d68acbb4a0a0d97f019c7fe41363ecdaac4374f5e1ceb54796b4934ff3bd316d498d5858c8439f99babf20a0f3ebc95b5ee54faffb19abfdc2b72306f5c8ba90bd07b33ce583fc4c01fcd622652c26ea70081ae26a09d10ad4656cd9f2f2039ca8984babe2e2d9ef912e250fc7449af58568c7ab2e2208230680db786668a21e36531fa4d427bde56204232cd6e54b936ebd010fa630cd631669df347c3fb4a1c653a518ac4d65d6da36699da39332acd4fb14e9f7"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_8(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1263b3bf29a25c9adbd52709ec333099f4d26adfb9b3356fe24fcef8bdea882f"),
		nonce:           decodeHexString(c, "30c58470d8e4d6e4978b47e867bdab98"),
		personalization: decodeHexString(c, "900fd212a376dac224a175095d392d3d9e493e52f16d588d435be5b69bccd67e"),
		expected:        decodeHexString(c, "d938c0cb81d87be4a7df27d93fea45a92f6826a27a7f7d32edf15fb60382df18f4b471b52a60f2a63872438d8da72645fa98f3293ae6764c2cbcff58836497f73cddd83b1d8e216bd54fa8af3020d632dc69f812916f5df354a72f3d9d8fabe0eab9fdf40d3a2de6906e6ea6d50ddc1359ef384d2212cc0b8d82ae03fce1e5096d1f8311c7b6237b1a3cab7b40694eca12015e39a41a1c5cd30b351182a5392e0d27ee757c1de7ebd5627bdcc888774bbf7494103e7682c157c88b6adca638f6"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_9(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "4dd16486f7e86a2ed5ae8b3bbc2bd537b2d86dc8bc86ff1344fed3ef0c97e07e"),
		nonce:           decodeHexString(c, "fce9abc0dc444c8bb2ca2a955a7ccd42"),
		personalization: decodeHexString(c, "5dda276a294d8116fe0bde3da82d25cde25d9f5eb9e9753a8a28c5d65816837b"),
		expected:        decodeHexString(c, "4b4859fd7138ea1ee74695fc36e44749b37a21a5b736b8cfcdaed7a079ce2ed43367715725c60986f31ea5f0978e5272602b36ac27deb4467516a32f9c095d081d3f7fd94f024d8fd88ed0ebff3bdb8a31ffd0fe48cb68eb6d3b8780a92760ae6de81b3b215242dae2f033f089fd979934922151cd32660fb0a2a4bbed7eec7eecffd352079ebf56d80c23912fd6355bdb5f7f5dd63f2aa24afdc18c875a05cb543ca333758e2d8375ad34207110591b0c46d2ea552dd027ffc5040367fb00fc"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_10(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ea159b4a9efe984991f9ab6b94b41d5c8c077efb6466c24039c66e1099bde478"),
		nonce:           decodeHexString(c, "0e4df51d15cca504555458577e645887"),
		personalization: decodeHexString(c, "6ee0cbc6e341b8032105d7a675c56a24afad41abd7f5e716a089f84c1f18794b"),
		expected:        decodeHexString(c, "f487e93d0644f2f77e65af549082c1b2c8308d05cde1fbf5bf70a6f38eada3a2a21c38fd3f0c363aec51c7c101d8f5acaa61d7ebeba7072284947703e65612ee1d629dc365aaeee4683e6ab25bca4f52dddb7981d72d526d9aa368a2286b698ddec1f7df3c91b0512d70f4065ee920005acdbc115a628b13552c668e83382aea91b6414769fcaf44c9ce97eac2fdb6bf4da02fce62498d7b9af2a52b0969820041cac60e816b7d4d641ae6c4191db479f1d4de867b4be8dc53db1753d4a0f92d"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_11(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "0511f38d07e8590b4db94e962039b90efd3c5ade0b43bf2762a4072ba22b073e"),
		nonce:           decodeHexString(c, "84bb72969a96fc7b96a5c929ad2bc00f"),
		personalization: decodeHexString(c, "bc4bb885d222d889701bef54ff198ebfec28b4c346aa25a206dc00df6977d655"),
		expected:        decodeHexString(c, "658b2fe36e25a450c860bcc8ae3025480d14df174e2cc313ed721d3ff11e7b0e94b7161e7d31cec796060c28cafbc8c08cb5e0615e4c37f4d78a2b08f43ffb2d0b54a6b269c04a12c26173e268c297619e89b726d11c340135fbe46dabc249aafe3c1a69b45b16bfb3bf2652c5980b1f82bc7bc8668fd1e6bc14c3a900ee223812ef9201534516c0082a97828abadb49b0d71a5e0e2dd4c9226b32559486626c6f7c0483a56ba876dd65a49f5660ebe47ee143eefd471174e48ad9b47088f587"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_12(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "bef178f2e5d4a9d1d06c7b9259f07cccfbe10df897c58bb151003dc7ee6ce28d"),
		nonce:           decodeHexString(c, "a7b4db39f27f22bc9d525e00b20b68cd"),
		personalization: decodeHexString(c, "d28af3d0ff436488cc480ebc15845ae1ed7f61964b49379ed5a409bc50b3141e"),
		expected:        decodeHexString(c, "1cae8fc50d5054ab8ef4a442091d00cfcd5c69711d59effc0d96d9faa6bbf3f43436abe3443009b29d793646328d0befd1bd9d0e14e7f148789a84597a7f83e73a43991e9df0f93d7c0ea32995d30925f832240f97162fdc1ca4a36052e089e2b6bb1493d64a25336b221dcc391290283459d9a70bdaa29fcedee59448614f004d411ce7ea51ee1c21980b94ae8cb8301af79107b6e55492ea82f4b4c77bbca160ef9d547ee2623b32404dcfcd00ba45597127f10fc2f6dde1e2877ee738b920"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_13(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a3be3f8ffce66eb94ad04be74d17d7fa9fae16a8e2738e0845fd9c9c8654bd73"),
		nonce:           decodeHexString(c, "f4cf725d0cc2ae9e9d4b6e04ad251514"),
		personalization: decodeHexString(c, "d00ae9ce52f8a9515acc207b96fe56abfd5f89ffe55b52d046afaaba56b09444"),
		expected:        decodeHexString(c, "686960f59b4af2d35f747eb1de19640f01a3f6ff19ec754ce9bab583ba2f4ed6fcdd7ff5e5df802a98a93ab28c4437aaa8b6e343efc608f0b7162eaedb6047fa2ed394a3a4c2571891b0a4f8f7439383881bbea1f5ee2acb40598e10b4d77f86a1616632ccb2edc6fdd6a42c972e9db1925638d83a19cee00b7a43cba278e2d56d9e9ce328b04f0e89d75880f374c1da8b2cf1361aeb6d6aeb881aaa63eaa3328e5f2a6e442c545c050a4255eaa2bf4fe812bec04cb9d98b7daf3ddb081b4849"),
	})
}

func (s *drbgSuite) TestHMAC62_SHA384_14(c *C) {
	s.testHMAC62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f40b9117c9bf9058139acd5bbc51267d091643c3ea487a3e948475f629bd1843"),
		nonce:           decodeHexString(c, "733bf048e5b112426979a9879b6a0c10"),
		personalization: decodeHexString(c, "58d91008875f51d541c6fbd626a49a798dc51d9cf2e8588808e74953392800e7"),
		expected:        decodeHexString(c, "1794335e21606d706dc89ace28c60a15c0c9f108f5ac882b103eb62e225de749285e5fb0be98a5bdc26e3c998ae418306380941d78acb7c81b91ef41cecab328332ac7404ace0ea858e7835534f778cab3e3e4eff043742e4f7d4d5725bcdca0b6be7ddbf79e57fcd1d5a4279f074a599abac2cd281ec6784e29d9399f5ffa8def3252acacc59844c0c24c20d029a89b4407e0b5cbe9a8d51241dd36bb82c400ec4571dd1baf831d58fed3dde4ac7f961be6ebc18af6bfa922a32b81ea11334a"),
	})
}

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

func (s *drbgSuite) TestHMAC64_SHA512_0(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "35049f389a33c0ecb1293238fd951f8ffd517dfde06041d32945b3e26914ba15"),
		nonce:           decodeHexString(c, "f7328760be6168e6aa9fb54784989a11"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e76491b0260aacfded01ad39fbf1a66a88284caa5123368a2ad9330ee48335e3c9c9ba90e6cbc9429962d60c1a6661edcfaa31d972b8264b9d4562cf18494128a092c17a8da6f3113e8a7edfcd4427082bd390675e9662408144971717303d8dc352c9e8b95e7f35fa2ac9f549b292bc7c4bc7f01ee0a577859ef6e82d79ef23892d167c140d22aac32b64ccdfeee2730528a38763b24227f91ac3ffe47fb11538e435307e77481802b0f613f370ffb0dbeab774fe1efbb1a80d01154a9459e73ad361108bbc86b0914f095136cbe634555ce0bb263618dc5c367291ce0825518987154fe9ecb052b3f0a256fcc30cc14572531c9628973639beda456f2bddf6"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_1(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4cc8214cd7e85a76bfa735bbbfce926c0323fc348de6c05ed1800c2c8f58c6b1"),
		nonce:           decodeHexString(c, "001eb1f6b29b35242a3f8fa2e90003f4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1efa15d644e1bdf34eade3ff2f5e9ca45203ccaa1e534ac9b4287a846b71292b03102286d99f2be64b898fe909238f540ebc25f49522f60ef723a4c428ead530a97c62405cd5d9ecc54ac5baa47ac4f6195d637833f462d21a659b4903d9cfa6c9fd4512445f9abb5782899a6bb64592f3c2b3c745b18645301fdb09a6a331e9fb6d9654fc79c14ed83ac1684c755b9cb209885f86ff290a71f08a848b960152f05b1aa8566bd382ddd45521062831d7a0fb3a8bd8e112a91b5960690cd8585c1aa104514e3b9cbf52f6384e84c27bda2802fe9fb952cbf2bd607f869d0aeaa6b136c6a5f6e9b0522b6019b7ba6af6cff99fda612e024867decd8c0c6fde2034"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_2(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d046270e6b7997cd5f4e9ed1193e55382191f78547a660854cf60bb03d039a39"),
		nonce:           decodeHexString(c, "50cd147a3445f6d32d14cbfb9da0c327"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cdfa9441aa5eb11fe3ba50528ed731c9ff9e70b78da075d00c52d0e281e3a868f66a53a2a6a272d7e0b1a32b6339f8afd108bb9e66b04c3d6bc069b7e01b69844322df7deac66e605a9e2f43665b7932c67c418a77a4c9a302782d0e735795755613a1c5e90089f759d780fb3a984dee4e06ba3dc5a8c652549587d975e586a98ac6aba6563e2767f1a379261b9dd37992ea9681881ea7933b5c64093234c849142ced85bbe5956f527d46ef091e4d18df2a6102621a91bca51bf7aa4b242414dc16e74ae59dfe560c19dbe315e7f98b11086bc26e336dcefcb91c4828682da90d3921336a45fcd36ea4d1213a13213a132bf20aa1a3991b60b65de7ab9cc656"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_3(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8c7c80b169160c78104c205e4492a9477e6f7ba1c3bb4daa86d222deb6241bfd"),
		nonce:           decodeHexString(c, "2d2dcd5c40b46fa553ca6a2f6be96991"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1658a7552e4cc98c228072801f9ba230123e7f1f7dca7ba839f440e5f7570fd29c38b86a2aaca04cc87a56205b41d19e38998b47d0ffbfbd9bb56a6eb31bbfdce8d01e8991b82315c39f60c222298160e8d9f14b1a6038d8eaf15eb7310b180a8e2e8d05ef028782b55d4782d4774160a39896d1a896823f8b92a99abb546ef02cf189200a1a7a2fbb7019e4d8a935224c20d11a18e0d8890549666f6599c261532b036051cf7a65dd33bc0aeab8fa2ac9ed520f6dd893b9dc3cd3b87d02a0543eca0bb52c58b7ac4ab3f00171e21dfd3363229ed362f960d8a5fd06af5caa86018f9dce81ade6234a6992bfb9e2660d08a103dadd7d9ade4c45d691aa3799c1"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_4(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "cd394508d86c384c0c998b58cf7017b7124269428e4cf39519b5815cc2d88734"),
		nonce:           decodeHexString(c, "fd2cbc87c79063db588d90b9cb1569f3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7c4de5fa97362e63e52e790fb66d4b067e8cc1742975ba6f9186295832d31c4e0c97b7dffa262b93b109621044a4bc89c9fc82211f5cb763974eb3a816fa7d7853577bee1c36c2c36aabe28559d5bd85691c3e3bd610e61e4c3b76e167526d1331459d8bf09ceb403062cc97e1229eb3a70af6049d291aadb002786e7d21b81c87fa68a51a1b9a89394788bab70783a88c883ca17eceaba455f357c611fb279e38f67e3c27c5ade5f95721fa79fc2da1bd44ca7f304161359da4e45d7b847672bc185ba502123a802535dbd167b2c93bf901626e23fcaba03c4f89625a930caaaa30400645680e5931e094aac6f6467b90b13c2be9c98744f89d113151cd2ffb"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_5(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a14be417001030f6a9c543f829715b075d0efd8fa35acc7eed02a1401c6f59df"),
		nonce:           decodeHexString(c, "c87b8b9255e62fcda6a35e52fa4a6f9d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ed29a49be56e081f5b6abcd2ca1a16dc096071989de72a39b8bd544d2a2a2db5c886c0c29ce454cf60addb56cb4f28f959ccb7163280ef81e48dd2a02024c34a120301d359f03844d1af01f485afbe7c9b17288cf345172290fdc44e124670c5ca9e8590df6f9f63d60849c62d3921003532dbe3e3e6bdd75d28211365f6c489598a99e605ca671ff91552b5916ea9e12259723c0e1a633be34932d0c816c30b519c79656a70368b28fadaf5eb32eb6e47e00b04f152ace2eafc9a3ebd3b1b3795ad85e0897e46ab57c361fef2908041d365f73180b505ae2426603decd0b7dd33e2f7ac885aced4194999602d4d62a984233d0696fff86f7fa7a6cf993fb7e5"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_6(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b8ceee088f3b13dbd1e7cf230449f246a456f504d63fd4288838a50ab76576a3"),
		nonce:           decodeHexString(c, "f400502913cf57cb2341c5e6a63fe9fa"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b4fe3f6caedf4ac7b93fb1c2f316bafa58487f28a37b8400fd1f32c963b04cb3c7eb601d0dd8a7e4538b14030fb0e97794c617366ca827e3afdb0f714983a6a72b261db8bf98d5fc48fb55158661f987d08e952913212717cf204a3e8cf1177f63e2a46d920ffcec4b580a1361253a689bf765200f4e90dc6b34a56e10cfdbf932fbc3b75da1d55cba0c5287f552d883763b83acdfc7fc9d762f79774701f7ace701f0b26c67217e022bf6b6e0602e0d68cb1377b5ebccb9a8e41188dd1dea662663e8aa093787d6490a4e887a34a27309c64c40e4ab2f0acfec4a1b8d419d99fb578aaa82da9166a7d7873e27226db20d313e868bcfa4fe3854d6fb34def7d6"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_7(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3c1e8a0199786fc268ee0ca0c0446d7363bd781069cf3a3faef2592cba06ce1e"),
		nonce:           decodeHexString(c, "70c7c691af73d6d59addbd6e3f646d64"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "06f44bebc2c1736b5cee283e530bb877b28651d70983c272a10efa80e3794ee428644048d67245dd3ca8b769b6bb192c9468a9fcf2b71c417283713d39e800225ba659c3273022f5177fd7867173f457f3bb66ff2c2e7bb2574dfee54438e35c98506c178d35259b04e7c541016f5c2d980074b4ea865203ae2e8935d745a02ab5cce04d233cbc18719b1900f2e7e98229b851d19fac02fa6e5ac1bc973b20a17509739bd989d4ef5a66fd9e19e3ceef2415b498843e93631b2b168167bdbb8db313eef4c9668d5001cb34767ee41db872163987c3bdc144637b52dcb767ffc19bf44fbad487b1eeae7957b497fd59a95f0988315eba73ab7206542f31c49267"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_8(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e8a0925bfce66dee7e6a54fe0311d259bd7f7a22b8576d64840cc51c731212cb"),
		nonce:           decodeHexString(c, "1763365deab3ab82de9996e5c8570eb9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "63ddfd70508cfa247408ec231d56df7905f65b62e5e5a8309fff5239620faa0f055d7b8fdbc648ded78fd567c3141e1723d197296c92d43fdc18af0c4a54fcd52613286c78ba7bdfd0fcacc7b11b374739088323ba95f30872d77b6aad21228253133d76d29d0d742ba349956fe71e8bbf3fc7186a3f85f144a9040ceb0529a713583c1fcdee756d0130b38df0964bfc3b669fabb6ec6874d17d9ecda9fa567890e42540185eeb3497ba8db80b803f63803442aec14735e9eda177484ad61bf0c76c2862b7691b4cc74efbe35203f8cf4f24aaaa1d831030f28eef8b49e85b249e6fe835964d53aa74de6a31424ec3c833f4b8b39559934bf5f23d4b1d450bc3"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_9(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c493ad96bb20b2480bd3122b4b1ea51379f5fa2bfd8bc0fed4080995b162c609"),
		nonce:           decodeHexString(c, "b6d6197f432c8597163feb9c5439525d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "764d3e4459504b490eb1db7b5ab8e6413601e449750534f4c4f70025026f87217010eb14705eae6e513796c7f20ecace32a063238824b3fd6956810066930bf425a1c585221c8f61ac64aeccfe8a3e33d164d02d5434e9e594b7ff451601874d268a2fd8de9922c36e67d8146fe553889a15f624d499a22f5109896758f30bb98f70eac11da1ad48e99bb4422acc5b97295094324eecf530525c1ba150886d053c84004c265693a4419602e5e59bf120de6ff054d0c7c96bc14e9b5fe1290c08ebebcda21744c04a2e78964cb2b52f8e6a70930fd1ded1f0edbda4deff91a3310019e967df3fdbfa228bec9897412a748201649328b7d784851fcb5ac1251f8b"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_10(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1e868c5fe4b59e6d4249854226bf1120a74386ea590e9c35c58d7ccdfad56d71"),
		nonce:           decodeHexString(c, "dbf557da684289e96cbdd66cbd9cb879"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2032963be29c0d24c2631b1cd895124b9801a4d5c14c28fb34cbfb1c2467134f499153e2a3ec817cc4b2e4e06068ae78f5696dcee99334b0b51e9f29e56a3d3fd5c65c4cc70e10f9e0cea2572c28ec4afe0896d7689322d3afd931ff836be485f78aa179100d43d910564dd1adfedcd32e3e7e53b06c0a46a90b1173e4a5152cd8aa38f2a7e329d01c0b81e62be6c9fc8d1ff3db08f8c31c1e77c5d7fae619555c0e02c658486e35f27a7d58ce63b9b152b9ff528ab6a6cd9b59240f5a7b6b52dc3f6e47f9daa2cb8cb525d6760cf409ebe2c7641c3c32e330545bcd73da9eda20b7590d84831d4bec807a56994259bcd2fe28105f2d7fcdb3eec523fdef7044"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_11(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "55bc1c7358dc334b26412ab472dcf4210740cfa0ea688812d8b1a7fb257b979e"),
		nonce:           decodeHexString(c, "dbab14240cf59fcc8a7007553ac480eb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6a9d30d4ca97dbfc2d2852bef044bbfb95ac253b27e588c67fe179f6adb81147cc1cb6eba6a2c4afd6f8b3f1c8d45b51af1435ebf1ba8596830314353c9b4d8aff9620dba0099fe0a1ea417b97fa4c28491fe6d2a619172127f18155840f90456bfbf1e7ff587fbe566d6b8eadd6ce594bfcbabedda37858a7610c8230f594861984dbf1e3ddc9eccc8b9d2ec3cba1306d178f7677ed399b10b995b3ea55586519e5730e52ee8880ef0e63c476f2a80d77c6ba802c47e9174297b27520fb027d134e17cfa6f99d59cc5f53737cdc2e663e1ac59bf74a87ab1064e9acd4811c0406ec5a29a081bd0efd1e557d6b6c9c7fe6131c5c00fae82339a1fb90d3be2b6b"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_12(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d894820d9cb243859447cd3a3f6cdd125a9c4faece6ad756d288a15c5d24c39d"),
		nonce:           decodeHexString(c, "776c5ea9838c4c34f39f12c1a9df6700"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ba23f7aa0b7f6a93bc0df32e68e78786fffb5acd7fbc2864468568753e3ddf31fc2187b20c229d0d0b261510f6442816d2226024b57306b474079c92c66a00be482fc104cdbccef0450b3f2ce94f6bb6a5125e0774a28a2a083f802d3c45e9d4253295f80ca4bc439f539a7f82eec6fd450bd196ab468ec6902752dced44ab557fcd3f6a72c47c0f18cec6545ac669cf432e2db308d70a7394ec772a34f14f26d7bf7d0bd7e4437248618efa2c08adc7de9231ddcc976ef8bcbd11be54dd17ca9fa515fee6827bf5efb602fe8f1cf5d67078b17601803c5be05c24edccad2837d0be191f918d6dc62742241728a8690db5836c2045ec9f8bfa87b768f4febf2f"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_13(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "17facdf2fca2e1134674ea8e8daa609b4477f415c6a13a5c157f3fb7727dda6d"),
		nonce:           decodeHexString(c, "3c1dd89ad63e781588e4b3f8cb1f2f6e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f472b4c20bf07c170b3c8eb682469e88680d1fa5561d72b864c5c438c95c4c8a3e61f89fc30d5fb4e843e5ed1230778b48c467fa46ebfb7b56220a610483827f3f7f8ac307f8aa57a68922a06c8fa5de732a0d05835cd48690a2b3f734e4b7e74799ad774579a9eb296112f3e2bb68551af0e9e0e5e0bbb219ccb6c78459dc68a3663987156a50e72aebb219a1e43b5603dbd8055bf1e76a4468caee86489ac9a1a9a66ee7b193484ff3bea84341b62dab124a43e38945cfc99f2c4c15590fe180bb3e6eac544483aef710278213a83da85a38b6d140f33654c9d4f6b8ab3eacef1c57fd2237dbe8adf23b3aef6ab30327ca119b9e1e95ecd068aafae0d07a08"),
	})
}

func (s *drbgSuite) TestHMAC64_SHA512_14(c *C) {
	s.testHMAC64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2c13e44674e89aa105fc11b05e8526769a53ab0b4688f3d0d9cf23af4c8469bb"),
		nonce:           decodeHexString(c, "700ac6a616c1d1bb7bd8ff7e96a4d250"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f778161306fc5f1d9e649b2a26983f31266a84bc79dd1b0016c8de53706f9812c4cebdbde78a3592bc7752303154acd7f4d27c2d5751fc7b1fee62677a71fc90e259dfb4b6a9c372515fac6efe01958d199888c360504ffa4c7cf4517918c430f5640fedc738e0cc1fcec33945a34a62ca61a71a9067298d34ac4a93751ddcd9a0f142748a1f0a81a948c6c6a16179e70b6f13633fd03b838da20f81450b4fdc1752e98e71296f1941ca58e71b73ea93e99a98f58d0892fa16de6a16c602036ac857dd75f9ac2c9185932103db5430e80cde9131e814a0bf3f3e7a2200a7152424472fd27f791a854f29aecc448f8d3fca3f93290266df3193d9e13e08907ab2"),
	})
}

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

func (s *drbgSuite) TestHMAC66_SHA512_0(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "73529bba71a3d4b4fcf9a7edeed269dbdc3748b90df68c0d00e245de54698c77"),
		nonce:           decodeHexString(c, "22e2d6e24501212b6f058e7c54138007"),
		personalization: decodeHexString(c, "e2cc19e31595d0e4de9e8bd3b236dec2d4b032c3dd5bf9891c284cd1bac67bdb"),
		expected:        decodeHexString(c, "1a73d58b7342c3c933e3ba15eedd8270988691c3794b45aa358570391571881c0d9c4289e5b198db5534c3cb8466ab48250fa67f24cb19b7038e46af56687bab7e5de3c82fa7312f54dc0f1dc93f5b03fcaa6003cae28d3d4707368c144a7aa46091822da292f97f32caf90ae3dd3e48e808ae12e633aa0410106e1ab56bc0a0d80f438e9b3492e4a3bc88d73a3904f7dd060c48ae8d7b12bf89a19551b53b3f55a511d2820e941640c845a8a0466432c5850c5b61bec5272602521125addf677e949b96782bc01a904491df08089bed004ad56e12f8ea1a200883ad72b3b9fae12b4eb65d5c2bacb3ce46c7c48464c9c29142fb35e7bc267ce852296ac042f9"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_1(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e72d696d4dcb41a42d89037487b3eb01d2ddcf0407e4daa0b8ff562461eb6f83"),
		nonce:           decodeHexString(c, "b2b01fb9732601f3573c6831aef09ac3"),
		personalization: decodeHexString(c, "8bbb235642f8caed49700463168ced9971a0204b981025bee41c72b76a965d51"),
		expected:        decodeHexString(c, "8e5cd2a91ea113072623b787ed37454fae2c1905a725be3b124bb243057794dd68325a5d8bba5d6c7796d91cf682587ebe91f6beb33c5cd60b00940bf6de57c7fb082b9ba0e5b44e021be6d45099ea59367291a733ca50334f0315d52ed267af1b98e5be59359a0b9965727d92aafe4c92fda2c915cfb5a378c7a717f743a3524fddf5a48b1e7e113fa6e94b76f4e13fce3cc18b970f2ed1c34bd622611c979b6a9712c4447c3e50a7bb7ae30a8bbf479dd4242a8c4d1492c892107bb4ca695e3c790c9799bc6ffd563ebc3a4968accfc2085ab576ca6e9bfb2904a357c2cfddb55378994e5e4b36008cacaae024312fdf036a097f0fc1d3f9e75fe7cff74540"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_2(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8d6ff3e3fe6808bc796a73957b19d758b257fab71dbb4e39acc2fafb01f88e98"),
		nonce:           decodeHexString(c, "2e2b74490e062044975d6b1885f61ec7"),
		personalization: decodeHexString(c, "b5f819154ed5442d5547771af76cb6333d7f35e6f3e1cb03b22d09e601eb8eec"),
		expected:        decodeHexString(c, "9cb257ba9d77b95e5bb2305424116eedc126b9a8654e56942e282da3823c09d9cc1c4b9c4975f13f9138e93ac75c4bd552c81d41d6363466cf2a38e2eec9294a93630dbc9d7ca89a0725fc7e41b0e55e8999279df88fb579dcc500aaa97d78ae354496048ad47d0b0285bac5e5f6e9bd50c2d9bb6f06090b3835171533d2105fbbb3762b2e33bb75c5f7c89cfb809858244526f8de3aa4f611bde41059109e8ff21b81392b55b9867523b4a4cf5dd74c23a2066f9b26225cace5c5822888f7f7dd233816ec3ef137852945fc6648b4c7cf11fa744cdf62aeb02ec2e68c29c071c84883472619da2680068aec82700cc1cec0dbae8b740b3be7c4b6c972c62998"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_3(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "138a1a9408cd7de6c1796910145263e5816d377cb9949bad0927f9c61e7fd18c"),
		nonce:           decodeHexString(c, "71eb585159831189707ac6b8b6f80100"),
		personalization: decodeHexString(c, "9c0ca722c55c19694df96e70f941b5b230efb1fccc7a7abe0c471dde92a39272"),
		expected:        decodeHexString(c, "976e1a19af964502177d27b09458e3beca6e9082ce21721d31b7241795886213894f2e3f9acc23af6aa5eae7218d00871dac9e237cde1dd9654c1e893bac47e9444f4dabd26d3dcd9f11a68b297956f135df32fc3470f7b01383c506e2a2fbdf1c387c4ce684592fd4e5be0469a29c8031cd1ccd002edae3bea44c93695241296d472783df68e5ac7a62e33a5a74f70fe45252f88309b7f3603f43a5a0a823cf6f3bd8670d50663ecc326aed709224b60fe67ed29860b31c8161d416dc5cbca1c16e69cd7ce41a77cd465cb810f2b5963d15e352715fd5e6175c68125fc8e107d6573ea89db8b34fdf93e2e173cef77746e6142c8e5c44dc288ce86c0710a04b"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_4(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f4010441edc99d524f6caa660c180e25afdd09315f2a495ec003471e1f79bf0a"),
		nonce:           decodeHexString(c, "13bc6f04d81b25f4d4c9321aa3fa58b4"),
		personalization: decodeHexString(c, "37fbbb3fc5aa698084184ecc8e8b45212dcf851e6e4f2db8f775d3f759ef0c4c"),
		expected:        decodeHexString(c, "cb3a853a930cce84703c47719f6d609fce15f903a887f646c0781606f6f926765afd7411b4fc44be350b14cfff04383e4930eb36f94329033cd5f21d467fa74ca1a3c61c94a290bf6753809d8e7b75431d9450361613b16d6be55c392cbcb3d4212ea42cb341878cb268f3daa87c73297a807e35b82458cab693ec9bf66f43328ff1c4e727998d841a1d1491ad55c08522e5c69f19233fb4a8b11e937c55afa38ef5e0ac74b6f856902501a2558663f453d069c291d762da968298d596104580d80bf0787ce4a148dcda5ffc4b47c653f9b7bcde6cbd36dce707738b114d5f6e488b17b63f402c99d0c2b4dca40ef3d05025e50f87fbad86468ed5c08599bfdb"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_5(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "64179b56a75ce27513f0353e10a5107b935293af96799112448fb5787d9949d0"),
		nonce:           decodeHexString(c, "f38d2f6e523ca3ef7429621db65a37d6"),
		personalization: decodeHexString(c, "f0cfd2400dd8d5e857e5878fc811a5c9ce5e0097184ccdc57c0f96d5a66020c3"),
		expected:        decodeHexString(c, "b79591df35bf97c7f4731ded3eefcaaf9d0033bbb0741c0c28aca622e211491107ba9b9645ed325ae18a7aac6160cee4e34f3d3a44de58af0f5fe148b3c93fa37fd2f98e1c3c46a216bfb78d2636dc6b89501ddc315ca16eaa31a818b2fd100a47ade02234096ecdbdfd0997a3c7a4481815665b9a41070bb1bd4d7d9576957421d3b9b75d0e06419298aaacaa4f77afccecc7a67d59295aa0122197ba72b115b8d6960fa7c6c801785734f716b36805b97d4416baa1ab16c190bb8095b0c9e1267f1ade79791333ef6e442c681134dc1ff4ea547a89b84fee3bee0cb481f0afc3d1d2026add34c44f67dfce9c01ffcd443d0d5eaea00b60d0cb2ef4fad1dbef"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_6(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c21f2ca0d103186755dbf2d8470c0282fe11824f0873cfd7935671d3af749ebe"),
		nonce:           decodeHexString(c, "961df3048132b35d39bc1f96e21672b3"),
		personalization: decodeHexString(c, "d040489ad6f484b13be395fd99fff34706cbf96867e614cd6c91554d61231eee"),
		expected:        decodeHexString(c, "a91bc36569a590e5dba3b64e896b21625a8555f71ab77f6f348d2d787e19594046a255f265bee7171100f2db39e3a5d966fcdd88ebc127b23b1798da44e03006a1987a4f5c8af3d83c220661b3c1ac45c5e785d96075681b2b19da1d5b0d143f3cf43c8010523f08feb59360d8a3dc12f101f2542d9fb0161696914f96cd1db573fde8957da6d7e9821032d9fca00f657c326ec0418cc3c60ae387e13894126fce27573ebdc1694853c5eb3bf37f82a5bd59b149d36cb3d408216315fecfbd2cce84f9e5186f24557c3c93827f6962b90fb1f49260250a55bb443c327e03e4a615be0bd5d290decc7fb6813d8b4d8c5619745cfaa1302987f2139ac71448aaf6"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_7(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b3679d82e8a26b602835fa5b780e9678d8a84cbcac2cd6a66174a9c6f68d86cb"),
		nonce:           decodeHexString(c, "c4b1bcdcc20888953f8ff22363fa8a5e"),
		personalization: decodeHexString(c, "c35fe47a7a0c8f82af93ec7dd162aeb423af44aa71b35d299d561b65640e43a1"),
		expected:        decodeHexString(c, "4fb91c1ac25546550d914c1bca10943f0bc2d6785d11eb28eef7b138b42a248b7866eeedee2a00772d3ea216430344af63e896fd0731e93ed7e06e96024385af563cc80cbb27df9285219b1abc57949c580b3d7b7b2e956ec2375ea5069c89ca50602494fbaf80b06424fda851a7576806dd18cb8c96e11c746b71e272c09eae0d3e1a5e14d46a4f09ce1520c36aee0e565f3093e703786bb109a4362620eec6108c0ae71abcb8e3a46e9907fa74522cf47f81d743ff4766b7ecf81982340e573a2893636ea8072373a628abe72e78fa22785e607d4fd6941b6b58da5d77517e3cd6d228b67b49b408b7b67c76ff126da818ba19e4dc36ab647f3b3bdb3c9e19"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_8(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d120f00e06be42483e026e4be88267ca2f8c1b92f3a8342fd460ee5f2f162bf9"),
		nonce:           decodeHexString(c, "e851a711e87dd4ce719d660de2988754"),
		personalization: decodeHexString(c, "28b9fd7cbe714602be7d7d8a159db5e72cfdc8ad8f25cd18023da801466bcd2b"),
		expected:        decodeHexString(c, "6912a14bbddf7b5fee9d8df4e06662b8856bcb85ed0dc70061c0951b46ff4a6d9fc49eed01f71a9155b3f03ec31d2bf96d0cd5b961a36cb702c9cbb4a938f3a5cdbbd22d4a94f12434a706362897617f25953d6f62243cb3b8cb21877cf74899d5285a5b7fdc8fe18f49bc7f0fa4d200e8c98ee38884e4ab56ff8e31dd2420957c016b3a3dd65f6cef4b440d1a4f4dd38ac774e0d06e4d32bcd1d25aa54417f6e2be37096fe6fe6b2e08863ae1f03f9c7f584ccb5790d085647a1ef6a39614b208fdce993294bbcf2b66692d41a9c71b91fa0183486d70b3ce17c8d3b6ed8a3eee804ead37cb8b13fba5858eb9ee7e44b4cd9f5d1e063c33e15046bc080bb3f7"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_9(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "256eabcc37aed36ee6a5e288f6a96c28b8554ae987eea487a87f7f1a3c93052c"),
		nonce:           decodeHexString(c, "9dceeb5a5749f26f4dfde9ce42908d33"),
		personalization: decodeHexString(c, "0aeb442729544bdfdaf0a0997e12da31187d92e5491eeb19a9d0a5b8142f4017"),
		expected:        decodeHexString(c, "729f91d238cbbcb0001d55967c9e33765db722ee3c1acfb58d67f630b24ed6ea612d45b12db152f082bef94fdf1e370bbf1388c26ccb6e5d2567340897cc11efe1c5f87213a38a4f4a8fcf0ed25647e800a5b67b67558f0dad71e560334b15f294f780d837819cbbf068b1855b3cf62d9cc9db854e69efeb82f71d4877fa3af331f9d93c4a44f8f034fe667ecc71114202560f4131002638bb97fd28cf8843b5aada3d173fb1a0f9ddd444bdbf902e4b1ae6530dd291217a26d0c3bcc8a745f1475473197f85de47c3c2fb0cc7dd3cef12296dda7d5f16b62cb2bde59b21d29c0e1c700fc513522b8cebe196ae36542f48abd8c6a0f75cd2da045221037ea8ff"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_10(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "fe4e42ca7246202e31849eb9becc217a8ba475c289d36a96879afdffd0996e07"),
		nonce:           decodeHexString(c, "26346eb244156cbc6cb297d3f57ceb43"),
		personalization: decodeHexString(c, "8f75e9cb9dbf8636d5ca1a08e5def41e9c773de65bda450e025b3947d198fc0c"),
		expected:        decodeHexString(c, "952ecf7252536ef906e1c4a9d4d0fbe5696a574487a9192445b9730d96ec2bebf57c9fb3ff1203011ef221625f95721611b10ff4eca17833ce11c4ae6f2155d1954dcdcf17d4d9252a739c99e085c3a6169585fe1b2523388f0690392d30f153d2fa75d8dc12fb8f235cbd83d5d1d0f883bf2f0dff0bc3ecb490fbee2dd09be21cd63e56c90dc92552a7819da8682c1676ee432e1e6c85cb8928b9997ea4af23e7d5dcceaba634cfc31541133c2d11cda92aa858d7fc98940fe4bb6865f8986b27ccbe9889f94cfefdf5e7d7c9667dcb91ef9095daa86a27df13a4bb8afb32d4bc5273247c29a93b4eb53c0189308585bb83baf9b6ce76d995838e035aeee907"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_11(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b18f4e2614719779660fdfbd342f37b944141c5adc2346c4e37733a4da6fd2ba"),
		nonce:           decodeHexString(c, "d849c315f51034df3c7bd39ce4f4ddf7"),
		personalization: decodeHexString(c, "7b6c82ea24ddf29ae2fbea9c9e284506288abff2059c07246689618d3e6ecfc2"),
		expected:        decodeHexString(c, "2cbf77930162fd93a9becce1b29e5b37a9b401b8e7875f650204cce39ce74592686e274372be83c1ede3e7901d4e9fadc5d1b9f58e03e7db208feca9573dd3e0f39967922309fc7e065591b59e6cd7cd4aaf836882d1230320e22f0326c629afada478708125c4ad140b3054c9d4a660811a40df01d6f3d0acd7a16b69b10f388ce317fd795b8336a141a3c3cf95f30035567a58c66a08806c8523984bf18d75bcdd67a6c1f9fc464e939c913ba02d28fa465042e1151adb914bce52048544ff6835d1f81aec6c42f005f592772e751bc7f64ccadc276a1754c382e1355958e435fe2a096818171b644084c702ed4740bbad7f536aad0bf47b3c1fffdb3e214e"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_12(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "14c817683e8013e1a3a56e46bcca485cbf386cf85bc45d11817264b0809919dc"),
		nonce:           decodeHexString(c, "9fecddd4a2d910ff5ee139f436af231b"),
		personalization: decodeHexString(c, "13145848e593be74e8d9730be55c9b98fa551eab55c364127b16b4a295ca15ad"),
		expected:        decodeHexString(c, "4a16be29fd77ac3e0b0754ef030b0702209be0bed2e2292059d5d9a07322050991991d482689e71921fb4f0d189be688fffd4eff001d78e2fa28075101c55ac98f4af065b9fb34df0a1db10ba41c5efb241e2acdf9bb65fa5051c6d01cb8a0d683b001c034cce35dae98197b3a6945b31f3eb1342cf1a8bb6e528dac01c7f0350253029a1ad0899801bca276bc5eb3dd92a712f2e99b21b81deadfc23ca053822b00f0ed0cad1b2367fd3f1bf50a121d29f4a95305877aea757456c852c2ba2af9da8cf3f8a68847749d6ffe8e115291f999059109f2ef4a1299798d2d04bada29088e9b886cf839c71cdae58b5a4d17818ecc05dfa09d7431f471f79abe0e66"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_13(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "bd5263fad2fa0c4caf9b2031c27b1328bd30fbb88549d528fb3227994a012ffb"),
		nonce:           decodeHexString(c, "b37e0aa74649ab01627fe3663d28fef0"),
		personalization: decodeHexString(c, "e49c8fd4b2d1676096f937a0674ce41f2b960eb53e4b35d01212adb6b1ded917"),
		expected:        decodeHexString(c, "f5dd013f8eea8fc48a2a77600cac576dbab7919c91f2d360749ae7369f184fdb428d3575ff97574b8727ad20dceb04d116030b8c3ad2ee54c69e6e01fa1580cedca2949641067a2845f6fffd1909ae2e520b9319ecbbcd6c10afee1ac1e4630cdf6c7f66c233eee4e7147f0503cc4179a5047668f198b69aac1a715480602df33c8383ba3b9cd179c647dbb5d5d1bb20c9bec9d933d75ae6e9c256df9eef4ae2ea062583b6619d45f2fa684d4fb6535c381478c2204e2f448018e9fcc4184d40c3fd02f8382c6f856be5ccbba36a81c7789efd1ebc4b71f99dbb7c002787f9b2cd4a20dc6444b808dfb8654b00afbd1f6595668de0b52dbefa298ab69687a50e"),
	})
}

func (s *drbgSuite) TestHMAC66_SHA512_14(c *C) {
	s.testHMAC66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e9e4f59e1a5fd43acbe20923907227b2790efd1a2118106b1e4823588c525423"),
		nonce:           decodeHexString(c, "fff1f2e2ac117af8b2cb023f0dd6c6ea"),
		personalization: decodeHexString(c, "0a4c2df69d6c69df0a9c58ab7c886ed9db294f5fe98eb066fde543b409ee91e0"),
		expected:        decodeHexString(c, "ae35e947a538e7da73f944b4dea689c064b144b753fe597369e58ec4868099c0f000995949e82dc3e5c00555a2cfe48c8a87e87ae5e7402e2b1679e413cc556f08796269ef3ea83d6a49116349a31710964fb2f936cccf249472eab3267cc1ca0073ff4d964eefc82dd1559c3737661f8b206757a64c756680fb7ab6be8cb433b93f21a04c1e99c777ac26c1f34918794085ee593ca27ae991c53d141e52f90e7872bbb036dce78e6a33e2d638360f9c15d5746d6ff13c1bcdff1cd01749fa51c3c72e68c0ce57423d4915abe84c15cfb3301d0c3b8ffc6a1962c1fd981790fa2a3da60d70e8e8557e4b2e7458ad85f5141ad46e1db751893e8327c8197571e8"),
	})
}

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

func (s *drbgSuite) TestHMAC68_SHA512_0(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "dc01767ed6527b8775e99fd5d46dd33db0ec2ebb393acf59b080510a657954ba"),
		nonce:           decodeHexString(c, "174e0ed454d1b57021fa980f4597ea25"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3de906b138662897b8a5aa00d8cfaa364bf70143d1de088a6f38b610c8f4d2a20c107c9f6d277850fa5f50007744f90cda0e20e3b140f9aac249a43ece99c574245ced90e6023ff5bf5bacee6656866db3fd72a209c79fd9829e3c63a7f46f0d31398e189331f93ec97ff1554bf0739c18abc1cc1dca1d8a8a5ab243b7355223ea6eeaddccc0972f23a03291b28af9303c21c0a1417529471c6adeaacc659554e8619b03fe6112de5c72162dc6e1039cf05141fa88be6abddcd2f312167e86773e52e73336c6404b44820bdc14ffa6f0e8f7149da33743fbd2c89dbd0e75b6bd9ce7703b337031ab51f5137fe1508567340fd11bf4b51f34032385f1287d4af1"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_1(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "197c8b09c20500b2ff9095142c4629becd3a131ed17b99940ab31a53762226ba"),
		nonce:           decodeHexString(c, "4579a3858564901928fed2a75c98f32f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c33b2418bf4d66f49ad1c05102686c65613cc3602d74aa4e5c611873a337c0fffc4c8ccba9c5ab56c3c9cdfd9be3c0da039bf08442cf2ed4af5a9fdbedf0d66001192bca2a2a5dd5a49cf159e2a5ff00066eec08b99312f84033e6e6f24bc5d908cd9d19e6314bfebb98bdf431c9779d0ee7d15cf9ee7e9baefddc6c6625500911d2810a0ec794e28eefcd0fd76590419933e1a1e077cb2860975762926eb206e1eee8f1a6eeba762d7ff6056a37c56649b034af7c976432cc63e672dfd4b564bfd4898de6ae7944789199e700c64a78ecd1b841d206a7c523040f240001829363809569dc5e90762c5c63a5147fdcf6f31beb60151ed54637c73d6df4a93aed"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_2(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "dfe546e4148a5d0107f3dc9f735936d87f5ffbd694158d140ff04fce96785e93"),
		nonce:           decodeHexString(c, "943f71ec131f0d6abe5098a00a93321f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8290a703f35fcec670b1239fee36a0059fa0b3a355cda9bc1f824ec616107edf4f101d9d8e7979892ae17a3cedfbc9c13a938335d61414f20308a4afb94846bc8ef1729cd35fca10f0bb975cfb554f8723cc51e9356d13c083fd5954a0e4346823dcd5b5ebcb0e21b788609bd88fe40354dfcdecbdd97d08af772351cb919e3d19ee65444f1269dd790cdac4ee88b026770eaf75c8018cfb7526a1c4efbb9a870287e6a0ed8dc8e67124feba54baefe721ce87da82743e4f185b7f591ef67506ad43c50df769dcb68965808d246f294461d4a55c9a148998572e6ab52bf574a50cc60129b1bbadde86695e3c5d4d21ba7f9e4beb432a39ba85dce836b16452a2"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_3(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f81566d48684aa031fa29e7a8c759dd08f6666b13692776361ece56e92bc3c2a"),
		nonce:           decodeHexString(c, "40b04432b8979914f3e0e19b9d3c01b6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1799a737c4436d32e8ea5662541c2ff628c2f293aaa7a463f6566e52d78782c88a34c505e36f29f351d2063880b5b8c3fc99ed9e02ee62496649e1401b1e151fcdbb3dc76f13b209044fa205d050603fb1197da58e7a1a3c3edc8c4b6adc230239a120b71baa6a272624c67f0eafbe6daa71c681eaa67b47227daa1ba058f399440c421dde47ec1b8211d5c57c7bb82c7448a3491b6209a450ac1e0856363fff9afecdb065051021c6b9f0e7a010d1022af4ad396ad1d164894e1c077fd83b71d55c12f9b41bfec2023998f43a2457cd55bd0fdf0a68258fde7a6fa13beb1070a5183145a2d7b88786b443deabd15e594dea1f1eb72d556178e0c74701773739"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_4(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "36afbb34419c0396505235be6de69861e8902bf1c70a3e2836b97998cbac8b38"),
		nonce:           decodeHexString(c, "d45450d4c1e1c3cc4be7379b0938cc37"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e1dc7fb2c7d11f53a88520928b127cc0e234c1ce3d593bb05967ab2600a1d66b0fb32e70b9985db2f6c14999f3b9faccb72c318e07f9d7770f3a0ed33f2f822e36a5db463cfadbaaab7ec75e773e8d4b5497ac104e23e199e1284c4f1f9e75322ebecbe659bd564ed808f815ed25317a7e5c770eaa40b63a529634a0cde0eb1bab761a91ef260eb4cd2c5e2535d8b51d272ea7251de7c9741c9b3d1ab95d1fafc7ecda61aa8aba1afe220c0fdf3cb22234538c1d47fd0921244b11b55e54aaec9e883ce542f238aa1f746c09be9bc8b4c09116730269115cc649c1abf323f3c1beab4601d402a49d35763f1ad49c7783faccf1bdeafc02beb34a6d247b6ff33c"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_5(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5eb9dd00469067be59bd445b04152b85576725c3395d7c413c723990b9f56000"),
		nonce:           decodeHexString(c, "54b1b9129eca3d2db0c63e4467a495b9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2fa8957e56449eeb60e0cb78e9a00a31842b821ac67e8c883f6be54e8134666b30011f6ca692f4694d663e8542ec824369faeedd281ad710110687092cff0f72990ed35cd942fc5626bd58bd4ca6a5043cce4db8d4e1dec5924bc9f9f2471b1ebc952c73629e3e53bd88b432b6930fd33e9c03daba84205793cc6c34d3e52f244efcb0e0b6335d14dbc4941bad32a8c69d750a7a91509a0ac714d80b2a0e28e14e02e5e5785906b94fa153b7abd1e0dec4b4fd00c073ab6acb6f705c07f8d7239caf3809109c78461d7ddb334edd0ef9902861ef98b7d7ac418ed9c24d2fb7c4414e25794ee5165feac3611caab8945541af42f77cbd0d7c118a077ade186972"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_6(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "42f551fb6533137f40758d00c3b5b81058281f7cbc18ba5f40aeddd31065ec7b"),
		nonce:           decodeHexString(c, "2cee96d6c3eef1c9ed1485cca77725a7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3fd4f97eedccf2e2eddb37caaaae3433e5585c9fddf32aa601c68338554ec84f16aadb8e808e194c4f090defd53ba7c362aa70cdaf8c014543f4b11ef2a3a70f804422242d646a0fa234ac64719cdd7589835d49eb0bd2ada4b6ee458400974dafd17b43a9e5515495d0ac650fbce449e79db7842815beac2137d57b6edcf121389861d85b9ffe68143cc06e4afa9cd9639b45b310acac933160d7f0699a6df9e04b156acb02c43d5d729474bd28559de2f02192dacdd790ac550bd6c9afefae91ae3924494dfae1ce356a7bcb188da65be4eb0c356516246ef1f4e031d6247c61790b267dbf8775261e11cdae2bf7998bbce7c15c7ba5bb6b7857e7494dcd87"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_7(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a9e9d5d06014d240d427ff79fd0c6d314b5d4af6fac5c0c238a62f9224b3edc0"),
		nonce:           decodeHexString(c, "b01fe9f159783d29824bf8055c646c93"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "60d46361f9b1834eb8c103422f3cbdfb243120cdeef6270806039931112aa45d4baa38791cca6b5eeff982a3aa7a2b2627502365644e4a6dc5a868785296bf3ca101e9bab6bd4f03b2adcc870ff9987afeddd9e6ba1edcba09f79192adef6b561c5c36dbe8aeb196da9a2384259583f6d40aeb54197f0291e5b70a34aa559558358b88f5786cd5822a1523dbbed83314882c5083aead0ef17c2ca94e7322142706cac212a5521f6d4f881ac61128b13e327f4b5e81c6bf2649b01b40645edb9aca61ebc58290db9f46eac6cb475b5c3a9e481a80cd98f548031c99e46f41d85456fa87f824e8164b408dcf1aa14fa3f9ff236f11e1ebc86c3dfe0e97e5d60018"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_8(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a160a99bc9baef7d5ec8be75bd005d094e431f555fe4d49d3f1f41fcb3a07736"),
		nonce:           decodeHexString(c, "b5d170cc69ee34ee7ba73f35646512cf"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ce66754bd42cfe4ad5fbb8a0283cffa51dbd56da7326786ed7c5eb372a046dfb9ef6906c438eee9a21b78327073301c994353c42ad58db488e28004cdbf5c0cc9bfe75aad76be3c81fd72601fccbd580c2186d92ecdb25dc13973337f4876d6aabeeafe1604f1cbd5fbd804a6b15ee1e3d9987986941a4ea51c2d461364276913c16c580e12f51bf4444b5c0e4ff9f4b797cb850a9cc562c4e39e3240a196816638c5e62525f880dd57b1808c54d59f55b4f92d0706b08b25b77284544c91ee987452849d019a65a38ffe3511e0431e7be6207e88a1cfd989185906815fbd4c421e31c7f6cde9ed3139a87a5e08930e44aad1294451e0ad8f89978a1379cf7f3"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_9(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9ec905ee3602c95906f6084b8cf69a8be76d268652035370cfdf13a871a85f86"),
		nonce:           decodeHexString(c, "a7764c145e668435e219dd8cf9cab23f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1996b8d7bf0d43454d61239147a8b32a27d73e0b1c1d8bbf8ab5b751bba9cc813d8be80c0ac7d71ce30bbd5ff5b1b17c12413a169af3d081f8ab1739048a0d2c1c2e24c5e44b0dd7225eeb227610af83a4a271fc31da57213eb6d938edcc2da5e712210202a09020ae24967e271677adeb2dfe6347cb6573e413dc20ae7ebd151acc91a255dc5153be1f6dfbaa4f2b7704d557592961d9847c5d8302469b02e3ca07cf331b9e61b9ec64efd32f3405319506b772fee3aa1d2ac2d70303d47e193e0e1ac9c8565861a5d7f62e515d61f770e2ab3fed00b3f9e713058322586914d69491fb4515cb2c5d21cf07c710cbc4ce362383d084c857e73f62c58f76567b"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_10(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8dbf9b093d9a190ea8d588a16b5ff2f72caa500a3cd55e0a0b7aea0ca5c41731"),
		nonce:           decodeHexString(c, "a5087104d6327761d61843ef45cbbe88"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4b4ed879c2b1980112e0f4e627eff8f8c7d210f2606aaa2f7d26422c3e4dd3a66623ee501b702ae194b7ac258613e87f248bf49b40d0df4427142185d2e94b8e14570a00efcaf59ed542454f250475cfda7a98d1c1450978336f613f704dd9cb87b132ab60f24a51a1e1d815ab7e1d96967bb255dc5ac351238053602fd774b9223e7f079a423ef7b0a8ec9a71e222825ebe3c817ded31c2e6c68e9ae26feec7e75fd04157f60a25ad6c13734ea8ffcbf426dd61f4adc1a15e0693b420afc3035f7c847766430792b4fc78a32377a808c82ca7a2abc3c8370a3ff192014ffc819b5e842596cfc46d0c79546ea429f744f5b1acf603e65fc472d592ca07c8d19e"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_11(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "222e8db3a1b1a95497aa0a141277d9c9c643d0cae5f47d1f58cc15c8120cefc4"),
		nonce:           decodeHexString(c, "5836e4a886163ee0b2966ae82117b48e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e28b5015a08bb7b427bb90d734089a277eb749803280d5edd578fd4ab6bf48c3c6ad69176c116b3d98452e377c08bc4c2d06f552db3258c0c4062a498e22c438114dd312353e47444f4a3e393109fa4a33fd183b599ac0f7290726f9589f24a266e6214dbd0a165e22b277c88047ce9aba14f0b0912920560c89c658997590b4e18e7bd5989e956b0a4a05791c920adda109c598458209965fac49ba908be37301ae4f32691334975860014d63cd8cb4e12ea1052ab6b6fbf2728caa0d14321735a0a5064fa134276b7617bd081938dddd2fa5380284be2b16874b3739748d0aaa79c420d1a48a1ef860dec60e9a1ee0348854670eb289a36c6c844ec37164a2"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_12(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c648e453f220fd4568476502b7260069174cd037157de9021346e81695a0f310"),
		nonce:           decodeHexString(c, "f38c95d2dd89f2f83a26125306249bce"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "43a9a34282ff596a085abba35356affec9178ede69c2abb61b6f697f8e88c1c89a1585a246e1ba6bab4f9ef2d886bf570e7e17b587bb5a65bdce7c23372eff0a56e66689a000c0d30620678accc0196eca5c3b28d2d7ab89e8919e8ca6cf646797b282062d7c61dc6bbb540b635117c75bc5184f821375b9a03a67f43675158a8a528b730ae0c1f35839a2301f38c229d40890efb10a68f727f8b92064d82dcabbceb764311a1ee66010b5e61cf1b68c2ccf20d15d8d50601f91bb75c5a86448eb230de12d598ddf15ba5ad9b65ddf9c3e6ffdc3708c1768a4cc2378e0c5dc16b9321a5929157473108ea4fc1d78825a6f8815d7a392572ac0e6334b496a218a"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_13(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "19306c387a4da3de2f76013cd9c584dcf5e91a85a6dd35c0f25f2862a785bc0e"),
		nonce:           decodeHexString(c, "ca0ef920312aa7c7dbcc510f9fd0c29a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9e13d3d914923d8a6f3d182cb8b17bcaa961ac018af69a716fe9c95f091c7e15877892e001e2b6d656306cd8359a96638bb4a56f156b4a80a1ac65d2cd284c1374c7b54cce9718f364d40a6bf90ae9ed8b8fad347212cc4546b4ca8e19c3119b2723c190d705bc56e3b2b34e6340ffe919d94dc531d7ef5fd69e6aaacad96a1b2c5278c8735f2caebdd3ba69a779a3c8b53d03428221307eb026f9269d924d5db129c8b6c680000bf868cf65a6732975dfd31276cfd96bb98727b55470ec9391f345c1c2371b3333f5b4ebed9910f72e638dae62bab13caf126fd0e90de9c51709aa3c6975a915b34f97f0598cadf90aca49e961dc5b2b32afaf0801fe481561"),
	})
}

func (s *drbgSuite) TestHMAC68_SHA512_14(c *C) {
	s.testHMAC68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1436be35237c34bac5b5b36b24c998380883fb52621daa420112cb57bc84745c"),
		nonce:           decodeHexString(c, "ed884f91a94c1b0a51f316df776283af"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c74ce568f0c465e79ef3700857cc8857b74ec8c075cada3f2698ff69569318b130b5b079ac5b69814d057097b0a107a546b011db601b2f7aa1708effd6479f383d7d484a5df76b63f1419eb360991475b2cd97590a1887487a76cd6fde7764cba5f101e4614c635ba7b1e18724a0a8fb39ca0948bffc441b6aa0216cf3c28ae6c06a24ad1bbe68970e06884d3b68325a3d7c1dce9a2fe87d565dccdcee7c62ed32b577763f510f0029a99530209628359bedf4bbfed1a13c222692d8cae60ca736df834a6e316db27642ed5839d2e11716a5c06e8d067e8548d7ac0687da801d292e2a6f414d7470d2e72261188347878d18e00fab3d4c15cb4c4a73cf963437"),
	})
}

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

func (s *drbgSuite) TestHMAC70_SHA512_0(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c07c9e1d2a0f0b5dc0b4e9a0cd47caba5d2669e393656d3bbb8830e3a1d456f6"),
		nonce:           decodeHexString(c, "c925484deeb0c02e1ec7a38ef5e36794"),
		personalization: decodeHexString(c, "6252125662bf914498ec710dd31f0605278245e955e9533099ea9afb0ad6ef63"),
		expected:        decodeHexString(c, "ea3ee991336bf6581121965ff6a6283014f5c523d1dee5dc80e2721eb83a45b987d3a8abfa55ee72ed6cc2068588a6b8caf25fec88ab5f85ac642ba24e8414ca1e707e3d10f7908b186a82db2b68ce58fb47b670730bad51f8680d59e179f032de3a0f79723b933673264098fb1ec8f3793eceec7131cdd562898fa091571df4cd5e32026e7889fc8b659e90eab98baa2cb43096c352e58066ab913f05e728136a83d24e76b41c21ab6822c4ca4c04e14733a1dfd2b71a270b528346315609139005194b7f3d07bf28108af97f09fb374a57bb9aa7680cb9e78e2160c972e938ffcbabf12b971011ab7c1a91703d3c1c394463d907545c82623a3ae1d2af3667"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_1(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "ef6b4f56c5db9f685e6ec380c464a4dbb95cf606f084586c58672b15d053d64a"),
		nonce:           decodeHexString(c, "e16ff3c7a87dcefd6e10de7911ca6ed9"),
		personalization: decodeHexString(c, "50802dacbd92284106b984a2e396fe6bb812d99854e400089aa90cd5f144269c"),
		expected:        decodeHexString(c, "879ebdba3b1b84207f6fec1a1634ca18367ceb5965f19e27e5ff68560a37604b9735adfc9afefe54a5fa2dad2518256d3c1df4df770f674bb7344b10930d1216af13a34605177f083b4e33709681def353db5af5a299736697222ce8b642e11c745ae8f0cd1b76f4ef769982defc93c1c70ca94ceb83f8886859ead2f726e3fe2f4bca26af14cc7709143c45a6a5b958d91660ff8963fe17ef2a8a9de834021298368291e2a84be1ab767b360d2c949a97261d69886d6ab0722f45c95598cf3080cd1c80afefdcc671cdc5ddc447342226f17579b49811bc247be11aabf9cf7ebb3c792ba2ea78bc0a790bd100389acdc0b4fcbdc207a90397ff3cc1797ba3c2"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_2(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "dda85b63923ad8ce2bcb0b4b6b3a84a214b9002bb495c1ff8dd0c827e7a7666b"),
		nonce:           decodeHexString(c, "5a8694dcc941d12b4d493c19cd570de9"),
		personalization: decodeHexString(c, "2216173dfb01b06b657de3436d0664a388f808b60756149be8abdceee6f4cf2e"),
		expected:        decodeHexString(c, "9207bef177758af5c15d7d3966830b6ef24b4637b6add27942c6d424e2ea88f019c0461248d2617b9465a83b05dd41d7068a7a504c8db20ba0764e06b94b90c6bffa114fc60edd4800d5f58c423da2e50bf5da0726d33c26003711f12a7b0d6aed1011352a959d4bde66ab19102a18afd0a5fcfb609842592b91b00a287671d86779d53dc68e1d9cf60377319e338d3f55825b46bb5b7b98bd463ca8f15d2aca6085f213a51fb35d5dca650a27b4063089a354e6aa2e56898d638c2e344a3a0b4127a231236d2007a79e0020751f2b8a39319b98ec17b6c15a4223af59ea5c476f963fbf5169cbad65bb871819061df647a304fa3455efb7cb628c2dc208c208"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_3(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "dd3ad19720c1d6c4879fa48ae23714bca5a1d66c0954931869185b48dbce099f"),
		nonce:           decodeHexString(c, "48c5d647187ef550d19146ee9cb698f3"),
		personalization: decodeHexString(c, "18f7902106c00d137e6b15a4bed0b4accfe6646128ee8823ac669e24179303df"),
		expected:        decodeHexString(c, "98f4bf7e10872da726b3f51faeb78e7526dca37fb55a83b50b774e6104e451cbf7f369bc34373bc13812bbe7d85e0c1237ddd0d88894cc93610d9511b8c703aa337cb32a2a36f876cc262e2952fe9428b92c387705b6a0461e8b5c7674a69d6bc60db0566bf269c989ca014edf9e9a4b03179506cca38808f3f7cfadb64f3e803c343a86285fa12038acae76447185fd501d5a2e6d28fa115dee82b51dee3f3fbfe25e773d251a020f563aec137c70039b2fb19280dd6af9ff02b637bcbcd9e797f26106906f9592538f4c2a9dcd48f1ecb38f7c2ae448f21170ed80535ba1a8f54d75e4d716a848a27d49fd046862dda79f1988ba90e3ddf6b5986ff969488e"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_4(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5e2d0af8be964d1a61be969defc7f60a06814b957be5cd8ca15664f497794b71"),
		nonce:           decodeHexString(c, "2eae930008a2aabe1f198c85b8a8d6c0"),
		personalization: decodeHexString(c, "1199ca7cdaf509f81d91ffb82fde7c046ac4656d3b5dd0cf1074fb5038347e49"),
		expected:        decodeHexString(c, "88daeabbe4e2a2569535426d288b9ccbad2cd69560575ab7a41059f59f8cfcfbcd0e2014407cdb6704b017778d5212cb1ce4e32d644c3b41202013f56853be5339df4213982c4af9ecf7159354277e03618b7e43d1f0598e8989820d523f656bf1fb337b50c983c90b05f87f4f758f0f087bc6699332efc4674661362f6a503374016808ad6f40497e4bb0e114d42015725d9b19f864fc3c5c5c0ec00b8053a578538da3e137c0b4be7bf851f106e2d95fcdd7ebcb1375ad3c73c9873e70081f699adaf7d84ab7030e3b223170c051b8483f23159e98ec9220e84c0077dd6953d407dfb1e3748b3eed11e50ca7a39f89a003ebf69e803ee20d60a6ac192195d4"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_5(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "92ca3d101093735e51f6fd573831b25999b1a5ce1c097e4f77f4aafa6b4c80fe"),
		nonce:           decodeHexString(c, "d72dbca1fee829ae441d39da0465e172"),
		personalization: decodeHexString(c, "22e63e6682ce40e6680f2cc9d7a9ad1a596fc6415cf064e928bb1ab72df2db0d"),
		expected:        decodeHexString(c, "a5e34c0e957adb585c30195b1273b68d4cec0b345ed1bf59411733fc384d62d47ee2eede9fcd4e62781b7c2a03d5edc49d2d199f20a0942f26d97426e5c689bf7b6b81332ff8b4f9ec595e604a49c5752761c97b3d592ac04701c561a580460ff11351cb885c34834bc46d0584ff4fa9b449fbd9d03600dc1bd622c4e4940bb6a64f4ac7e71e8c23d52e1c348eff5b9b7f8b8f1b95682e53e8972238273956723dca7ba68e0e680d756d6acb4dab55d8a11e3c5b4c79d4b34905ab22c43c83dca629d84a14bb5bdaf18578b24d7c82b4661b4b17e77f733c9adbf798fbae707e7b73c812a60833d9c95d974e396cba4272f1310f6dc0ac1bf5d5a823f000d533"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_6(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e1d4f840d1a01cf5e3baf6eb6aab35c639f60571275f1c115eecad9ec2758f8b"),
		nonce:           decodeHexString(c, "f5c70fdd75c0aafbf443d897d31f181b"),
		personalization: decodeHexString(c, "1a4cc8a65d133ed5e0548f770277d0e3eadfff3c24f09e00f15f1f0ccee00d4f"),
		expected:        decodeHexString(c, "a194fa818179426cbd54eb333c2517054cdf917529d3a9e589f27dcdf99fe3c342b95f4f79806c236f786a38bbe110a8693563ab67ba6568b45e309a6d245b1f87ae2d48ab1d3ea36cae52eac12b44f4680f2d611ce9c72f56663fd1e36fe45aeaee8d4e996c1f7d38aaebb0b531e2d663108994ba31a2ce149d5a32452377e05dc4a413df8dfb10b3595df855e0e07c2a347331e871c0b00139bd0a2ecd715a4a5a4e85239f466c779d96f44de09142bc40f3a48390f9606d65386a214d99932b0ed3be2af18bb0de0d05e8a875334e62291ae6c0b91f39fc1586dded2d2fb318f2d26d843332218798faefe3e9e3425502efdf010d1dcbd32f6343f3c85f1b"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_7(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "53f51d0b68808fb3624fa264a1fd9256f59c248dbd04f90e516638f95f91f58a"),
		nonce:           decodeHexString(c, "67fe6aaf8f40159e194a0cff0162ded0"),
		personalization: decodeHexString(c, "6aa803389ba0af55905fd1873fffc6c9453034a363dba07bee0cae6f73254fec"),
		expected:        decodeHexString(c, "912f5656584c52f95a4a503e26c23b99fe2dd4b96fb03e8d86b29d780bb55a0086b3a77a67ab163c56abde4ceb6a68c4b06eba82371f587ed043739e12cd6e722a6d73d01495ed89e35dddc2b794ae7155179c609dc4f9a7edefcb4c92e1025aff94a9d24b7d84d70139051a5c1e6ecf2db9da2f6bbdfdcf613dc98f9008d444e5cb59b17dfa7caca4621568f897f77c77a5d85eb4f60465cf8f58cf5d37ffbab4d6b1a56136ad14543e015ff7a225bacf8781525e96c3e31b8da29c6805572620feef74b20360764fbbdd06233f1a94905c378c66ce86066c12cb92f8375fbf14f4fb205de70ef7ed38b28932fe186bc10f6dda1c73c20e18718bc6b59b39f5"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_8(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "47369855076e8388e990cc50d9eabaccebb582e6c369a99b6060424fcc23494a"),
		nonce:           decodeHexString(c, "afc19984384c07a8fcb59c8e63ba97e5"),
		personalization: decodeHexString(c, "088a77b7655f59f2dba8fbb3aed15499e13342d66c7b0655cfb1b1395c725b44"),
		expected:        decodeHexString(c, "6f084fc8c0b936aaf49e1a98f3a96846735895ba71b246a837516b6c678b5f6a8b9a091fc6bab3307f428e97eaab850e5cd014e7fc356e2af6c8d673fa58c1bd201fd8be3f38759d109bd06d6452786d230700ceaccee38fb0de9dd05a5f9d0a64dc447ba63f92d93c58464f5a14026c4e2d83d8af8da039839552dac49fe50ca95fb38ef1dffd8ae4c1ba5640621c087118f8d71d69cca33cbcb58742a16eb90bdfa51238877e55bcdb018cba252e26f222272a6c267c28be26db945fb4f0cda1c0b4ca281fa2a85b2625504609fe86005b9e71237bf50c31cedf9e13ef022d6b348873d9f5eb3cb9a980e063d76c9e1baab412eafe3f6980e560fe6d8efcf8"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_9(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9770de601e4657b3746637e5599a79f4ba210bb03d8805fba3fa1f2f26737592"),
		nonce:           decodeHexString(c, "148dc9db3e1e58a31fc21e596dec2324"),
		personalization: decodeHexString(c, "5bffe17060a51fe205385ac70c9634873cee14fef7ce2fa8970f7e9ffba450f8"),
		expected:        decodeHexString(c, "30339e731f1f4fc03c326affccc77c23678f6ddfda53b944d9ccf8429b4ff06b36f77e5e0fc378d083c9381e8de0a24285aa3b17dfe2ce7f3fe591afdc0e9a91e9a90f69566d104bac8086781e543487f652d77f836462b01a3c5f1e8208ec43f6f7aa78bced28b9de9b1de36a468630966c0762e31f6fb8b0d07a86210ec395aac19c5a4f3661c9f7de171106f656f705ef14e7f30d3bce37335ad53093f5dfc1971c39a0fece8259800d1b022de76cf250bf5d2a22ff62227a8a4176f9c8308bfae7fa68c1fbe7b2027254c39a161ba4280e38785f664afeaa3ab2df3c99c28939378c1864282715d16335c8e75a085d7f389aeda6c26c331683fce2d01ace"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_10(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "381ec64f6818df09b9295dae3adabcd409e6302d5434f15f37ec9e5223f08a05"),
		nonce:           decodeHexString(c, "deabba7b30c167c6e6876b63983163a9"),
		personalization: decodeHexString(c, "698f68deb716fa4258dfa3869119bfa258b0645f9742bcc362988251276659fc"),
		expected:        decodeHexString(c, "3533a7cf3cc1aa7b16ce6be85d863b65734649b6668fd63dcbfa92a320af14b6f2bd01008e6a7a2232f36b4891a566723d63c4915ecc00915c96b0f50bc999d3ad4783b8e3d6157b5204d46b2d709479a2c5059ff8e78cc156fa8b57cd51ecde4551263397bf097a3d659bd257c9b1b3ace8d062007ef7595b2a25104aa50aeaa870714b47174e4553af3ae88be087e821bcf44ea0770cc8591a115f47d89a712fcc6707380c48a5b121c15cae84acff7adcf5fbc1d9abd47eade80e6eee46246a28b5da9ff4521ddfc1cb6b34d1ab4ee79fa18eba29a1bc7c10bde98653e732918b6176ad764f3ea31543240beb406c473f1e60f6b20ab383be850ddf581cab"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_11(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "93c686ac3e6a7d9a4b70fa7152354f3eab1641bc3afa7b4fe4629d94613d359d"),
		nonce:           decodeHexString(c, "2c0b9cfc3c188fd6e16721ab5186626b"),
		personalization: decodeHexString(c, "86602b7ab3e2c375c39eb6419b3e43463ac13824ca92f138f8d4f774f81a93e8"),
		expected:        decodeHexString(c, "47abfa2d8ae584ef51c493c4f852c9d198b64a6ab238ad10fad1ae468d4b79fdbd5f37b217e91992dfef34ecc1198218ab9d7cfdcafa7fd53aec3bf4c04be52f43d660805f559ac5d9a6b7a27fa6a9799bdc7a00adb6617816060691391070f102c134d0fd1687148413efd2d4215ea5e2fa18d270fba542069634f2255713466a4086c09318043934a884ee2a1dfea4a77017883402a222d5ac3bd4dbfefa1131cab7f2590d339e848065a82f6a3cb366cfa0d6a8582cf99d32e89473cf7a7d2db63e964e48557a1210499beddd73073028cabddf737a8ab9b7ea17f4ed7bfb94c80f03f5f0e5ea64f4b59eb4b3dfa0fc1701c3a2fa7e588b0d4e9586560256"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_12(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3aeefe3b75307aff285d3fe8907f123a9fbb748232a11ef6bda3c12c86f20228"),
		nonce:           decodeHexString(c, "98de460f9c004152bf9920414759fc2f"),
		personalization: decodeHexString(c, "e3c7a127cfd509cd8944f762c5991d9de53c7e37673f2208486c3bbf8ab50b98"),
		expected:        decodeHexString(c, "10b72d019296b20db00cc383abdbaa2b69bb4cf3296c4fbf82fdcea190d09115455cbc79bc2a373dc04fa52758fd21e1012e86f4b4ff6ccad0dfa1e5a27b619e62fece2eb9b6e65c5aa5fe22867304d46971a6365e33f60821cbec79546010433c7771e911a15c2726ad039680011bba5b6779bf107b98c596e4acc36de55e8db936e512318c051950c60f1ff4273bae501b2b325f375c3ec10a4f0d076e6be9a146851e661465692170037b01c49d17ee9c8e42545c5d6ab58ba1fa2c7322e735bf70c1c8266673e8dad1cca8e6cfa1e601be95917184677b7534dfd2c6f1640821cc675794b29fcc71df517cee4ae6efe95d2fd866939aca4400ea374a8acd"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_13(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "bee32aca74973a8b63b36cd8ac04a68f36484202c6249ba92cd33a1379ee2e6c"),
		nonce:           decodeHexString(c, "a5d175205ef0278c9df481f882d482ad"),
		personalization: decodeHexString(c, "ac5f8a3e150849a818d0170bcc772e0397b7c70cca37a466fb774bca78e4d708"),
		expected:        decodeHexString(c, "22104a4798cdec3742e654aaca8122f69437867fad058e34e840bf94d460b61e2d7aeb653ce8c8723c00df1b4f77eff3a70345c1a2b3fd601075667b5cddeec75bdea28a5066833f40b50d7350b12a5cd93afcf19b353d06083acdd05f8c8b64542c3ab2b4ae1283df7fcdf747d3b0bbb3ec3345a0f8fcd156692a4a2e6d887c8f3da7289282865f4d75e0ac46cf06b4a93fc0f7ef19aab22290104095cc1f94b03688c7b3712491b9ab2990c204120a22e6b08e1bcb3ea7550262fca5bebf28b4e062e62085ca87f96d259fc17da8cc0f30236265668e2590a68e8028417e4ba0edc1622a6f1b4d8bdf9519aab87beb2f89888e8b3bd6a0d42107653a69427f"),
	})
}

func (s *drbgSuite) TestHMAC70_SHA512_14(c *C) {
	s.testHMAC70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "cba112f4a75eb3dadb31a728f3ea66ee4671e971a313e6516ab3b3890f7432de"),
		nonce:           decodeHexString(c, "70916df78dd9ea799230435b3e48686b"),
		personalization: decodeHexString(c, "bf755696adb9c92839798798f836b063cbbe987f0163ef3f4a97222c888f5da0"),
		expected:        decodeHexString(c, "411cd8e76e711447e8a93ca95aa3aac5e51f559d65a8385a15e71877ac8472a347d9d453bd6761655711ce2133900d28e41cfd1292d28848646e5cbdcac1e60e49e62aab169b1735e701e38d65ccc073f277972ca85444dea86c19c0c08317dbbeca4fbd5d4295c9da71b89623d0028cebf1ab68fd0aef5b37e76e2e0b3e7f72eee04c01b6afb180b1fa0c370975526b788ec4db076a16a798671451af3e20d323684e232a25d78aaa8ee43f734f1555bf0a324053c7c895dc3e098621e189962a914f486cd7a5ff330f39316afb762b1a06cf8b593ca00d7edf739e2e6827a7af662f33bb09fad09d6bdb3a565f2bd32512c79927d390c79a1cc6db968b13a0"),
	})
}

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

func (s *drbgSuite) TestHMAC72_SHA512_0(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b8986abc6b50516023dec0e7781e93b4b03848dde5e52228d294554df1c2bb00"),
		nonce:           decodeHexString(c, "f33c24a6daeac094c1ccd55cf361977e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "95b7f29293e4a8f8482708020c7ecd95dcf05cdb3df4a4483b686419c74582b9e98edebf5ddc6bbf9814f17f6d46eaa90cf3c13ee1747377a882483729b3adc9cfb3f7d4c0271347521aba7396f100bfd57083718effdc69930a6ab962afea0275c667c7152f088f2019c44b416eab94ff01c243b158676068e4fe44168073e30167a57a4ff8cf8010cb3bff991f4e93e70db1e37f40a7a82d4faccc3be32b9135d027d95ac543b632a310620a02e3b470a254e9dc98c4e99e0136a104312639809fe0dd94ab03a2eeeaa43ad232e3793b4aa7b0b78767d11c85d2f87f7849ee2d7189f1e4e5b8b08bac8464454350f1e06e7b7a5570071521a7b7b3b722b8a2"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_1(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "91c55c82bbd72be09529ee915eb2c9cd13c7d2d892aa2d4bfefb01e427c348d7"),
		nonce:           decodeHexString(c, "9d117b412eb74a7959bae27760f40e2f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "63ccf23c51a7a4b0c2ac4491b8d38ec2489236597a554da8436f5b4dc1eba5087f8bc8a4f01ae07bee9e98e571de0120b7b6d2f6dcce99993a669437e52b2b2c98b0f63db9f724b42dd182fadb69be98ace37f12e1d27ef95f8a3018d8948a20c6b45e3931f659a27ae20231ee323d45d8de5ac6d8464a2712d73cf5241d0040c87129be676689da5f90bd50f5617baf6986d1b9d2f691f6bec73508b82164384b65472ca5f0e6390bd983c8ec75a3707a9c019ab559a7a6e89ddcb9254a89bd413a037948b94e6de4b191a251366de1fd8813b5dad261545f868ec907d0525f1201c62bf1a673b901b3d9d44a362f3d2c7cc3a760b2c9948764f8504cb29a69"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_2(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "dde440ac558146a64d1e2c2f87eb87478e0bbd74e136e689f3d265256e241477"),
		nonce:           decodeHexString(c, "fff859ca9364614d9b5863eb66241c8d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "106f18c8ed2c030f51b4e93558dafe67172b90d87ec55cf2bbe05ae4e5b4aa1ccc48d8e394474c7df81a1c251fc7e3e6ab3c19dfce7c295f254bf11cd7b111b78ccd711fd87eb3befe8fd7eac04bc74c9c5973d4d1e49a6906fb89bcc7596a2d5068aeb44750029a2527ebca0be10a1a1cf6bfb07d76424fcaaff1a363723de6b4c0e5dc571479bfaf2867fa367d7d959b948f45b195ec62132223170f8fd4afcedc7a00d27e61fbf700f49d75dbecc39a9ae57e5f3912afcc5332e079474c4b9e378583c55e3b6f073701d887b2eca9bd847b6465318b1a449e3eb10b0471a7777253dd183c61805b0d8014467c6387fc32d96d4eb52ba83d3db2f28ee05a2b"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_3(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1345c9f6856380372ce69dfeac4ef92df722f03ecc518641706a051745da310c"),
		nonce:           decodeHexString(c, "3bc180fbc657cef9407b75d1b54cb1e7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c83d6366f2f83627b33b3c656a259007a0077cc81b898dd4d61df0c29a2373fa40437510f34a5752e25d70641936f47a37c760a653372e557220d2315815542b7146f4aeb3ee9f9ae20ffd438e252240d8b2e08b0797d4cb1e066003b76dcc678adb112a82b7a3ff1bf8c65452b302571d5fc02ad3f32272a6a386e3c977e756ecaf2d3d02e8cc093b862897ce2e5e948dd8f734d55fb17b07c16d6e709d79e6e5f55f9ecbe6e273a17d45822ecd0ffbc3c6c414a0f9e48e47a93fe851f95034bf26dcbbd1ceb9393eddd6af5532b4890b492217fe1f88befd804b6ee1dbd4deafe0d267ebb3d3b8811ef3a56cd6a3de86cce946640857a30f2f50bf2b49cd81"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_4(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d732d597e8a0422d76f6e50efa36e3730f59e3ecf79e315417a51f227541c05d"),
		nonce:           decodeHexString(c, "def492adecfd386c3dd0182ffef8ffb4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ce4473c4d793faf305df6e140dc003789a07a30baf67ec1536f7aa9a7cc1f471a04bb9572136c171de8db565f2699136e27b99df40edda1feffcc2dc69105dc1cc28ed89b16043e11e4bb3d5d7f6a1c2af9a2682c50059ecfe1703aa75246f6e0f6059c3011c52a572851a9b6a833aeb9ccf2849dd17fbc9e83a038462ec9ba2237ae49abd362d3e8741bac32785296ddd9fdf65686123f8bdd880299a491e9236353321bb61251582c2a101a236b94656af99ea28697369e5e94b00945f8a78407b9a8271f3e2ab4c782c13a5e5be75537adc659ab2d163dc126460e9f6985dac8a43fdae67502239c85f634fe48064222ab8c3e74e71f8170a4c1c6c5f5951"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_5(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5c03a20629e0853b273a8c5e8f89203740133523221903a50b03ba6234d6625c"),
		nonce:           decodeHexString(c, "45501a3fb480211f9d2b905ea7594986"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5faf1daeb0830553498d82ac172c0772d8dd27da798244ab2c6757b52e0e0a296778fdd919b39878e97a22db985d2c6d68b67b73e6e43fa9fce011500aa9145ba44b118ceca3d563281fa4eee23f7664d07f1882ee5979974ad726d37f43bee6ee7a16e033116c4ccebf1f65a859754716c43b98021bd588c79bfb1926db0c0211f7461be4b273f1a762fa978b04151709734c8d6429c9cb2dfb25784c9576847c48433f7b97675acb5df1433509f074e0877bbbd4e85aee338c734e53f06ef895f62224333465c35e6edbe0075d9daf3c0c8e1bf690460bd716792a6f78f0f47a408734317f6ad5b1d48754c24faba2579bb49db0582dd4ea5e2b9ccfda0579"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_6(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "ceb630090ef9282f160d091a8e72b664783dc3fb75991f3ae1f7c6f73a2af906"),
		nonce:           decodeHexString(c, "7c00f71bdf80b23077f1f5b023c6e2d3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2c8416d3b2e9a4d1d613b5e15d8a11d47893a625cede12d0a72b2b3bc51a20898fa3ba2277b5a6aaf1533cf89de5bda5a4718a303a6e34ae7faa1ab282b96057459a743be70c4d966824ebdf872682ac4a28d24ccec49c5a8e001e33bf56f01a0d33c11669d75133e8711b763463e40462a78fec1f92859306c3515986a56aa3834dc6e9fb6adf4c59519f288c80519491f1c0f3ce10d06058ded3ac519918156427884b431bbc13d3aca7d10e0674733c55f727e18d84a5de635d92fed7bd08957434367e803fc2c8f33cf41068bbcba158bb28dc0913ad6456c3f5208413795909c47e375292b7d4e2e23a68df5ae3c5850b18b216991079ae32a211c95da0"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_7(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "76b7040ddaf267ec9336ca11549bf3ca5b7bb0a8e5f9f5d8590ac8b6cf7ea1f1"),
		nonce:           decodeHexString(c, "0dbc66c634c191cae0b2f868cd1e3ad6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2895076c2ab15efb5ae7d61fe578f78301bd35cefd33f1e752a5bcb18a65c197479efee3b262277bc7af37bb6b3a2e18a2e801be374745eaffe26064d0dfdf7fcb173ab4ab5ad3bbf99c27a90cd4fc874b0dfb729981ec0d0087594d191f353f454e8e764b920630b4a9821f1137164f50f5d29a3b2d85c592d6a01bd3d3647cfa0e3b3c010039b91d567f8e8f71bf35b23bca871805ea6a3148189c28e703d4f87e34fe52d759019994b7ffd6aedfd4eee6f05c96a46bb7a3550967c7fd016538c6fd35708b4f74b6c4505e0af52a221af880d89be0ad1e077c94e9321608a11d4296c3d2506c6ed3dd7497934068604bc3f3d8dfc7590f78c88ee6bcac3ab9"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_8(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "576e23bd76a4db151397ba4f88fdd359aa2bbfbde4d1f5faa3341ef472ca552b"),
		nonce:           decodeHexString(c, "49e936bf613e20debe5dd21c69109806"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bc35bdf36345602ddc9659401358ac23b4077e3b27e2655d521c6c41ca8b3e895f572a175e6916a38a6844cd5b7004b5fd30972bb2ecaa1492c694fc951c84b782b3acbf5e4e492d200ff5f0e445d0a0a0e6c98a8b9af6e29dd22a4947bf3476c04112d157636acf3f01286bfa9326b0c6c1b150273434349a4e2fc4241d1c70e50c2b60552bb608b37825f5942467e407f8c97a0d41c6d6687b26a8518d3faf08fd2a2f2ad770d3111bc0d4feb84a17aa0e94fc21fcab1027c5dacb66c8b6a47d93aedfc2dd9736eeab146196f9f689627958886f2a59436f652e5385799cfd2a68b3fe7a9f5e3c3393113c07274d4779569dbc00ae688990354387c0bbd93d"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_9(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b1a179214be05736fa7347df9c48d5e232daa8bafb3d4f97200af85efcd4e3d7"),
		nonce:           decodeHexString(c, "45e7d8d1df1cce8e4c7b8440497523b8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "434171f3f7354d83fec4db3d3661c711af86509600390f65a9bba8e441012ac77fcdf571d8ccd0cfd251912ce649fc54635a058ae7ee7cb6f569b23f878ddba61a7697f460e38886b6c87748d681e92f0bf9fee069518c54e8ec68e97f8a37abb2ab3a52229486150d58d18d1adf04c0da18681aacffc5aa930c3917b363d5d09563a551d357c36f0a4cf8ae1ac19929483f38cdf6622e6920eb59f53f2adacc373d7de0d44fa850de05c8a6769cc62fa06b1613d8027d926858aac39b6caf61d2d29435aefd106910234b1cffc5cd44ea7c09980e0841c7de8cce4115d5aa570b842a66aef9e2fb79be1a5b80b4d8e16bf6580195d88855896a781f7818de65"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_10(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9246151f2e277d5a46b79d0974eee76bd6a47b4d0464e01c00155697bad29380"),
		nonce:           decodeHexString(c, "43e6b81c6860e213f058e63d2f3104cd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e72f3fc80993eb5c3cbd9b1f5012b53d33e7c7fb10cc4371ad20f1b80945e41b4e7114130fc5d86aa3a2869cc28c8401708d6a52fee5e8fa610ef5f1bed0b3e6392a9d238d714cb4d177858508b0623ca80d8458509b12e2b9bbb45482c68199a9fab0d3b3c9144d0685b88200720fc0a58095603851397ddfab4b1fdd014aa893fd3821680cfa9fdbd356a62cb59939401715cd2ac1f878fe78b4754a5f0c8860c6fbe554a95331264ae2b5f918fcaba26b32c1ee5dcd9722684e7f5d7f18c42a1855ab7e2b504c6af919d3fd2e3b0de2022afc88b8e9082fae2949389456f323ecf76ba43074de7256b00ecbc0ce278ecd8024c37e684c1af05814ee2ad34f"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_11(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2eaaed64e3c5b25e11944f9cb797c659faf2f4ca559d318b42bb6020ceca3928"),
		nonce:           decodeHexString(c, "b9cdacedb393b03add28bee49ebe58df"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ea1ac99b43133c3c5d6976cf339457798ac8f3f087b12539fa6b515257d91937750e3bf4bd800789422ae7d8fe7f117ebfe100ace693d25029a60d094cd9d8a35fbd19883f029446c61d38da1b11644c3c144694e66a8c082fdb1b84789a53cbeebc0b4261d441cc9c5875bac228b4ce26bc4fe4dcdac5deffb4e5067b20c70dbc24c3f240d92a405de0292db868da057f29797993ae95cfe3a1545892984123ba34b8fc7b3796012666d749c37f019144dc9b7b4143b3af16724641dbeba733ea1658e8d4ddd35025e3aa162ca9c53ba39aebcb4ad9674556fffa6e6c6e0294f6924e585bf7d0b2a3d96e849986a7ea567584e6cb5f05bf6042092a484e3da9"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_12(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "65b20851e9328b872e0cd0fb8c609f12bc533b8790273f32f4d87d1c652db2d2"),
		nonce:           decodeHexString(c, "dec1dc60443d1026ff9d6bf2da30786e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7dd708a70c37e5dbdc566137ee13a57d56ba0036f0b0a348aa07f468305cd41faa670a2e7bcc67549f96bad30f886ad093f7ff0598abcca9d6e92575d968aad1ba37513e60e3a4086d1e18770640eb4cb3941b26807f4eab0f83ff3d4a0e5aa386d15604f775951bd68f3000040560175466ab53f4e9dec4d2d9f06bc749d77b3f0bf7933ab7ddd991853036aff2a7426e3650204b1d91042a5671ba814c946276ecb6277ee51928bb78d2d1ffb3575f6663ecc654adf845a1476e5313c62e3f44d1cd5f3ff909bd1efd46ba6211327199cff6c260b221c198f87a70031b85893e91e47c7179116b646754886c72f6cdea09b19027763fe77192466c722f7122"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_13(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "99a904a6549341d4e0fed855a64efdea701858a6f17ff86ee53c267b6269f61b"),
		nonce:           decodeHexString(c, "4aea3da4fa7c79e41c60b8f75d3e043b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e256006dbd3e4f916687f875cbb071ba9acc6df7b416bb55ff5eacdbe96cbaa01d1e58e70d813012e5ec02f8c681884e5e80b9089c1b43e6189c257d98c13289c8e7029153f4d3b1981cfbadb42aafcca26f20de807b40c239d77ca7cd47f3f4c9e0f86e5304eed35aa3cb11fe41a313268c4654b4cc9b6ae4e044997e5aed8d433e691cc2d82ae725c76af08609a853cb9ed4ea468dd3dd4eb919b5e796102916fa217d9c3097d52fdb0a0985d04e4a8ca0fb13a1fa7152f6d6776e4f245b3c3593fb7ab6a464c2ca05be4e25b6ab48326030b4692438e316d2a5704d0dd577978c75c078101d6552d8ddab17d360c0fc962b66e763b2f856e49dad9caa941d"),
	})
}

func (s *drbgSuite) TestHMAC72_SHA512_14(c *C) {
	s.testHMAC72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f5ee32b61bd57a4a4d51309e846f636560a8bb2a576c65d37a3f715ff1878014"),
		nonce:           decodeHexString(c, "c638557dae4f9ab6e078c61d54d0f566"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e929e6c5c4a629c49fbb8623aea903ea129bb6484ed542cf940dd97bedc292e8bce924ef0cc57fa9b50b17b82618a840375874735560aea57e4e9701e4ecd0e812d1bf9fdecf67f431e4d7f6f455dfe4bd3b9a1553c574b0bfbc933a31580319c97682dd990c7081b711c2fa67a4eb54472be39f634c5dd901848c012c309c43f34d189a72c219acf8ca393d3f2cb292d62bb4d5e88f2b6e5e0422dafeac17415af623473f26ec24e65082123db9b9c00dbce3ca1942269fdf66f14add6c486a00527a39b050c2f3a6bc461e750f6e33236de198742284998bff98b7b3f6566e66679b3d8a1e63561fb5f8228867b8ff92230a9f2a6b9427821b6d55a359994d"),
	})
}

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

func (s *drbgSuite) TestHMAC74_SHA512_0(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "edb77aba67caabf66d3c8d413dc36566b7dd33c73d63e960ada87cdad9dadbee"),
		nonce:           decodeHexString(c, "c978a652b5e6ac2a190904bc40d6756e"),
		personalization: decodeHexString(c, "9b383b001677ddaf1170ad611a6290243deeee5d66800c4df57d9eadea09a427"),
		expected:        decodeHexString(c, "44c890c4ba73a795eedd9166cbde015048f77ff2c66fd44897f6336885bc7549e624f203ad2e89765859d1189d09658e19e4a30d929a896db54df1ad5c3fdd8b87b8e5f90bae3bd9e9810e3cefd816320a80aa8b2ddec800c422befceaaf438005ae24a35568047298b136f47d832fef5ef8a1d53e8a6f1f89ee49fc560f80112f7d40859ab8c7e2e4a4618da79b9968180e461a15e341a20f4e180ea4b2bf01815b161182a282c9524daa408fccad1e9801daa13f1d4804bdf396fa46bf3b0be4ca9405c7a637616212d96a47c484e15ee6e62293b2ddbfa1ce675c93e6d893ae33a66abb7f1a54f7bd23e53907c75297cac66317ad5abb00006de77bf9d9b7"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_1(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "08f94b7b7ceebf999c850a6b83d499b045c421ba32569a81451d19ca4203d841"),
		nonce:           decodeHexString(c, "9d59d755eae840fbbfd9a37e9e02ef07"),
		personalization: decodeHexString(c, "d5550e16a863843f4cd187bfb650f683adbb44c86d50ccc21f3e7630db3335f0"),
		expected:        decodeHexString(c, "a2c62c753a64e44e34be03981037275ae9244b016d05a2c9a63b36fc611c82d4ecd819c1d3910147b25b7bfbee0236ed6711a4293825c5d57cc1c58af1ddcfb8df533d81b613864577936a84c88c267b02521e17b481d61ce19c70ac625952b4b7900bd3e21b66728406a7eded21499d7088aa60cd444a95915ce7767228c9bc4953d53f46d90f67e736bfd7dde2442ed01182253aeb8ea827f3049faff9c210e99c4b33ea6e623ef7b6d2c975c374ddce64f63860bc3c9db27015d23d97c27b90bef3088cec88a3d0d905eb1d11b32596b6b35281bedb3acf36f61feab9dd9ce9fb299f7d78e50404640827851222cfac558fcca1848da435bef281c739cd27"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_2(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3de25b41b5149c54af8241645c5b763c035217d727727bc3eb48dc50b2154192"),
		nonce:           decodeHexString(c, "0da29b48baf4f732099e4eddd2fb96c7"),
		personalization: decodeHexString(c, "abd5ea43928042b4618c2a8933185fd94801c6cc2e30f855e403cc403d306356"),
		expected:        decodeHexString(c, "8595e3dea6d7b4849c1280fa4ad3b99f78922ab1dae43869272396db1097045a66cca3234639798dd0e4e3cdc07154ebf4424de58627eb42724e0ced746bc7f87695d2c911d551bbf9270b9ccaa0b2903db71d75f6c3ad764e109d56d19d388da0b7d921fce449e8667814a9cf0c4115a01d81e49ea117ca1489b4f8c02961c9f9118b0f4159269b40fab430ac65d9fa924d0bf64499526807c8c917de331c519be4df2f1a653934fc6a3c39f4e2b4c8484d91bd5199a72655b9d54d813552eb55136d6821fbb4c48866a6ed9bc3ae1625b5ff5e7bc1d43a251972d2b397fb0c0e9def966f9760d98ee995acc744b9ddd707f42f27b8d8d91eed8bb0d4813f6d"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_3(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1752d86ba9b212382357f36854099c9b7f9cdc49324b5b1997bd89827d80009f"),
		nonce:           decodeHexString(c, "7327fcb73b868a9cbfcff006887e24c7"),
		personalization: decodeHexString(c, "00275a675d26641f1ab35a7528984a8dca8c97ebab8eb6eb28cb66fe84221ff2"),
		expected:        decodeHexString(c, "b81c15c53d887dcef3f883a7d59d4c9c9a0cc12e025dc35edac3bdfddc103075aef3f64a51082bb4192acd3506c485ef3860c3064c58189464540a81048492bbdd30bf008bedaf29c0da72f074dcd1de0a960ec0ba7bd14d9f2387a613c3c90b1641ddd7c3fab4dc87690d29d0e04ff239234f863d82411931e2ffaa1d145f659309ff4a812ebd0b42e73493236540a5f01eb1b16d9b708c096308696fe0e6ebf082b8056cd52fcc5c3dca38d63a6cac9c511bc868a4d66df93474ea8d2927edd1e82860de415aecb983891cc2fe543a2ace004049a9e093e04d4f70de538532665168811a460b266dd67bc690c85978be0a842b39d3b2dde330f2f9a73afb87"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_4(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "beb782e041c9d9a5b139e53d8e08143e0068542cb2b7e5db08499b956eb8a886"),
		nonce:           decodeHexString(c, "cb85d7488309f168aa876d0734d3ad5b"),
		personalization: decodeHexString(c, "afc9951f1f4a984a9a8df813305d0fd3522bb403964bc59a74a81ed0c85c2310"),
		expected:        decodeHexString(c, "bfaa34c4fff641c7aaaddd740fba23c411e1d8b42fb3352c1727784880625d1e361c27aada86e9576769428746007526d5557e391dfdc780fe07ed6efc11867b09445ad1b7e2e2b0677347b9115af686e260f5d931b2018853120726670d5614c6baceaa5af00c0820ffc2a05ecf892f86ea228a8be5fedea5d92a8da790bc124dc9088e39c40ac841d10e2d62447be7d20148e4e82dfc84d5d43a47ed3720a4d3b2c2bad818d4a3aadd5cd82d8f7efe0b78f9968470f2e68dfe00c0d58f9c8d907b39416cbb649aae921e813991665b26cfb454065b0f29783509dfdddbc9ce44c117bb21a38c99ad566ff606fea27d2d9e67b4c052594922245e414c1e3275"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_5(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d5bf7d62d00accf87cd381fbd180da753d77295d2686363694a701c488ab0c41"),
		nonce:           decodeHexString(c, "6b20f1e0dca4e33d41ad2e1e9c208f31"),
		personalization: decodeHexString(c, "eaa87c33076d80188b5fad9b2a8a02bf86444c44da180b96d268b8cfb1542390"),
		expected:        decodeHexString(c, "06526cd25183a00907d645d24335e149ca77df7f85e92748a7a87b61feba04664bcacc26bd3b1ea915ddb05efcc0afbfe9b0a589f059a8e683bf69223dd192bd88f3e2aef159d330bdcb594db1570d66efc1ce9815190e482dea0f49ade057e3877ffd9a09bcc026bf4e067f7c142b0745af14202172b20b22917d040d222aa88ab06258bc05bb9fc82127737f1469ec9a09adbade7a0633bd17b7fbebf6d77d49b53c1504fa1d4916dddaddf929481530d56b27d5380d102e922b359721e94d6fa3bd3f28246b9dd92c1008368c42bc62848a8d190ea63fd5564551576158ec1bddf335e3a4bf9b46766a187b3092b2992e1e6fdc946f037de5a8b2d4e90c4c"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_6(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5a85a9bf855fdcf49be93d2526a919a4894c0f3aeb309d40f207901ecc0fa28d"),
		nonce:           decodeHexString(c, "602a3e7262dc08315232d907ad1f59a6"),
		personalization: decodeHexString(c, "e5e345b3561349e4d63dd0fad99ee220d9e619c88d5cbdcb4450534346a34b27"),
		expected:        decodeHexString(c, "349fde44edd84d380e8874188fa96cad5908b040c45555b819feefd74548efb4bdaf65d70d8df66ffd0ad8ed1164d45abc8d7d13a0e8e926223e154c21315dcf682d8ae7fbb4b1b3152b4bb847864935987a23b3598b1fff783bef3285d42ca902625e5512a579a221bc901ad42e256d4a6d9731ab506c31d4f415a3be31c1922812c4dada6aa41f2cc6b2093665233c67e9a4330972fdf37b388d8548ca0662e144032b4b6a2e0c2eec6aab7d7c0ba1358e2e0b301bbe416bae5acc79736f43668aa9e5371ce07c39779b2d13e25042db12d60e97fe1dbb5bb2c50d84fd1b151a3f2b1ab48a994354d2ca1f472904ea744cf58dd0b1319bf99a37da6f7fb994"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_7(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a2b343ca9c9f9529ff55e63ee3ae949a7b6b503746dbd8f7d6218ac80c0bf9b1"),
		nonce:           decodeHexString(c, "75cf81e0cfc6e785f9726764aa4645e8"),
		personalization: decodeHexString(c, "a59dd29cca65bd03afea186a4954ef29206731fa886a48206ebf7fb6927a3e48"),
		expected:        decodeHexString(c, "d6cf433eca8f0666456bafc8aef685dd0e754809484c24ebe02540eb23aa1347b6c7a50e2dbefe708721b4faa6c789a1bd6713ee9cf90a1ebfea3c3aeeb140cc98632ed1243f54089c5a1ad6e417b07aa2fb6c499d4a61243174c710ddf884f6b4852150ca52b9b720e4695ae896fcce789bbdcdf46a294c745d87d396fa9672e7bcddc44bb3f60c311a188666cf8881372df9f8d5e9c043ec407f88c820efa189256d7c1c7cb80041ed2adb12bde1e0d6c859436c7477af255b142cebeb166e1620e90a7678065c4af0701b56076417723756929b11b2eff02db9c453ee8dddc972cbba1609582bda90a0ae87a66939937e4f77cb1d377232b4616239516ff3"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_8(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8ea56a01e2005c37c31497fd29737ea3b4526dc41437fa458f0b5832ac20eb62"),
		nonce:           decodeHexString(c, "d943aa0cd94bd4978aad7c73780334fb"),
		personalization: decodeHexString(c, "1a42ae9e19b372b72c1b531514a053ea1a78666c16923df2f2e79e6180006efc"),
		expected:        decodeHexString(c, "d6a2ac0a8ad361cfd21fdaabbfa801a355b11b19a1ef8bb273c4467186df3950aded4e5da688d791b82480f8f153da515624273839c737e104d45546e3ecd93a6dd264632109c64514a54d6269e4b532451ab5858f5822e1f591dbff0e059b7f3d4008b568a4ad5da523310a5b26d8db5a567ab4c4a06152113ee8f36a219630391c5dff713f1533f5bc008799156260d6651a40d37ba3943beed438ca200c4ce9fa7ded15c7f603ef42525a44a11d58ee5822085d5b20ab20e7edec9e85b547bbd69bba771ab4c3ff826dc431d6989baf43c9b6290e49d03c8b9994f84f8a284c8cae9276dd0ff1f5b667557c23d6992ae9fa10331b7e9bae6a8b91522215a5"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_9(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "519b1945befce5d1e96187884347ef9b3cd4e5071cec80fb51c98c67c453c442"),
		nonce:           decodeHexString(c, "2fb7d601b274bbf70e993d28e0ed8e72"),
		personalization: decodeHexString(c, "3b80d6282d60ddc94765a1bf565f7e852dc1f02fbdea78b69618adc620c1f40e"),
		expected:        decodeHexString(c, "84dd67414dcf2958a46055de4fc10ca01c25e6cb267382474a5b9d2f1368a57304c33775099e503f95ff1210d4a67d2096c10f1ec3bf20d743fdd76ebdd256dcff2e0cdc5a33eeb53ba22ef8a4fe3ca9d6cbaf80827256b43817cba35a348b8c98030d0533137b503f32d3857aef2dbb28d77971795aba9c13083f60de3384a521b57492708a4acda3a7dc4b23186835f03692cb31e1de591f52e6e75e7859bceace3e1777ecc049f3998a70144db83ea86fc064e95efad6e35b4106c297bfb2755f7fb30addc540c89a5a8851174ce22fd1b7e836fa05e4808a1a407ba0afb3532c6cfa8f0e927d958a51a59c82cfad3f871d52e14347f156288f7993dbb6a0"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_10(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "83cc514fa8ab6bdfb3336054192fcbbdf1ef556c3324934cb37ab2560fa335db"),
		nonce:           decodeHexString(c, "af261aca6c9304f2da6aacae2dc03883"),
		personalization: decodeHexString(c, "786925c06d3c492a86815236ccdcc4accef343c8f38ef3ba5faadfc85cb8cd14"),
		expected:        decodeHexString(c, "8d0e4fc80515d2e3eefb3502227dab5ee4351c91dd01044c7564fe8bae3a73dc08e9ffec5c8eb9f5445c2230956cffd13276dc2567026602a3f0e7ffb355073dfa01730800e6936425a8d26521e67fa309c426cf70a4929f49cf095e792727197ce0d3c9cc1ef4fae13f10893dd9746c7fb50b5e796dccf7cba63fa906a55d5dbf069fa62ebef09501dfce2f5256589cf51c36a01b14a81d0cac61d72c7a9b8d4af509ec7d950a137da62409a71c61328ff3c7494c6267c23a535f592e914ff17a6d9f5d0c8115373db101cec89f5bb8540e1156603ea965c8728c3c6f80728e5b998aa272941c06264605606b666b328dbe754f3f208b084cc7ad8ae7c7070b"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_11(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "14f2f83aa5842c9320e1a3ff8dad7c5e4ba0862790e3558a2c72b2de80f7f79f"),
		nonce:           decodeHexString(c, "74eace5391ea07e06086ac349312fd7f"),
		personalization: decodeHexString(c, "42aad660a98483d4c1b67bd7e21d0bfb68ff19c6ea8f752e8083777e5f619bcc"),
		expected:        decodeHexString(c, "babea6d83335979e5a00ce624eeb176c3cee353b0a54fc527b3e8a0cc50adf9ee0b1c593fc7eeb9172360c13269f352b589870275b19b653c486c1ec029c115e138d9f87a4dea41f68166f8d4f42c6c7db7240c43209fac2a6f4c51c942b5c660a04d39d9de739ab559f3ec36dfdb742a32af806d408da4f786fa2ed2035571a21084965c6d6954cc12cf222a94b6f38791bcb2add8318495c9acf19c7ef57e410d4abc49c290309a5dc7baed2b07cd6198e0790819bd9a877c5419c863e30ec51a761d042a9734a365d90795c24e26802d20ea0f716524cd4a0ff51d477d0576576edf380c19df4f02adeda7be181225af4531e8ab14507460604bb343cef74"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_12(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "00fc95fa83856472b00b768fc708a33aa34f2ed9131806db181c866afd1462be"),
		nonce:           decodeHexString(c, "d83ab71ea108ea16515709e570e254d3"),
		personalization: decodeHexString(c, "fdbb2d6bbc8a928fe4517ee72aee729d0eb1271ca81af6a5088238431ceb7095"),
		expected:        decodeHexString(c, "c081d6b891989eb071bf0a0b71c474907265be63e377a09da9a960242031dd90975980facd28cd796a682204f82283748bbb5fae826fd9ca93aa1bd0defc349de351f7e6f20e21a0ab8136228698035aa25fcae2167118fb45209290df4e6913d0ab1c86d3c9fc6f6e0060888298fc66ee23654c084126579ec84695f3a186f5ebd25785cb46e9a59e255625e2818bad169e6f7cc74c534d12364370faa8a6361f9e7bf555d67e7242cdb938040a26ed80606fd06914e75195d534726318f07b8dba65cc62319e0888712ee6538689d59bea3d885e0726295f219d6592dac0789f804ad13ac299f740bb90fe4931015398a6dd5e9fda6341958111fce25e4041"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_13(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "38dacb8077d4db34f11073e2eb9010dd02dc81ecb8ff3eb9b734f64c48e53fe2"),
		nonce:           decodeHexString(c, "af14d0a2076e6a24f5ca02486ac730dd"),
		personalization: decodeHexString(c, "28dc06090ccea62ffa3118dd24bf603ff69953c457dfdcdf1e9faced7d35e768"),
		expected:        decodeHexString(c, "5c587214e8d8da5b7f02254ffb5a22010a67dc6bce57c87f0d0c06e055cab7ccb833f90eb0138a33c5fb4b0d0360004cc24fa15ae5dcec1338a8233479a31d9ee03f9ea28e78495e6abf4541b17ca14207beedde6055c7f2364564e62a91df25da12f61efbf2c22e88d75a678e4895cddface074fb2b516506d0d5fa65c84d2e839bf043a865065c79f11087f7aed7b116c99a4abb3766d73e0829a1c1ff1388629c1e323eef58c49a7e0a5755f81266a67214e56509b1bc46319f6c7ca9255125dc1befdb475ccb600a871ad705d69855db4a664ce644701f044630a57c2ed719335c5b45cc82e4c57e1408adeb7d748199a4ba60f56642c44090092d88c26e"),
	})
}

func (s *drbgSuite) TestHMAC74_SHA512_14(c *C) {
	s.testHMAC74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5f0d1e9762c2724d5f95c91ae417ec0bdc4646ffb3ed6a880f4380d514caae6e"),
		nonce:           decodeHexString(c, "c600da30d68cddd9b823433845111880"),
		personalization: decodeHexString(c, "8896ff67866ff1f59c8e5074d91e6b9112410c9b6a1eefbcf05a1b8c7123dc89"),
		expected:        decodeHexString(c, "ad8150de910a0bbdad0a674d032919ac3304d5977fc43ad5d5b1fa9be46f22e94f5c2747db228315b0d0505867fd97f9b1582f97b4693ed542c416df1847a85bcd4ad07d6348a4df78412e3df4e675def7f44b1895a8a2156c811040a46198a863c0107aebc3a426b4c2b9ac294b227d323879a70cdf7ceeee7f6f51f102c3ba4ae9a7343aff295b664c869f2c2d6e4396362fdae7d9b5eb0802f37ff7a3a7f1c944044b1bd9b21fbf23f191c6f538398164c2d1b67390e7b059b1c9f5bb031b89a23895ac65770182c8072fb0ad4a7be055d9a4653d08e6b22a61ebdfb66adec2629030f47aca70a06d68c9e1c041ceb2dc9bcd1ceaf61655ef7bbb1653f3d6"),
	})
}

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

func (s *drbgSuite) TestHMAC76_SHA512_0(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b6218db4a23ba91812f0bcb425335dfa82535f62f580091442c9b84d13520512"),
		nonce:           decodeHexString(c, "0af3420dcb3b3c9fcab87faa4b8d424d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4a7de883632c3994a36a9ddea329a9de611938d1ef7664d253e5521aaa8351fb2b0dfad134ce0265c244fe0bed3a3aa92f0d1a9c6acef83f7de0ab63f8f1c3d7fb0ba92789ccbea0d623d6c13fa105f6193899a01058581c75076fc3b3e4efab80a43bf44d001c04d8d506736ab1f89b19e56964d7963c05b9012eee267a724455ab95661b8264f617be5bf9cf3f802faef499e678f4ad60bd4d0ecdab530e509c3892e285796ffec16d86944d680f9798c1d3ee68723d027a30ac4a24cd786d4d831aa7d513304dace72161c247206c87a19138545abb73e9f3d152a633db771b8fc44a30ef80cf51b72cbb2f3c6aaa4d269d21ca261c4e37b738a150de07b0"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_1(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "40136bc306788c4cefdb176bfece4f36a6394877701bffd97c3ab18bd612570a"),
		nonce:           decodeHexString(c, "ffbc7fd2c6642875705ef4fd03626c48"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a285cafeac40e0f69ba54aad2ce4729c7dfce5986280394d21415ed3d01f42d058f6398cf8f0b66b1d106633485079ff222bc776320f545bd14dd1493558475c47bea679ed53bc467cfc074e80172ee4ee1a69219e9e0a363e0943bab755e321be51100f86c2699999ffd1e28c0a2cd5aaf39ef1a0650e0d2836ba8019b459f37c46a1aad8ebcb428212571d3311c5d62566786e802d8c332e23edf9520545b6862b9bd5c1c3956b469732ee9c613fdedcab0b549456ffefa53f861bb6b2a2b88ebcc6e0bdc46e599d71508029bd38da75dc3c25e72bcb005388928c65bbd95c1a5c998ccddd238f61cece503db24f29e7c9a8cf9e65ff6a1f3d1593212662e2"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_2(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a7b5fb892d79e492e2c8d71a0102ee88fe3f59b8e4ad9cd1d81b060fd8003971"),
		nonce:           decodeHexString(c, "7cc6a54858c8cd55f2fae01c56697c6a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a470511f2b6ccc5165bbbf869c310ce23938ab12c43a41f7948d33a82f11e80488908d06e2af77fb0f20afecdd0ea10066b620d31930a6bfaf6187957b6e6f81b55d2e1326961c9ca81652a9596dacb4902ff4884b58c5a36b8c05aa3c13b67d27b30ceddebcd53fd8b4378ccd8d6120542647b6890c4d02caa295d5ea456496113d3a08e3fac09111eda6a045a3772bdbc70a83493d32a3204247c616de698107aa903721fd735e9fc54192e7c8bf4a6cfd4c4f905a9378b4d675abf7767c49fbff7fede516f55a291023cbad78de62eda3626e31c1ea8cc59a675bacdd28c03aab810681ecb2e56304c238fe24a1c77c9e6e3418d037a775f6e92a70698fc8"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_3(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "69b215896f256a733071f69845c6cdf74b9691e7763441de0e773a31e66443fe"),
		nonce:           decodeHexString(c, "066baca0590baa636f46ef08f5a692a3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "01c9fe0a33ed105dca11803a2383c6d40b47a5eeaae652aca48a13e45ebada151ca8d67ddfa80695072eb6008265976e7a0ddb1433067d9f713f0a227c8790542a8fe78d7b22473e54bd4a8b5616db0201f1e9038beb957bfdad898b1c23e8af9c2b7fc2c9f96c6e6ffdd2dbf573cd78a6c340ec42d8be6025f86e873c596631bc3477848566ffbdcbd68b9e76cf38d96f4f01d8afd3962fde3da68a030daeb0034ee83fb292c1c869d9238af670a5dc4d6788205325068cf1656b4375687ab032a362deb0f80e6aa6ccfdefe4f98f77709bc8d6b6df8324a768dcba833f89538dfab26ed2e4ee631207000658343e45655ef5e75825c7810079c8092f905193"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_4(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6b1e50fbfab2832c10f5d700df82a557c65e02c76c93989f55440ef504323926"),
		nonce:           decodeHexString(c, "2237e475dad8bf250e39186b8ea84c81"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1ceedd14783c8de93a55f78d671ab637df79aad2aa6c27a25e47adeeb972b70c03695bf3868e06651a58fd1bc9b1edd48d8a9f235d24dd6a75f62e70b27e8bf3e6e3f50bb86bff965c5e8825054ea8bc99b92f78daefbaff65ce19b509e502ae7e1c7d64780e9daa88e8080ead7d99da186c5862882b696159b9ebd3119cbd6d5f59d0ba28123c86bf9400a32f3328b11c1907d818c9d50686e3431b2787f0c1e5e193c2353f9ffaea36bec23a0b81e79d9421bcc7433218d4ace4fdf77afe3653557698bb1ec92cd92fd6e3e819b907b1d3b17108a119522d85b62cb78e52523ff53a8917f4794f2b588f20ef0e6d270900a67db64c06d074761220b9bae365"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_5(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "569558ac4d144b413ccfd7190456fbb9774bfe794f87c8287fb1d9793c10f4e0"),
		nonce:           decodeHexString(c, "3dac59142e1618546d5daf95d3fea0fa"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cb4a6120b3f246e8823342bb72b0e1fa96870c444046e9118626aae0e127f79a69895508a0e40b2adfe07ed0f92c2cf72787886298350983ba75577bc7c3ae4f30d66bb1c5da0a544d0e49edc45f2b7d89179e55c12708055340f1588f2b10ba3151e4bfe88cabbe5076a76b6c747064f770343ed9db035aa3ea659777cefd8c14f19711f2516b5d4ac4228e060f256c1824f795e194f9f19d828cff81c60368247bbbc343c72eefe28dc01d9cf15d81f47c0691d5ed67a4c499aee5ae7b09072bde7699f4eaacd8c4c2d1f6919021304027b1a513bb65f669b9451c234011184513b2703dc090461419c20c7fcd58ebc82de98335e0eb504008c0d30e8d7b0e"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_6(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "27fce7d15031d5dd6880083d1ec5c2a3e8625b8c4c0dc0d7d438266ec7de5689"),
		nonce:           decodeHexString(c, "c59e3bcdc1f6e31367e7b8b958eaa7d4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6da842ae1a45995da23d6e3b5ba2c0ec56b21624a2fdac824f3fb3b04fe416054796e2f06977838cc4f68d74d94410a1383d58c8a044429ee74e82fb4ece69a05e805e03965a757d58b66a9f4d224f41c35758a245d68889d60fe7651442b546bd34f8aa01dda206bb1b244d20243cf1e012b786b1992e0366145598ff19eb05a7e6386af08f41a77371bffa59bb69d5207c122b8ab6ed9efcc35e22bcaf7fa20725b642cc5384f261b6a853f3171f9782c50783ccf3d29bc699c565b8c380446bdd9b3591a60cfe455979de800af20b7b9b2014dc7d010a890c95c8bf41ae4144e5a764e0b067000e3a7ea325e387ff8915c13dc48874ab3399669c6580e42c"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_7(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "0ca6f97189498ec6ac12e2e5cd37a07822b4477871483af627b4c765da5161d0"),
		nonce:           decodeHexString(c, "f279ca8bb4ea4c7136f0ad8fca7b7d86"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cfa3865020689702cb30dde9f5901000146b9b3afa92b34a88ef926071c5f868c7e5006ae33dc38ed990006f3d7ff1b3d412a325527effd32f416e19394d435043d3bee05166f22b8505fdefb1f28053424be60457833f988cb426f4a8279742f16d2163a898ef6a08c85d5fc77a8b127efbb118d0b1a3c288c29e8e0a299c9e13d3935ab6ed39a8a2dc222ae897da1e34ab65a158f7bf01ec8654e39761fa3809a16aa6078e42bcf57562d213218849c27a929743e7b2c40f6fc72b2d78a3f11f9a7c1831f02593f36e0437dd6fbff652f7f0d956eb9579b6d178f5b34ecd29825028c04810fbff369fb0b65cd23205ba939bf78dbc0310ba15e20ac7b22d24"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_8(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2823011f32eabe40c1131b36c9f001cc28f7e86f15db184124c15e26b8d01914"),
		nonce:           decodeHexString(c, "bd4af70749da0f3f64a915dfec31e50c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a0198acbe891a7acbda52fbe35181c97d58d39844fb2975c96eb0dffd606092e691048ba65295bf2db16aac82b094a93667fd18c23ad5c0b564120237d3c56da6eba0d39cc4d8e023ef15e7ead8e241cbb8d0b2560bd444b84ab3c85c1eebce0ec40fccf680f2c4d440214125a2735d889da956dc3a895c7a69f07854f962f354e67524ed18863ed71d3e77816bf460b171fbd81b0a7c364c0f6ee18d32d7543a13cf5a7d7b992b8bca523e0de92fab578f980cac24d779f806565467702f75021652287a96adcc9f420e2acb22528ca77013501d9c7e5764f625f7edaa52a26b0ff184f343bf24477cc54c893c1434f7bf38d18efcf255c397b9a70fa0b64df"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_9(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "15dbcb3de71426dc0aea3a0851e7390af9e3bac12e1db58dd931d4ed2d9682e2"),
		nonce:           decodeHexString(c, "d87baa587e87d5b0c32d734dff92d9bd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ec3246fca162a62512bc4ad2239270b2b0a98b25f6a7bf0aeaf80099c4c2da07e33fc1d58d41d85df68113c0d0decaa92a3838de2d99f807d615b2e969669422d9d52821315baccaf3a3630b2a7bf7f2c75a59948974759f6bb53d21ae9b981ee54261168d707eb45c0e0f7332ba702f1be30873a96f66f164ad4e78ba0ba3e5fbef4caf4b1d807e7233380f34a6d48013763bbbb5c6c16a83366dbe061b480ed45c8901804b117de73fc892c819ecc42951b130465e30f4c54f0112ad62f7b1193ec0c7725ab6489d343178b212e74ec147d3fd520a9ad9db384073b22a6a478f64b37a2e76cebea0e246660cf80536145719eff348558a72e84eb50245cc15"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_10(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6a36ca9ec24741c1389ad722a350c61008ce53432c24365cb6a60de26fff37a4"),
		nonce:           decodeHexString(c, "50a4c1c05fc3893876e627976e1ea388"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c54305f7794a66781bbafcfcd1a5af259fa3a8b4d47c4e3ececcbbf80f885fb50dc93dcc507fa9109c238bc724289f5e3c765ffb4289ed0fd9bf7ae050c0154d11413997e61789c8bb806c61f4002a63bb2ca21bac9ca65abe92d0594da90c4e122b6ca9d0d4db29265783defa05ff40ff1e6c5089e8c1133d85d8de6f5cc20699659ba4d93e076086bcddb51bab709004e0391bb932440c951ee064de58795c14eddae19dc7ec8e2f2d168e90da41ea4892c348983ea07ff9b961f4a09f6a9aae232ce69760a2d240546b19c0fad337c764a480c9b6150b3db83f9c2b65ed4221433554e5cdc6bb18982c11755717c10f4f1c7cb7aa9d2f388e04a052f41474"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_11(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f42f1d6f989cf2df671516b14a9a5d72a4825ae220e52b058cd32d09802d9dac"),
		nonce:           decodeHexString(c, "985aec205afa866c62d988545950f210"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "65b86867a230ae4abc0c4e4d8c6836a13c1b289145df5111dd75a2c863823e77fe68925696f51e9e9e3ecd8d81ef2717ba90a537f7f48d8c242e4494bda43857314893a53dfc887ea27a3f8fd809bc536e6bf484430ebe45ada15426b5d2d994549cd800280654b29ee75730b8d533c081fc63a97b1751f50a33914ed84f4037f3e9b41c2a6c7b6e438b89b08e55fbd1040d289c2068d9f7529fe459ae9667201e2c421abdfaeb52cf0f242040b6cc5c8ffb5d42f65c71d842c6c7549a4334afba7ddbb36cb98f7c02a985a54ed270b730949db4bfba95034caf778cc9e6ffc90dd9d151e12d62cb400a44e2d5d2cbeaa33814d61a2875396ab2d62f27caa380"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_12(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "52c8842778efd89fe5b79bbc171d48f3406c5d8ae9021e6ac2baeb843a665fa1"),
		nonce:           decodeHexString(c, "ae7456e2aab8f0e2a0cf0fcfa93f2773"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6a8df38c7526e114d111b1fea1306a6cc3553817a8250e2aa6104a83d2dcbc8dc93022b5e8c8f975df44aa07b1cee181d7f13164d1fe7e1ac7dfb1958edba6602d5bbcafb7230f27ba2c9ab4ebb8e27db12799432ce3b2556bd8ede157a669e05a3c892098d428b077cf6dd11bebba9cf344b50bb27c301eecb26dcf38c3d8d63f838401324c9b3eae291ae9a3260a417323f03c75669853acf9c36b646cc2ce6258c6504322fb5b799865a94cc686c82cb66f2dacb7bef9b9223c63c3f2633ea5d77015ceec773bc1ff81329e182a51a49c0a28cbb778588fb4548f1bb118fff6ec374fd90249cf2e01a0706e7251d23fa2d282848b533f2a0bdf0d99ee8220"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_13(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "be378ace07f021f5a253200be49caafa203ea2fb5e2be0e08a10d1ae70c213b2"),
		nonce:           decodeHexString(c, "651416a658d6ca7140322a9b79e66b45"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "307212bb8be68ebe8bde498bd83356c4fb38452a83532e2021f3f1d158c9e9eb8b1594c03d09f313f56037fb9e5f44707a570ea56b55e34c60eb4ba4e2c40bff8f79883e4657be3fdfd587ecc64303f89866896dc9fe6b28025dcb47ef6d49ac368f069ba4d274f93ff58bb7cf90f1e3b97f03ffbd727414e22dd26dc96aaac40b61fad8247ed21554c02f4ef8ad32518c5548300540c7eaabf194c46a58a08f4a637b77521d0d4829cdd3f878e7b44287dfefbaf027374c8c7d5ff35e2a455ba528572b993151d6b5a2cd1d87579182d348e497c9796a7375be6791d6b95c3d5fa6b75469f62dcae70a2c736cd5e44a3d44797975f39614873e3f3ab1b2ebdb"),
	})
}

func (s *drbgSuite) TestHMAC76_SHA512_14(c *C) {
	s.testHMAC76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "60da58990a377a615436ef43b1199f88c7a4629653dde2350a4c5115c42e52f6"),
		nonce:           decodeHexString(c, "592033d0de138ae7082c03553e3bfdf9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7a770dbe8e1d3af1dae5b93acd9e6f1748a4a6a88229a875d23b37665e0cc96d888dfdc428a32cab378a9ebe22409709cd9d11f0c751c08d98eeac13b6f76f0f51ccea254cae23177c3aa207c59b5ce221b93442d037256d553275a6c4b5c83c1fe555a630e37d8277e02c050c19e145a71ec98b96ae3ae44c9ff87c4501c1ff7fd5231510ac9df623b3fb178e147f07d1fe02b48e877cba89a822c91b5af56b71d60116c49f80d87656144854909a7d718b5aa8f071f18357c2c9f9b6c0fac3195040f26b86aa936fd35ff37287aa140cd01ca6c5e577d815790d6fcb1a57569d23e801e2eb2b669ae7cf17d87f9ee66e0b515bcab09087e111da199b6a15b2"),
	})
}

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

func (s *drbgSuite) TestHMAC78_SHA512_0(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f85649f8a8c01f8a2925f7e93e356be0fbc75206d1ce2f7e04a14257c3338a48"),
		nonce:           decodeHexString(c, "01a8843b7a3dc0b1cab5f7c8b001598d"),
		personalization: decodeHexString(c, "91022d072824cb580ac07555c90a31373f2dfc272de60d3bdbc0612e175874ab"),
		expected:        decodeHexString(c, "9f40affda9c797363a7b058d7f5b848f0ba366808e7a87ec94894091ca0818dc387a8ab249af3268a9b0c95f7a781d3c7ba613460a2a5f8ee4bf9ed237afaef69f046e163799794252d2c9708ea337b8bcc674c5016172c50d6de9d941f496cbde4a4e7abcdfd42a989119224ea7f3c4727179f42bbb54466f530e4394cf18c15b548ca610511800b39da69297a46ed1b237722c6d50248245f7e90f343617aca44b6245c99a714f719e324c2fd4b95e84b3f7d3212986dd7f51f60e38d1a077398f5af31adae8647bc920e6a0c865a297bffc88b407a24e2d2aead0e711fcf96b83bbede5bb35a5f9b0dc5e2376a693afa9070a4b1aa86dec23e6e597a74237"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_1(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "58b81001b76e248d9a4eab5e7371a97dd0992bd4ed6de18084b2321b8c292b30"),
		nonce:           decodeHexString(c, "d4e9df171d09a7b93949907ca65fd5b0"),
		personalization: decodeHexString(c, "a36d996ecf48058ac850d66e56d812e8c58ec0d89a30dcf30475d3830c4a33c4"),
		expected:        decodeHexString(c, "22d8e1f50c301208c5f198f29cf9f97704f2df46f662bfd7bd2883c22b49ab5d7bed1a2b6cf0c55a0aa0b695c52695b57919dbbe8381fc56e72553158e10ab59d4e682dfc3a07199876c266dcbe07735382d8ec079ab4ef5e622a2329092cde45c53f71aebe43b34990f55ad037eb33a87abbcd3ada3112ec43b9bb20b61bac549733222313de2bd91d532f1c17bc3de3fa34f7d3aebb2b59d6c8b90ce211e184fbe54ac0cb97d7a03e057a6bf69c4deb4f11cab49bcef323e9ca2eca1f4dec50a02ae1deea1d56f037d53da03da870dde13ac7a084d1e2aa4f095b3cbb1276a4f5815cde03a1ead7d5ff87fe7453cc603c0a1d1f6af1eaedec35835a6ce0c9b"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_2(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e2743de1bead33b91f0fa01a64e2dc2175749260d4475dc1c4652c6192ff65fb"),
		nonce:           decodeHexString(c, "952e8d0d03b09130e4df1de0f8de4484"),
		personalization: decodeHexString(c, "b187c33f16414734eb500c3c3230d3600c4b4251c2c44085b7a585c86dc713a3"),
		expected:        decodeHexString(c, "7da54694edc364dcaf51bb239b82b3a8956264bd1279920b34f6a7a33395900b49180e38f0e97a2b1c5b7fb11bb1e4672275cae66a007ce88d0decfca929766c2c07e019eb94ed00094a5e72a82ddb00badada39d4eee8900dba0e71ba29750641908dc4b4eec95ecc3b49cc9df72ef5ecfbd1fa8c9eda509301222f9267abb4893470a75dfa86f793db4fea9bfc1de6c637c2a29d6c60272a521c10304bcbf595cfa632798701da4d50eb776d4dbe01865a8471c58e2cdbed14f083d6b4ed3cbafe1b2ccafe82e73151a8299c3a04d36eb713dd47c9f4d306c0e503026d7d6ab6c4789078c8c95ff5abe002b4bb86a369b91b4ef23c6afc0559a2cba4ff53ea"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_3(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "aa1cfe4c9f03a9990c2dd55c0775ec36f3daf3d64873ef843692b5887b7d7a4c"),
		nonce:           decodeHexString(c, "70484796fff90a01cfc2168d1d0f5ed9"),
		personalization: decodeHexString(c, "21b468ff6f1e92ca410177941ec0bea74990555071cb7d7fc0844fb24cefd511"),
		expected:        decodeHexString(c, "72ca74671d10f6aa0607c3abf4e86f022af34cd8c32cbc274eff9bd38bcd4b79c64b09e68f44a3b1c6592b7f458f743f99a3971becf6acd974792dd5812d473891766460b028f3724036496188bfd2fae5d3bf734d2503316db5c9b408496e9d99712dec355865c240d3209c1793fcc815df057ffe555d2bbf47e7370031893aefec6ef0e71d137e16c416dbe52df3b98f280f5e6b29636d7d9bb0999139fb5e46bfec53bb22c8fd68d2a15df7d4e1a2c813ae363bf3055e6def008ae16343ded598a0c08548801189ced03e6f81b31286dd8e3eab82d648b6a9fe5aa6fa1f951789cf4f5815e10188d2d9755e04f283373ce7da806cd92935aea243d6a566f9"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_4(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2625400a6130e77fa20f0b7c58cc0f9d0f22ef5ea54e5cfa6e6e648933d62322"),
		nonce:           decodeHexString(c, "dff0eb02fc7ce93e4be2e294a24509b4"),
		personalization: decodeHexString(c, "cdb1072fd83114ef83323ccb03d702f68a550d7a0e8b153a95eb9f771a271861"),
		expected:        decodeHexString(c, "4fa6071756afe972853072ba73e203773937f7d6e1dcd7982c37ef7566369e27add7889b32ed2e2c2669d00633c22d91fd98f2223789681fd3b1d93a16c2278b8e4007286dc1273e5abdce7845f87c066a59b0d8152f9c13230ce488f9cf00e7c3e1e0c3719e6087fa251e8bb4ddd3e778c6149a14db3217f172a8bfd656bfe6fe2c4960768adeca843f1f36671b722fcc62dde8b2e0c5765c6232ada6a4504b21f350786d0879408d8979e19a3aa16f0ec47df3d0836296fb88363d1fbc687bed75f14ccceafb185ce90c2b0f5cef3247f1573e822c19b1b9944204d42a6101326b127262b7023e89824a3f2d4fbc4c072ed3dbb7325e77eccc70cd82218f43"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_5(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4943e0c725cba7ac3bba16d1de3444eb367129fa38d1bd6e0032ec1b3e0b767c"),
		nonce:           decodeHexString(c, "743775b879b22ba24d0b08ded6298ef0"),
		personalization: decodeHexString(c, "1d8d1abc5f597648889bc220040cfe3bd49ad771ebf7ff2ffc9a7bb8ce2cb285"),
		expected:        decodeHexString(c, "1cd45a83f0236d70908291a0cb24e8af67268ba14492c0ee4f7f736e48a3da7c5bc80a0aafb54ab028907477463d7587a11c59cf2add25aa799fc39290c2284da916790985dd1d842421a24186aec5acad4ed5e511dab8c28f2a2a0b2449d1aaeb5265e5df2e708e761a42df5304dc92dd2c10028cbdabf5f21c1cf572cb0d55c194a273c166df5dce469ddaef537b3f5e72b6ec8c3f32e2a69d90a640ed3f219832117615c209251a467f7343df9a6fb891c6646f01f896d83319bec63cfb0e36d35d5b554f08a0635c3605d51f9e7cb8c32cf69cf3cbddb02f68c321ae08cd185de20256c9c78efd667a35a3c423e6a0d83213fe0acc1a11693b641037daec"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_6(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c90ef2a9a1cf4936689ec66acf771e3b0faaabbae4af866d4595d20823d04df7"),
		nonce:           decodeHexString(c, "624caf43c3fb18b0a9b9b7b56245ce60"),
		personalization: decodeHexString(c, "ef05d14650114038c30f441f8484301d2442f6b9167f57f1f2c0a77b5c91212a"),
		expected:        decodeHexString(c, "f89763a96ebbc1c4b5d5730501dd5a5910a9b907b1939442562ed880bca94724f9392d31eced9bb670cf355d5113a78f6b6993a85954c8e52d450f14815e8d25f3c5af5e0791fc9f94220994d58b7e3decdaa01993428bb597f1129c7c9a0643c413d0696df191ab0b18691c77e79d5705ed144a3b54ccb3e025f4f71d62cbbab9aca0804b15325d335a35b8ad9d06435ca2b847fcf45a2bd0afc95583cc11dd66f63596c9a81ec1244a58aee352b59cd4173e1b5b51e88f1d64ed887dc7c23efbf7ef49e34bc1324e91d17403052741dcd7e1e5a866ce3e2e424096a4c67ad818220a36a4ef8379f7650a2e49a953fe488202f1a95fb55a929b0e3261f181b7"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_7(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "fc9e6a14f9614e1430dfc99640633f2195e35532342ccede226e0896d0c07319"),
		nonce:           decodeHexString(c, "a43c19082988a2a1609150d903106415"),
		personalization: decodeHexString(c, "ec6f5aea1cff91b0b798b1247a2e79bd62173d8ccdb5daf9492b3958ad82c48f"),
		expected:        decodeHexString(c, "852a9d864504846fda05677c567bd9fff95221e620b8473c5e51580697ae193d7bf1f3237fd094363bef04f9231d95b8531a837ad43c7ff18d165acb2502f9e645460e06e2da19bd10c2df17ef2a6c0791921d74f72f91db4f80484f4fe3eb0aedac4e6417cef76e75c68c041be290f955a6121499842549ea9251bf892107614a1ee94110ca401c096c5a88adc4b39bfa5f821fb980b6e6455ee75cfdb8cfb31756565c3c836cc8e96b537080facd6c4c38c5d15c405e904a9d708e92a626cec63a5f88e3fb2b597348a7798559d612fce9013e6cda53b8eef61d5c874ea030d377639f93f3c83b5f7f634da201ce392d9799102ba9ca4c6126dd9fb77b33e1"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_8(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a5e0b94b0efb6e1df2b691bdd3e15d68ba602e25a4e1fa7b17fe124f280b722b"),
		nonce:           decodeHexString(c, "3be26657fd44368efebe93c16b230e4f"),
		personalization: decodeHexString(c, "652fce43407146c069c6d20e557eb75bbb7c72c10afeaffbdb9ff4bb6b2d0558"),
		expected:        decodeHexString(c, "bc9379fca8507d562434c8d54d35dfece72c18197593480bfa7b63b262d79667d8184c9026682b4a42b73ee237ce5ff46d8cf58df4cd7f145ba4ae3964838a787f353f82c7ba02f9680b0b72bd37473dc98fea004ba5f3b87c193170f00aba61d16eca612efc101c9db916d9ad9f34c20595a4df87106b952b9d3d47f3ee346f150e8e4e21d1d3892008ed163c0cde88a6d8d6d6ee7aa2511e15d583e3f286462f9d3d13966f955898d0c0c7a369e886caf2c3df6d41238ba85086e47fa78028f3dc01545834dc73b25509ee6577a6e8f159c70407bb7b05ca9bfe2580e8ab864543fbe67c286230dfb3c792ad050e79ce16ca3fabf73387e85a68faa44ee95d"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_9(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "77f4fd085853b3b577b1b6e10190fe7f1aab5adbe80d8298b9c0c6d5bf695232"),
		nonce:           decodeHexString(c, "d472daefa0831117e7b8f3f667c5508c"),
		personalization: decodeHexString(c, "c52f79e56dda5affe2fc350e3b6aed9cf7de57f2005e1f2f003a90f1cb175974"),
		expected:        decodeHexString(c, "2b37c3d8c45efa020eb3f84284a93c5207b25b71c002d941528ca0d98f7ac42a72f55f1ecd13ea74a296d3e231e453511a496a0dc577252cda49b4e48056ff71cb4e309495d459d6c9fa2e6502f3ef39a06ec4dafc9f14405f14c3015b6ad7bdc9c1077aca97dc7974996c925c66a98b15fe8aa355ce3426b1af68df85491d46da2be2dc58e166edc60216520f18939cecb381d3d4efe70d89f4e4be3c93f11f5be68729f48ad9e501b327146087bb161ce7deaca44622bdbcb50efe8e076fd2e9cc3902cbaefc3abedbb60cbf24ce332a00bf7ff8ec7a2cc81d6669b9957d15d68c03e1308550b7041ce77c95de5cded1382124896b2dea1254af1e93ed7be7"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_10(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8b9e3283cc2316b6955171a2a3de5851a56ac2c3e6de14166fce6ce0d24421e4"),
		nonce:           decodeHexString(c, "8f2caa11450b9c6676d35cfc83e3a1aa"),
		personalization: decodeHexString(c, "55d98ce73f316177ca27dbaca3fa25111c19fac26fdc224adf71e46c33d9e076"),
		expected:        decodeHexString(c, "cac7b77c2664ab953a413557f03b73ba499a7ba627acd4bb81b1dd77198e17ffbab3393e83cf39a56353b387d312791f89df0cd9b4c3bb94eb43d8f34f95a4d2485609728f2fe4fbb4280c35c18a1bb5f5d4f7457eb4b79dd13ae5e3f39ea592028fc95f165cf7024813dbccb18651740146276293d8a45af3d7315978a610c4891134096701bb8cebd9a4bbe0685c06f12f8d98f825b84429ab7363a04043ae9aa5732274194db7bd6517029a92ce11d57710d2152fd877c563b9dbf773930a3e50326a84fd880b24bc142744b8a8b4d0661a008684bebe8d5dd682fab88b90247fea58ee911c6c8719dbc25bc95ec4440f50b34eeec9514264d05633a63862"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_11(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "63740fe4ea180a767ee3ae551a0ba9f87fb93e511830188be1da2f5a3256db07"),
		nonce:           decodeHexString(c, "2d7f7bbab9e17b0eed3d6fe126b49af7"),
		personalization: decodeHexString(c, "dc61dc0b522a10dec7869d396deb1ef849bfa93604299519a520516d0e673098"),
		expected:        decodeHexString(c, "85eeeb0897db47806534ca3cc1b700625e364196dd3dc4fb771bbec51b7e5aac09164d0cd6cd6f67bfe780b656d162cb8a9d9b5a9ddac9a3a38bd1fc23cfa41a17a4271239bbfd604845866f4b515fb0e9df75152d38251f5f50f6b4d99835eae72a518eb83c2e72501a3af9b4cdbd374134f6fbe6401cf592b444be6629af1bb1378b09038a01f459bf95daec141ca7639247776e44cf0ec36c8e494f91f4cf3bc0da212437279992f0986b8f5d592c8f64c5baf2e97ce04983af1639b90ac350a84a9bafd4e659d554dd29e5bd128468675e2c264aecc332a373655704e005144ec1d8efd8e1f5c915b78c2f8ce413242d788927aa8b3f66574750fac7fafa"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_12(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5be0278fdd81b7a4a0eebc3528bbe5982ba4084415152dee27649c6bae0a6b0b"),
		nonce:           decodeHexString(c, "afac0cd0520ad32657e543c27bb01d73"),
		personalization: decodeHexString(c, "265d72a4f0a1f93c91f72c755e9386626f1f0afb86e0bc341dbdc67859c176cb"),
		expected:        decodeHexString(c, "c056c7acec0c2fc67e8a66cfe62e26d63daf7dcc5bf1300f6ee44c818a35fd99ae13d16be2ed0b96ee98aead005d1b0c8ce10bd72a02045608129c12c02e6c0828717a60717bbd2238b88ce40c1255f7d41bc42f44276a140aa4f917ed22896480d81887b79f7e9bf066d28302816cd4c8493917de189caca99276b239f17fd040f98951ee2323601435f008a377fbc71dacbd1eabf80a55b5398a141201dd9ab2b8376ff39bc5ec15e21a260ec2445910dd2413b69dbb77883bb0b538afe8fed0e10ca5f195ee5365289b928b0d6c55f375b32f4e056ec7e0c3457ed9fd9ea8d8ec623b172b2ba5dc178e3f63c29765a5d793ff774030c41691791760cf3b7d"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_13(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a0bc0cd27d6d11f9fdbc9191f0ca551273742c3d83e0b10439326ae6458fc3d4"),
		nonce:           decodeHexString(c, "08e08a673d0f1678b1564e7c6f1695d2"),
		personalization: decodeHexString(c, "dc5c4cdf1531fcf69c55bece5c291a96ce9330a86737770fd5452c1e77d2a5aa"),
		expected:        decodeHexString(c, "e8d1173494b8f4f3066361ed8f16d75fecb9300df59ca8b1357db17f20e669166bfedc14f19aa7d492a92311ec01212b9bfb7cfe7ccb4834d22c0a14d8366b4adab29f2eed561ee261ed617fc3bc031c364e348b46579b2f4c9c2266e238168d9c20c8b353de83c2152e7865625661f7fe4f6c722fb6471127ca7b03af48cc107a1341cf9a40c2279a49cbcf6b4da179173dde4f217461aa118bf5a8a57f5ee4775a79995bd20d1895b71a18d8a373a29e53e286efe7e0db356e343816a114099bd1c621e14b2a44aec76ad84b572c6922c3bdbb4a606f09488061a8ab85c9e2032769f2ef444b5505b1a5c881350214faa716b7b0991e60b6d1076f16a2edfd"),
	})
}

func (s *drbgSuite) TestHMAC78_SHA512_14(c *C) {
	s.testHMAC78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2fa23531e11329997329d273d454ef186bffe879fdf95c8812533e4b8027df87"),
		nonce:           decodeHexString(c, "0a6bef6b736129740978e31c3fa279e8"),
		personalization: decodeHexString(c, "a5ca2491479bda16341b2c14339a5307fc2e2f5df4fa625e0ea351a95a14f588"),
		expected:        decodeHexString(c, "df587647f8d440a6c8034e757cd47f28d0e58f8aad9a047cdc8a70a8b1cd0d8185240d47bc5d2f4657205ed218ec38307e68efad94714630cd490b939719a4a07ab994793112c021969a8c69872903315c74b00b677648673e5883b5f46e075550092914cfeab05454226ee3d2154698f368bfda0b8b99eff5d111c1649a0f7e67ec0f637c6d3466994d655066a95732590e521ca055b048dbafd219be1a04fcd047c3722c4adf29ebd8486e7171359292e11ac6b740b4d51093383d64d2a45e51115c689ae29357366f2013eb9b420c6bd069d22c2110182e842eccadae81797a5f57d9ff47311f094ea0a25d7e329fcccb93c28b92ed85ccc2d690a84f2b2a"),
	})
}

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

func (s *drbgSuite) TestHMAC80_SHA512_224_0(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5b3b225c13bd5d7bf9aa8ad7ff170697f6492670ff64b5c0"),
		nonce:           decodeHexString(c, "d53aba6178eb4db03d022e56"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "16b4152d7f20ba956d3a788e33c644128f82d368e85f125d1c2618f6090f4a1b20c30335e836447549a662c7ca14d4612cf490a3e83927d2255ff398673394a6cf9b3eb46765d51ea1e487f8355249de965d37b7f035240501ead7d2b2dc35b0c6d41fb54f0e9b4bbf513e96871b705d"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_1(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "755b38d5ca8047a5c9682b64417fd2ea12b92a065997dec4"),
		nonce:           decodeHexString(c, "990e8a9283563ee6f1a3b9dd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "33b7c05d2fe057191ba2721d161e6d90524743b0e3b8604fa12f16e2f8d683482e789b7afe7ec8e1b86e3dcb6edaf1bc58f50e558bbb3beb4072306eb3568de3aecab1bee824746c2252f6191235962ddbb829a6cfe49ecef5d0a0ec3ab4f6922705330ceacf05034750100efa7ba389"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_2(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "6123e1f18c60e78a726a885cd6b3d5529e0255a0ffbfe522"),
		nonce:           decodeHexString(c, "f660ea8ea57def22e03f6bed"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "347f041021494bacf6ef510337b78184c12d9ad2b680bcf1afe3ff7670f9fbfd6331a14daead42f58b8461fd1d98e1b1ac9e0a844bc4c849e83cb5724c107d534587648c66bdaed7a8b48ac8f03b12e72768c1a340e7800cb8f6cbda6b8691ddb26a9ea09d73a7a78b3a5876e58f9d5d"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_3(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "057a02a79da51dd68aa05e51b135b89521fa3c020b0213d5"),
		nonce:           decodeHexString(c, "933718889255b54a14527722"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b9e3c4fd5cd56fd62ae134f95bfd9015e0271feda314704cf8f901f5e48e60582d116d7930a4f4718eb08cba45b997a5f5b23902f5c11d81b09708320a5735dffed23a4c8e86541c90f7a9071092650339fd855697278880e3be3ce0ea96865fc778a9dc011ba17e2471ed9c0ffed719"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_4(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "04d39a39d5211c50507c3b1526f341f21946d4e7ddf5c4e8"),
		nonce:           decodeHexString(c, "36282819330e2eac6ec7a555"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cc6c02ef46520c4e38da46fed766f7b6c7243ae04ccf14355dd9ed4d56ba0feebb2b86395e7e4d1cf3d7f0f96e888e6cd5f54d54bd817949fd94b30badeb09c28e93db797a5732512b6e03755f3e477ac747d9c2aa06d632786254ca5fe8eb302d85a3966d5852e5b8decfebab4396e3"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_5(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5a47d6b4c3b01665d06bf3241c24008d46256e2f18b623a7"),
		nonce:           decodeHexString(c, "3b88528d2f62853c6f17f27f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4d1add998ab87f871f3d2dea37e153937d5dacdf71f082af4070a4e09316273cba38cd8aa70543d218dc29404f54aec97f609d9ec3e375dfff76df8095b112d0b3beab9165b494bff80baac6253ca711d085ba30a0773f3ddc52647f8356b1f7d5927c237e9f2aec99b44399450e4227"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_6(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5736ca8684b9c5b17e2e67b130b445ca694da7ace0c19f44"),
		nonce:           decodeHexString(c, "1b689c4c8e459e13a0a5c585"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "208883b80e043db8b45bf838237179a2c8cc34609b58894f727c8c6b7815b9151dd48fe43d7b60525c87f31e9d643fece218372df433a85da0df3c3c3855032cdc8faa9af2b2c884ec4c60877d68e16d7d1ff863c63c404ec5c741729ce1ece7e4f2dbd3117b7bc1b830472f1e5a4b81"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_7(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7a747648c0545287a5d9fa58e8c442b750e3524c2e79134a"),
		nonce:           decodeHexString(c, "c6a70b28fadf6fabf03ae303"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dccb525a08c96d73593ca348f04e67a0a1a0b164026d54dd80032241809775c76fb6aed2fad971512086cfcd3f3c27deab1be0dc27511bbbab205a871eaecdbe66108ac6e5a835e759995f56e2728f15c5b0ca60e3728d949508151b750331f361ac0e5f97120c5a3085e217c70aa9dc"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_8(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "38538bc7646a54e7bec0db7dbb75cac62a3633af0ea6a384"),
		nonce:           decodeHexString(c, "2df888e3cba9b202e67efe5c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "882997aed0e655ab1bdf52ce88dbf743643c1ec62b369a22e9db7736b8c0b7fdd2c69bc6fa634fbbbcb92c47692f0bf47b6aa1aa3b5a7790fdf8f019a069dbf668e9774ce90da48c2000b6a7aea67301ac7a83da7f33008aad78707ea37cef5a506ef7b2baba74c39725f49c67b40ed9"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_9(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "dd1804090cef1708aa21829c1ba692d343b298c99513841e"),
		nonce:           decodeHexString(c, "00d8bc1b63d36447dc443042"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "057a2fa4ebf0a0c78a3f336cca70b91dfbf166fa000437bba6fd3f4dcfea1b202a866528a9f9a20ff7f6210fbdb261d4676f8359156d69403745dc9837c86145ef0ee4c0937eaf0fa551a4a1414d6b401f48922e86debcc5b25550574393e0acf29e6c807d3a849ab3e6a5748f22ed07"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_10(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "1b32d8674dd31f4449b462da7b12c3a6abe569731bf681d6"),
		nonce:           decodeHexString(c, "62757f4fcdb4f807efd6319e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7cdee95ab127bb4c8d77b87fa93562f431650dfcdd75ae7ee3aeab17312a51397edea835451fa163f07c04d5b05fad51d087953f97f231ad10e7cad0b200da3a70a22c918eab3d1931bce6159f2a3b57db69006c0887739cefeb811169d5a0ccc25546e513a538c99dd280dda3cae025"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_11(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "451e3420a0bc88c199fa98f007feb386aa9310c900d5bbbc"),
		nonce:           decodeHexString(c, "0d739bca00f34d94b2048157"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "012af91cc3143c30cfe67edec181509fb616b0bd708806ae5ddb7348ee3cda760474187419d84f2565b65113436ad0567c05c9b7c82996c336db22b8bb8cdb2f918c1d1d21c93330f5e7ce4217755d1b0e701d7de4ca9ccd8647a9ef0ba39e8eea9f6357dce29758c09f5df7a2f853de"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_12(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7333d146d2668fdbaa608a759b04b02fd931921e324bf1a3"),
		nonce:           decodeHexString(c, "8b80d878513b59dcf6340a27"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d444d620441d2256e112d19314e5577e6dc586608b5b8c6f4c3174e7b59ccd30db1daf7c571d3ea249c6fce8b58f6b13d03d2f311cdeb6ca8336ff922cc23923013f38e2dcdcf4ef8abf3accf3f5fe789d254be337116dfeda04d967967bd6e7a80e92927d53fd6c2d45dc77dac0f677"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_13(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "acf49affa9806ef751aa8dc2af66573e09cec323b458e7f4"),
		nonce:           decodeHexString(c, "bea35dd49119484e28a150ae"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "98b367faae684aad1bedfff48b754ea6bc950c631ae7c7a2522c55ae2d47ca6b4c4ae50fa136b7e774ce63ab46d216943328608682edc650c7571271af6c87abd0b6a80e922fa3d293d4e9bfc6539b4f29c55511600baf2cf37345a98156a89ed14e214cfd80d525e57a3dd097442f71"),
	})
}

func (s *drbgSuite) TestHMAC80_SHA512_224_14(c *C) {
	s.testHMAC80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0cac1d970c06da6f224d49e5affec0fe338d0b375b66687b"),
		nonce:           decodeHexString(c, "1fb1df257951ce8fc0cf12a5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7d6e2be5aa574b0edff39ea938e94143ed92b287262891dd2a6c9193b0237e8fbe10056e15785bd818e548452792a31c728acc14ce2bce9295d3776885018a57c8580a8e7df9a34ea960e0b39af4510711320528fa7a0badc6e25a0eead8cb091c404f626343c63d40044055ee9f9e35"),
	})
}

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

func (s *drbgSuite) TestHMAC82_SHA512_224_0(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7779b338c6daf3a808bd6d4d4f8c9dcc417858c5b9eafbdf"),
		nonce:           decodeHexString(c, "4c3e8a78c4b6cc08add21f48"),
		personalization: decodeHexString(c, "3d3d654bda5319f1f33a8b961bc4d81725708f49295f4810"),
		expected:        decodeHexString(c, "f7417860534c53c0b76d2661a4d7f2a73c3079e257708afd4a098666c6d923e61cea1a402b00359a375f5a2548261e3ffcf6905138fa1e5844a3ffe4807840151ddf8b0fdd779ce2fa4eb2dc69867322a942b3fa379f8e660c4b9cd8f4fc8d054ecd9a3e1976d48116b6227e48f3ebd9"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_1(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "78127871105b41bcab8e2fcc0872c6a349f79bc4f5de99fe"),
		nonce:           decodeHexString(c, "21e680ad4785b31e1c7e196d"),
		personalization: decodeHexString(c, "c16204d3d686bf094f8ec7adc787582385753fca97d58031"),
		expected:        decodeHexString(c, "3226aeadf9dbf8539b43f4090f617c3c9e2af46a9d23cb8b0100c9159e65e6c6c868ee6e129ec051a80a8b824cda03f01870dccc286a8b5eaa83973d418c51bb9636711974123a1594c9684e9048b58bc1afd7aac73af08d39741f364ecca224d10bcda931f1780975de6da62ea63acd"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_2(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "1b46250422517fa0a310728a513e16d7f5bdf1cb08957de7"),
		nonce:           decodeHexString(c, "c04fc923b05357f50949be63"),
		personalization: decodeHexString(c, "c13565a9eb0eb4e3c37e52d376004099c317d59d7f16bcfe"),
		expected:        decodeHexString(c, "e9d487826444ddea533fa320b5b6614c626f81a21293a46a426bf122921a453406cfe78b520af28ee242ccf01d9bc91c9b0e536a63cdc0dd7b2e9ced5522b8b715a60090705eb294f1f24c419b7b07e4e87ac437ae42ea50c89fe6a1dbadb4a8ea7cb208649a44fac99924a160599ba7"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_3(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f1a475541673e72ad1d8c87591ce76d2b10ddfa6a37b2a87"),
		nonce:           decodeHexString(c, "bc5fa0485791066f00109616"),
		personalization: decodeHexString(c, "c419f9f1ca9e1d9a581249bf304f8bcdf6aeb72ac93cbcdf"),
		expected:        decodeHexString(c, "534d83f1fb149ef6f907923156b300850be81acd35adb1ad57727d1c45e70a04ef8333c41579af2762aae14fa9084d95c02322854b0b5292e582a724e8f579ce69503558bb547e88ef1076c88b83cef5d90620cdb9f03e1106d9efa10400f721a712b3dbac020332523a4e3517cd51aa"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_4(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c9573801888e1ca2533db8e29b63e3563cb2a92c3400d4e6"),
		nonce:           decodeHexString(c, "6a34b5ca69c275641a7dc02d"),
		personalization: decodeHexString(c, "1a9e250392d2f10e6941879f52c1ed99ddc1dff67c747156"),
		expected:        decodeHexString(c, "1f41ced1a5b39d1c3fc4b4f56c4ece55e9838687359d8815e52137c653a0645629e9874fa1ae2bcc4cf5956b7c07b9b5979f8cb7dc4dbd472e8b2538dc5b03ae0e7ccb20dc44b1a5c5965357fc08bf4d80efc8b53cecdf31a2495813df49434e21dc87bfb206e01aac1ddc01c64c31bf"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_5(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5cd50643670d4416392de743674915df1e1935949f0e4f89"),
		nonce:           decodeHexString(c, "7f51ac7a050697e871ff8c64"),
		personalization: decodeHexString(c, "662803dcc005cdd5132b31e26dece6be6769b63a78c74e3d"),
		expected:        decodeHexString(c, "0457a933c41047631701928096f4e658d29d4ecad3c6e20ec5d6601b48375b1031364aae14d850f41a40aff32611ee03888e452adcf1659feffe6bab68c4cf561e26242f19feaa466ed3c3d76a985fea781aa7a0ba9eaedab04930a01fb3297131fee25bd8c0ba9cf004ac411f828b93"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_6(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "ccc57ad67f97d2cc0fd5832c22aff1d1dc9434b9dcd91b7f"),
		nonce:           decodeHexString(c, "5280496f83b449b8418744fc"),
		personalization: decodeHexString(c, "90bc8d33e5f5c2811c763223b1d116344f2040334d4735e8"),
		expected:        decodeHexString(c, "eb62f1dfc617444e7269021d955edaa4c2e8c5aa1f151617dd6cb4c1015f6bf7fc07b36e91f7fc677a78c91a06867781418ccaaf0f2b0ac2afd97400cbac72248f86c5b7c93d5b32dc5cbec6239681d6fd6ff2c191948b8a9c1702b0e3c155ba7a9135d43109c1dbd7d720b20b0a694b"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_7(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "20b5e9a31f2a548bb7107288d2f5f969398c5fc80b26fe10"),
		nonce:           decodeHexString(c, "16c1e60cb5fd3016a07ab45d"),
		personalization: decodeHexString(c, "d48ae24de4378a50597017aa749310cef92244622486e05f"),
		expected:        decodeHexString(c, "3c7bdd5caac4a54523732edba53dd8af20e27c7b6ab3c0be214c2d202cea315dedfcc1d385ca8edc2321877d10477267876d2118c8c0bf7bc1eaddaaaa1dd8ce771344464366d3c3cb07b1baa256788a46375095220406921991e26e5212317b796e327840ff0548dbb7ac89ced0c664"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_8(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7bda764fe1ea9aa3fde49d0e7359ed0f90b155ec9bc8b21a"),
		nonce:           decodeHexString(c, "1d555eb180a723a638422a29"),
		personalization: decodeHexString(c, "056d7e15879e3c80b2fea17434ab7ad596375756d984b620"),
		expected:        decodeHexString(c, "2c23eaea5ec8f17898b080f203af9992df99f37dae2a475d966076600ed62add0dd70812e203e7c4beacc370846c935d6e5363131b84eb5b4189d3a83729ce2ed4ba30a7b56e6be640ad32a613e301cb316e56b9ae308f27544043d7aab18ec356640bee179e3a6d731616c4e33cbedd"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_9(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d72a48b27af5caa18e767ce1f338d1f69e75b26ec2cc5bb7"),
		nonce:           decodeHexString(c, "59076bb91969ce4acabc3a9d"),
		personalization: decodeHexString(c, "e1eb9ec1932197d0de11fb000ec037c1b529553861d4fda7"),
		expected:        decodeHexString(c, "a7e62143e2419cb5a068fe99cd4f55d965d9da42bcf6870ef5b28e23961c5b31bc5dc1f0c2e298f41d3f75c5c70cef3aca70697662a2821474504604e32205620ffea2a6769ef83e22ced242d56b7e57ec20bf9dc0f504da10dcf563d551b8d89efe868cfb91f8e354c2166dfb13f3b9"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_10(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e27c86f2ade75590f5433fce85ad3da496af421ffdd51cf0"),
		nonce:           decodeHexString(c, "7f80ff9bc0ef064e19033236"),
		personalization: decodeHexString(c, "eb249b714f641102d1f24d274c3267c32f5ed6e4d32fe5ab"),
		expected:        decodeHexString(c, "36717fcc062701f88960fbd209baacddb62dff8403edf016ec54e36e7d6d3b392b955e4d6c0099890c8354c2b796ae81e0a5276298a39b82901b62252d3dc97538a47d2eacca41f9bf7893504375bd47ef482948891390ba7ab9878e9fbad69c6b576b822e2e46697b0051a8efb096f1"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_11(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "107f6c39a6cd5c119408ff2a56efafd487dd994eb9ea79ca"),
		nonce:           decodeHexString(c, "9f07c0e473afeba57423af15"),
		personalization: decodeHexString(c, "ecd1ec1d7af4b2a13a603bba80ae16b9af1c7f56d80e8b01"),
		expected:        decodeHexString(c, "e6cd1028751fbce6dbb60d61b6286820bb201f10f696b37b6dd504182c6110c9888cdba5d0e2acd1cd5fef18bf6fb802bdeae46b145db0894848012c838aa6c0d7899ba5867d3af52d89ac1d7711ba5cd953eafe917f35a6ced3ffd2fe5c2f266eae20c77c5e406a3d9818a8339d5786"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_12(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "888f7757e59da40cabb86ec5c931688a7f043d8f7f283ad4"),
		nonce:           decodeHexString(c, "b7c5cde1289b62cc1c004fb9"),
		personalization: decodeHexString(c, "b9a4f1b1f34126e5e8f27920d70db25c381836edf73f08b2"),
		expected:        decodeHexString(c, "b21e6dd34373a7681cc23b524e7b25fb540ca512435d4c0dc93dbeaa495e70a9b4629eb383ae4b275b59021b27fb4029f5de45801f040471764fefdcce0186b56f08274c7e5af0d2590f75ebedb1671fb5fdae7466e13f851f52d9f027102be0bdce66e01849c229c5c42635060aeeef"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_13(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "1cd10ad0a015083c3d6f24ff837e51b3be5692d51937fd27"),
		nonce:           decodeHexString(c, "1411349dc6b43dc7534cf42b"),
		personalization: decodeHexString(c, "a85c155a5cdae4ad4fa5a1d3f0e691eb9b038463f259800f"),
		expected:        decodeHexString(c, "491313791ce732b82e535011ef3435ff8aa547c2caff104a665f1b87934808b3afef4496b93a3c002febc94cc465c772284080ea9ad47abf7f560cf0a01eedea733a3ee6bf38eaaf83e3213245fd337973235ecc46325be7660939c614a1a230feca0a5b08934fca989949cdeae83041"),
	})
}

func (s *drbgSuite) TestHMAC82_SHA512_224_14(c *C) {
	s.testHMAC82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "440f9526897f79d20473708adea88954a4739d7878a45926"),
		nonce:           decodeHexString(c, "7e2f3e4427d00de41ae92bf6"),
		personalization: decodeHexString(c, "2e8bc8edcdb3dfdd451542fbc68481b30964fdf8a6ca77cb"),
		expected:        decodeHexString(c, "df949beb9b33d2c1522cf6fdb3206cb10b58411ba9e28a4096cda7662b69d23e0da2be9557b9a3b5a8d67db4d616ae9fda3a7e0a8516196568f7a81474c0264993b141f14066fbfc29da724e447f6e503385944e902510f0b3971f7bffc6a6a202ff88d8113bb222b104055f427fe770"),
	})
}

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

func (s *drbgSuite) TestHMAC84_SHA512_224_0(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e3531d9061eead2c3e6156d734c868058ee1106d6fbeda03"),
		nonce:           decodeHexString(c, "49f1adbb9b0434e43b35f61d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c83417e540a8b865e1fc67010f7c3ee53fbc7ab1476af839ed6a68b6868da3df1d7bcf0a391d64a8355483a13001973e6c41c7ef67775908e7722d33d74c3c1f1f4912054cf45907c44f63e95980d3b9431f693257742de46a0110d13e3b4a950ae1beb960827f01970a4423d1ff52f4"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_1(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "759643955856b089da414cb35ce5fef778e8b841eb4928e1"),
		nonce:           decodeHexString(c, "d67fe75c275c5181e9707cb0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b10bf0361c4c0bcdc332c2823ba4cbd5a467919209a8d26162706b7a9847d629329dc7b89a309d260d386196383925ec51abba83904d868c5b28d144ee493fc572ebcb76ec896e545b9e128d08d92b7e403c30d6255a8b61329303fc07e1d53924242aaa666eb75de6c917e41bef5359"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_2(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0d65675d08778de1c87ea1cbc25cf043d25a445d7fa4ec5b"),
		nonce:           decodeHexString(c, "04a0474456542589eb16aef6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "79c04cf6b5c19cc58233175a9f013acdc0f4133a44fbd2acd239ec7147880dc21abef48adca501cec91cd55aa5c4d7dd4396b8975d5ba94bc878e99eadd96cbdd43487fb238e7c88dafd5d6671a9dd7fce815227a87dd837bfe91b38023eab6c3b2c63f91d76008a4fd4d7af75700737"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_3(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "648c10d494a503cb365b9d9c13c4a773a45bba9283198219"),
		nonce:           decodeHexString(c, "b494706cd2655da2b91d97f1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "52912f08ad3531ca54ca395b3a82f03be22e5986a820a712831eb6fb040c4eef906216c752240a53a31d0a9fcddc00875c30ec7eb97149de5a407b1cdf7b44e1e8c50b5f5e9edd8074bd55a124ffc7d87b15446ce4c02ab3b6c18a5907fc1b19a910e71b3b83b708deb166d0668daffa"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_4(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "ef089c54bdb8662eb33221a4ef4f17d2c94cbd10e409d6c6"),
		nonce:           decodeHexString(c, "5cb151a90e401f0a950950f6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4f4a23bbd8b8c854f071aca737baa6248f9e83ecda5ed5fbe9d1f783ae212f75efb298105c405669eed22452b69127a67b6c29173f6ad3b484cf9d79d0a54c9d5088e483ddf2ceca1c92c3a58781281716f4df7c1277327b26954554bf606a1ae2adde82658054ac65d8fa65216e1852"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_5(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "210bf15ad5605cd9941fb8b309c3814abdff496b7026bdef"),
		nonce:           decodeHexString(c, "6f6ebd64164b864c44c93168"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3fc9b64ce46cd25cf6914b3af2962d45cbd8eebd8c5d76fca762172cacc32f86657bec562e325fd7b108adbeacac976b496882dbd43292773cdbe70e8f327d4c96c9ea8148a867d2b32acba33f665984e5ce9e4a70a5ddb534d66677864a0ff1769313bb6a7906e34051beca587040cb"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_6(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5930207a31b4c30034c413ddb8e45369b800f3134707065b"),
		nonce:           decodeHexString(c, "2239d9ad0ba0982832dd94e0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5155a1838cbf95edbcfcf08a66e5cf5f84ab4c80971c39d1bd750f1aef0450abe49ed45ad4a2202330e46f39ca3c95bf09296873e2655d17437925cb9d224c6999a7e21ec60960459f3e8eb4b0ef3f400a8bc741ea14017ef9d6e76094d7f48dbc87f9736c3e1c41f6de94ad2f6f9b36"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_7(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e3c43fa0c7b8b0a983f6029bb588da7291249eb39cd6bbaf"),
		nonce:           decodeHexString(c, "9a03150a7ee282422b738cc9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e9f7d7481f9c8e751f7d6932bac17beca50ab599bb84341dfdf85af59c59a4011fabfd91e9c7d20936243709f1a54fc895cab112bc08cd2ec405164f2a8737b2435a89fb9fe9a963b90dc85f0a4b572221b4384d872ba42a85cf3f4afda8a12ad58366c674cf26b3d39ab29b557315a6"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_8(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "6b9ef81228eaed4e83874f3e0a77601a640b62e9893e5985"),
		nonce:           decodeHexString(c, "5b895c59177332a152203c51"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "addfd3f666e9a55731b7b7657f9fb140f1b87ba509a4cb6e1d67bd5ebee7c91e045551ee10ea346752bfd4ed598b476ad842beaab8c4d5713433689229c183f6e3779b1bc0f03bf1cdb0d5ba9601caf12525b63f2c71aaa46d98910d20c40fe246f4733d8e380ed2b7bde5577e053c04"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_9(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c53db93a94584242255e96b86198688aed0c6412df909d7a"),
		nonce:           decodeHexString(c, "ff540600f108783e8b0a1090"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f47462b296c558efdc0e06d2f4a4e389ce6e0a8d5b18ecdadf7c903f8b33817a2b28638e4e1a6caab9ad9dbf6b5c78060852cf20ed4934bb1b9498be2738175b03ea8b360b030bcac5e7be9e2ff4906a100df7e145ef7d4b5214ee688dc94a8231a24e221832884985ed6d4bcbd2010a"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_10(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7f1f29c7e0d1c2696c3ef8dda22b3d85d3ac800ab3dcf2d2"),
		nonce:           decodeHexString(c, "10f84345eefb4de9437679ba"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d1fc4d2f9edf1af5ec6f46e6774695385bb124dca4df58dbd487fe043e4ee32d9fa0e4fbbbd48b1a2c7d5a40ad3d442f99b19e002bf41a9f2140a9b0960f4350ea4ee2e54d838dad4bdc9ba579b4d48b3476855df21fffa361b7e48bb3da4555e5cf3b013f0a9c2bf799cf9e37789df9"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_11(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7f11a3ea8986e157d398cf9d8821e58ec54b03c074a0d695"),
		nonce:           decodeHexString(c, "e1542d2f485d8d38ce6a0e26"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a1be459a9aec274670ec0551c8d7eb04a17e641209fa9ab023f4cb1e4e239d8b514fa624420ebbbf48ca41c6d185429fe8dafd2bc2188f8839248c0cb3c446961950ba19761083d7ff3dcdb64643568faa93b17501518fd3b28418c8cb12e758f87bfde156743e16c14dacb805274c69"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_12(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "382488fcb96104b16a3f5a022913d67a5e9292e42f983d03"),
		nonce:           decodeHexString(c, "e42e979ea87b26e284e02fa8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1524934e50ec2aa9fa500c942b6be91928e2b74816707f3b13922fe423a00b9f3f08af39afddc4166e43d8cfe67c21ebb81b9502ed635415601dd27b3c975105efd690e3700330803dfd6833e1e080c22f2fd49e63bcfaa75c55d00e5ca32d80f075de00bf475659064d96da16bf54ab"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_13(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "591bedd004dbd24dd8aedadf9e06ce459ae797c2c5ca1d58"),
		nonce:           decodeHexString(c, "1901a9199ca809fb79d003e9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "96fc7b246e91af2e3d53ee09661cec50462717ae0d46bb07419b3587e8966f36c49cdfb65a4b93c9272f992006d93428a48ac73806d848ee7869d06069f5039e0b4941c28f56610d727451475dc3ab8a8a997f65ab1092038e45e4e95c8ab434a2ddbf114805f889b788f43fa8365fd6"),
	})
}

func (s *drbgSuite) TestHMAC84_SHA512_224_14(c *C) {
	s.testHMAC84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "04c61e5cbd79804118267ee1c76db36b71b042bf60a1c891"),
		nonce:           decodeHexString(c, "b833be09092d4755ee6118f6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0c4663313750b12daaeee80cb28f097cbe6f50df2022f9ff02a51fb373da42411c5856a136e9645e99e69aee273726d146e3ef4e546273eeca52b43c068887148b7197143f5b9a4c55d4b0544907ee9ad2f181d1b37742d1479d39e78e47505603550d2b28bc1d151a50bbac140988ec"),
	})
}

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

func (s *drbgSuite) TestHMAC86_SHA512_224_0(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "964605b6d66e9a5292d9d31525bebf746e4389a2ddc7896f"),
		nonce:           decodeHexString(c, "bdf90e33bcf73335ffd5b6c1"),
		personalization: decodeHexString(c, "edcbfc33b078bfe6b4176e5be38218d55ce79f2a66116a5c"),
		expected:        decodeHexString(c, "54c7c78469d75c95ac0745d19e9c119a227adac9654beecf7bd9e450e99a2f18cbce799aa3191750ef33f3374fe55acc8a3f6dc0bb25fa2dec93d3567dbde2d7b97db688fcdb693d6737e5f5cf749b8e9be61061c2e568053b59d061f397325262f67f2226f020a2efbf7a35f0b7ab67"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_1(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0258db537a8e9c1d23bd71b29bcc1a613c5e9c709cc2ecbf"),
		nonce:           decodeHexString(c, "0b465ca6fb62ea62929ea550"),
		personalization: decodeHexString(c, "fc4666d977ee84a698a3d9d0218d67d1f8a383582dfe34be"),
		expected:        decodeHexString(c, "85501828b47fa6214fbecb914c95a8a0d66c1c934bda76a1bad03c87cd3e2205e5989257eebe32892dffbc1ba5ea3fa59cf06ab0fbc30b0b16265e68bd726cc03f4539227ff2ed3cde6c4b0f922176f05ac4fc2135814f9c72fdf1074793503e276b6d724fb4a9a2317dcaa1d90cc111"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_2(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7e52360fcb0515224dfa9667da4f81a0f1e0939d6600195a"),
		nonce:           decodeHexString(c, "6b4dcd641c9e0222a198d0dc"),
		personalization: decodeHexString(c, "6c6924fdbbee036fc28e0a81e85e40553067eadb80ef0125"),
		expected:        decodeHexString(c, "e6edf2d7bd306163075fa29dcd4febafb5444a491de16fd48bcb41b5145825a3028a0be45fac95dd22f6ad54472115aa6956855b6ff451fa0ef1c772f8e6781d888b02e6d40250bc2ff3fe2441c69f60387e8830f74ac49ba5dda06719983b34d7455827e30093268422670f23722fba"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_3(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "1c3a96b0e8678021629a617f91f72799226bc752ce3d1ed6"),
		nonce:           decodeHexString(c, "33b0ae9c091a4071539709f3"),
		personalization: decodeHexString(c, "4de61783ce5ec63f8463e0060090bc344d7f8a67e4bd1bf1"),
		expected:        decodeHexString(c, "3985215aa5ac4626d4b0e6810b018bc3499844a257a51e2eb9a1ff14df93bf1966ad825f11d088163703819cf3a60faf7ca2b82309cb879206571e2606e26828a054bbf6cf0591b7461d167b6db830a3fca4438c2b4bdf3eb9e4a6dce82128c5248b0172b22b1db4b002dc54414c267c"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_4(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "94dd060cf231cc665c6da4c9e2567631561098def0e1feae"),
		nonce:           decodeHexString(c, "0367559d20ae369046031853"),
		personalization: decodeHexString(c, "46e690d7bab0331edeec345b74d7df0a44368d066d71afc1"),
		expected:        decodeHexString(c, "a0454c64d8705e792dfbbedd8767a647846e269715813750f3843d8ed4339c7e12b6477340bfac2cb6473d0dd0b6042d9ef4d4c93c53f8901af5888f703a8522f944ebedbf4f84b3a3ad8edd1ff4b764c287cebb20b77d989d8cfe4abba7446604dd6393b6c89926b6ffda462610522f"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_5(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3ea5b0eaf326fa080ddbea65729b06494bd066d6a47287f2"),
		nonce:           decodeHexString(c, "03d01cca4eb32fe2e439d472"),
		personalization: decodeHexString(c, "93df3bec33d9b3ad7cd52a3055731fc0dc28941582fb8acc"),
		expected:        decodeHexString(c, "6a1fdee1c3ba9ddb5969e01e601eb752c26b586e10e58b6edabc70af65870b203db1e8d1de547d9cd42c6d7b5b202adade23d65ba2b9abfc7406d11a7fcfd1a157ca7f50aec50c729f44b9d8e13ffc86ba7c34d9d769d9ad1e2794d100ccb2b413f7daa3a462c5dca629afc3e1988263"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_6(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "69b194b5b6ccd5718f3b86eecb545cec907b2e6127ae9fcd"),
		nonce:           decodeHexString(c, "d7a3946a8e18be90b16d71e4"),
		personalization: decodeHexString(c, "187369638adaecef00ee0b98f22616ab0d16c0d4585984ba"),
		expected:        decodeHexString(c, "38bbc7f20deb9e7511eb0935c4d05520f86e51f36d1fac7207f2fa46f446296e3f88d327d04f1d8773bdeb41208d64debc2fa22a5def63cf3ad9cf43afb6c56f6aece59bbc06b2bf9381dc98e323fbddaf92e98dd34771f153e69830e56cf031cfb12124df669c50a0c16091db2a25a5"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_7(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "070481a6cc60841845d8ea7a1f2bfe6a739809f51d81f723"),
		nonce:           decodeHexString(c, "20076e507774e4389c938c0f"),
		personalization: decodeHexString(c, "8585a41496f00e4636a9f749701b8e4eddda2a2788697a33"),
		expected:        decodeHexString(c, "3f696485a1527a0451862cf583967ab643805532d177953353f45735abe53cb4949f4a5ed7a5a16615edd787b91a58fdd62601126588d7eea751f7d4e1c68e60accc8111f1b32122be63b546ffffed4e78c8fdde3e1e7a9de80a87f2c448d0b2f1f2279eda99dc805b4a90551dd11a4a"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_8(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0987377b837d2d1974ed89353eaac47b1203820a44bbb47f"),
		nonce:           decodeHexString(c, "1248a40c04dc13c12c4d2820"),
		personalization: decodeHexString(c, "f3b51dca8e1f71495e889f31267e0002f9ae2795f7a088e8"),
		expected:        decodeHexString(c, "f5c9f13647415e38dbcf51d9fa59fa255772d7491a25e1ba9fb28e371f7e342a93f9165732a0018daa391e572d997bbe182a7a5dbf14182aea5e00ff461f91af73b7d9bfcc0090618e874169e0933f4761d1645f23624535d5bc6acb290ed75be21fca0840c7011ce482e7471cd3ff8f"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_9(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "ed5dbe15d70905fbebfddc983222354a56deee50bcc7ed9f"),
		nonce:           decodeHexString(c, "1b0c08e6b9cbfe408288be42"),
		personalization: decodeHexString(c, "a9850055c33bbb3171eb5191363d586a0feafa3b7725e15d"),
		expected:        decodeHexString(c, "a9bd2a135e13f46ee4bbd1361186c9111170dec4204f74119fe0754cc94796f417448b7814e6a651dfe89417e5ea4072f6a68f90fae052fcd2de131392dbd8df1c18e33fe02f860ab4676afbc946a7bab81707ef91455430952a888ce036561768ace89a4c4dbae3f3ea3705f25a4e3c"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_10(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e0affd64dbb37e7e3a8d497b4e2165f192736b6bce012d04"),
		nonce:           decodeHexString(c, "0e3acd9ac2002c119b40c0ba"),
		personalization: decodeHexString(c, "abc6d1563a710446da2dc79010c19382e9b53d146bee5f69"),
		expected:        decodeHexString(c, "0fd5021b2aa099973f5ca8cb457b6cd43e95ef033c6f32d1bdff2a4e74b09cca325a464613d15155b52ade80beb1932afaf1a70a0346317bf8d6b6304fc25149c9829605d6f8aef9af3e0e59d5d91d05a77e135f5a101698222456a91b6812976b1553e54c7b8e8fe55627f881b4bc96"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_11(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "83ba814f77180faf0c62e7ade044528360406d501428f160"),
		nonce:           decodeHexString(c, "ed146ddaaef8f87227d0a031"),
		personalization: decodeHexString(c, "dfb64abee8c98592f4697c521d91fad6dc563ddbff54792d"),
		expected:        decodeHexString(c, "9302d1859f659cb3da6a77954bf767697ea30547c815f92afae27679a7b3828c04341f6f5d8076c935516eaf6fb180ffc5cd24a3a1c18ef0af604fd60c21c585a2ab6b8e309ca8796344018b8fad59c10acca5c8077165d7b42bd23e51bbe9fd5bb02bd7f1e56fa462122964cd504173"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_12(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "1c0b42ac60d38a2f1f5341f7f3c1bfb1012baee20b48c354"),
		nonce:           decodeHexString(c, "e3b6b51e2b2aaddc1fce75af"),
		personalization: decodeHexString(c, "5874d0e0629018ee07aecff06bc0ff40c8af290ed80a9675"),
		expected:        decodeHexString(c, "a778bf7bfbc3aad8bab72cf82a389c60310a105357b522b6961665b262145b4e2dcb436fe4d796cea8b76885a18b9b33e1b8b513758c6d26dc8660d780ccc01c7e52f12255df50b2fad5711324d963b5238d98d4294f32212cc0f809c4455e007a6aef445c1503d1ff364d726c04dd0b"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_13(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "523ff413f291ff6bb96de180b81f4eb9c0a01e791663d80d"),
		nonce:           decodeHexString(c, "5180eedae67148170d37a105"),
		personalization: decodeHexString(c, "7847e7a278f2f19986c00c7d26b7331c6e0a600218b67bca"),
		expected:        decodeHexString(c, "b7ab143c7d7a34c86c9da733addf6033ac582c74596eba1e5d30ac1a77f90e7dc7938a99f717afc877eb7abe6723b7b5821292a9013c6e06814cdbca2d0a1fa73c927b9f74abcd3b7227552e82eacbb2682f6c755a97bfdce54a24e97ea8f7a35b0610c1cb87059ff2d65f16dd8563ab"),
	})
}

func (s *drbgSuite) TestHMAC86_SHA512_224_14(c *C) {
	s.testHMAC86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "454adb53a146aa9808331cb86e8c0d94495f4c0b4fe5c716"),
		nonce:           decodeHexString(c, "4b729a67449bb5675a1f9d1f"),
		personalization: decodeHexString(c, "9160b7c96fd367dd7d378e82be11ad1827c7661d76bc1fb4"),
		expected:        decodeHexString(c, "1d7ab4500d99a18b8be2ffb8177c869059e25f1ffbddb36694fa8561da1d71f86a38accb1926339f6dff71ea8ed104c3518e62b00e520c51a096c1c62469e56b139e6384e982588e748a8074dccc51d558d944868e2b8e1dbd68bd83c663447590430ebe15c64aba4669d1a4a784d8c5"),
	})
}

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

func (s *drbgSuite) TestHMAC88_SHA512_224_0(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f34daf1a83be8c66db78a1771484682b2a2c1a85e8432ca0"),
		nonce:           decodeHexString(c, "264f964fafffd3e9b525c43d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d93a091f24b41ab722834c6e03f33acf5f5d6c9f9b2a9f4c16da15fd25c82f0ebde303ed57dc58b84b0c0686322f474d5843da8f6f70c20905babc28e57e99b71dccda26f7b037e40874d995a284a98dca1ccec7a42487f429b22b14fa25ad32e370137e1091be2823af1a9d354d848b"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_1(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "abd1f62b43c2b148d0119136785c1a049a88bfc8d2a97ecc"),
		nonce:           decodeHexString(c, "8b63f7a40384fddd5d34f602"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "358b7a12b1f24bed4bf127d7506b7280b7575c3c15abb52a54ee45caea8331033fec9e4533a28f0b02aacd19977a0486197f7679065e1ee7746d150bcbd52495a7d9eca7fec9bb3222555b81bbc4be9efb852e6c12297390a1eb2afe967c202599d41b447bbe62e762f567b62ba6572a"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_2(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3e6363995147f6e32565a406b066c60f1d2b0d4530b7b49d"),
		nonce:           decodeHexString(c, "a01827f1f2ddf5eb2ed15718"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "fc53f4beda45aba7bb67a576116f3d6cbe9e276b5c4d2c469a817affb34f913414cc1e03cd64f16c2075e6a17e4a4a44e9ce0d9902ae81303e243301a91ecd3ca1b74a4b655688e300b746d28909f5974cbdab82fb89cbce2383d730a8d81c32b15cedaf89447705faaa9b8708bf4786"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_3(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5e1744a97efb29557d273002e81056fd8d754f4a7c3660f9"),
		nonce:           decodeHexString(c, "c0dc51d382eb857f3fc0811b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0a0e20eace858a98bf9f4baeb1138ee8130d4b6101da0dbc12e984a1cfdcaed21ff0c9bdac3691cfbae4b6e2de6d2c1d256ca37682515b63e4c62ce2dcd99e431c0b5c867010c6c505941cd08be8cb7aec27e35cc8d84da00f8cb0d2d24662ed2717aac9566be8b26548a619b454317d"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_4(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "dbbc8cbf7e897db6ff62a6c64e023f0927ef5dff4bc3b8fd"),
		nonce:           decodeHexString(c, "0e7b9ba5b8a36b01b1c560d9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "fea381e30f28f97d3d16e9796fd43f72b1a87acb6d02eeb960bd39bbe79e3bc98933ea2b149661ba9493ab1a2aa22bd8bf75011d83740573f5af1fc92e5eef36e93ed07291acf7258d94e35943f599c3aaeddd3588743671aa50b902030516e6b9038702ab54062db6378d79558fcaa3"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_5(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c9fbdf0830e7ad307fa89df168f23c3a95a8a1e3b5bad17e"),
		nonce:           decodeHexString(c, "76cc2507ffa3428a0088a9d8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e0daf2da44c336a28f1612967549202425eb9d30dc34add82953fdea7b05c0461fff620edcffb57173cc13d266e76092eae7a2aab5a4bd6ec94c6c12c0e2af6ecaa4c074fad05531328d6314378d73e1bedf2fe41dd1d98a0df0d01c1201ad5a5ace9be833782f9d67c43a3783e3b98a"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_6(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d47012dbfb4c45cfc21bfbed79b5917a298ee998585b0675"),
		nonce:           decodeHexString(c, "083068b359b0568db28dd99a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ebacd13148c69c7e42cadbfce6110dabecc4c4087dc025c92b33f1a5ff829915984b9d378421c5aa87add7dafc326e930aad3f094967ec9a031d3db47817ef4498c68de615ee0023989690de975e9cb703479667914637e8337093d4a0fd0e70bb0f7a983d2e57a3060298cf563fb661"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_7(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3054b8a17e7949165920f40fce3458d329ba2f9a49aca375"),
		nonce:           decodeHexString(c, "f4029752726c79d51deaf5e7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "99aa6414d7e91bc8e6ec4dbeaf741eb9177ab4018af383e0d96e738dcc79ca83c4559d51194fd226af1f63a498d3ce1cc41074eaca6d2f2cdce4126ac674d3ffc1e7451dc1dd51145b04cf888e3643a0aa90bcb2b75d4e2ba36994b1cf2850cdfa89c045bc1c7e883a80b749e152ac77"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_8(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c3b37b4b1ce7c944bd5637010f959d1fdadedc644dc34c32"),
		nonce:           decodeHexString(c, "9a538928aab74e7cbe4bd6e9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bab320c1755cd8f47314d0d2aad63c02641bc6b72f45f4d02091a4ce8e7cf0752a830065937a78604d9fdf2a0b9704d183cc49dfb46bd8c3e6c965de2876ff096d4d4c80c791e7fa65f6c4125fb38fb3f2ef92cab84967286b50288e0663de1e1c100e536ef9df21d2ff3e47246d527d"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_9(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "413af08b97b5495aa62337b8109b6e1fdeeab59177d42b67"),
		nonce:           decodeHexString(c, "c6ee4d3e71c0028f07742fc3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4c8f6be540ea40de222cfde738091c3b3fe729b6655bd9a429c8e5563e68d1ddfa74222b73af3308ed0200594183812deebcb4f2d378b09ba83f9ec048db66dde72b2919e74c1440df1be32d52ff9bdf3220d5251e30144e62e0e159d4110f46314611acb9f1ac9e4eeb2c2aa9e3752e"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_10(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e99ac5c23a0dd8a908fb1b6f17a419b6420db16fcde8eb79"),
		nonce:           decodeHexString(c, "60d304ecc143c1f6f96446c5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f1795784ee4b5f4adff32c7fe096c06a6aef21b34bbe37b13f9e65ace09ac02bb5f1c66468b24dc3a982800c892a1fd4290da6106c0600f38ff86b56c03c618555025bf878a5e4eec1a917fcad02d2792ebb6be145f7be473dae3c474f65534903120d67192613fc6478aa19a5c1f97e"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_11(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "ccfa4192729261c658f0aba93fc082d26c749246329fd7da"),
		nonce:           decodeHexString(c, "95caa0b8fe92a179963cb10c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d75fdde8c95fa7190a8ea4c99fa20a9d821427e793cb36dc473409d88658d411fce08f7d51f2f20c9bd007867d7f9d83d990f649e14f127800b6d4a486d652f1f289d30cb4dd792a468b2426d232330349e80225445dd03d5af8f3bc7d15e8a15f640461b2d27d021770af134226a657"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_12(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "b4aead96654b757651ae06d08d5bb6589182549f67a1c215"),
		nonce:           decodeHexString(c, "38e1494f9bdf69d8dcfb8776"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1106e5764c291c0e96497e34617e78f638db0bfb5e7f178afb0b8e8b9c9fbfd75b1e7a078b6fcc5f1116af05e957645dbed437753bb88e0669360edbec79980263c506494774e52ec1cc8d67baffff5bc9d7f5ea8188f920ad96139e0c972e88b96010728be9d19d00d797fdc433bff7"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_13(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2f74593b03781fd063eef41aaf7bef35d202706ad25a1da0"),
		nonce:           decodeHexString(c, "afc3222e368a6c23fc23236e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2e7f69773be1e8ddecf37e6534042feac5cd50a3550750819604a1cf3972147ac28098450df577e6b776be072a58f75ce2dd88888f39b94d0d4b39691f4db783b7e1084af8b95239bbb4fdde63648e27c8b4c3bc322782233e2306f174cb37da630eabe55ca092ac534c91026f28cad5"),
	})
}

func (s *drbgSuite) TestHMAC88_SHA512_224_14(c *C) {
	s.testHMAC88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "b37ca70fd13538ef74c5a3c7ef00a78705919446954ec43f"),
		nonce:           decodeHexString(c, "3ecbdff8cf33b50788dba82f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1bcbccc535fbdc8617575d46ea5a9cef2622995dee19aa4b998325dd8d0935957170f6b18219354cd2759ba53c9c1f380586070db0c89979a581ce1e00ce38855e123dc3a2dc9ce74bc3b6e27c9603fb87c09a1d90bb540d267d456f5457daf0920a13119a2b805f9b97b154f80f4bbf"),
	})
}

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

func (s *drbgSuite) TestHMAC90_SHA512_224_0(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e3303a4ae7679c7b2e1b11a6cc53ec57da6320feab0a8574"),
		nonce:           decodeHexString(c, "23694cd207d292a0e2117d1a"),
		personalization: decodeHexString(c, "cc6815b0a2a72096228bcad19b160a094f38079c33843408"),
		expected:        decodeHexString(c, "a55de90e2072d5e33235270532805a32f7907a9f1e7909821e38457d4df4390320485df395d0b4ac7419ea76e83298751029185b29141e46436ff62e99100b48ccb7435ae39a2efacd728e30bc53ea13dbad1c2a7bf64888a5a5c27f5ba1967565a1eedb3f6f4c22b0d0bc26b6b39576"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_1(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "4f5a764f19f875a1318198bb8b349a30c08553b899eaaec0"),
		nonce:           decodeHexString(c, "45a0f4f8aede6e5a1f41c81f"),
		personalization: decodeHexString(c, "56ca0141d40f38214bf5df497051111586a8f17a55adfeaf"),
		expected:        decodeHexString(c, "f62df5d4b080486fb75d4650294daeeaa43b48e08eef1cbd84c8eb8e1e91fd14a3f7015fae775b029cffeaa61d6fbfc23540886948549e47290f2ec83808adb5aab8d1a6188d478478e782988c4ff005ff4b14998aa86f2740408799550687c8f1752c98b556c65349deea6f1d803e9d"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_2(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "4c909fddc98bb2dfae170a0aa0782fa172972b6ea85b7bb7"),
		nonce:           decodeHexString(c, "e22e1471e95de620ef6cd726"),
		personalization: decodeHexString(c, "91862754f5827026f2b06dde98f78b98a1482ae85e3f6f74"),
		expected:        decodeHexString(c, "169d1dc8766ab63d65b59e999daaa8487e961a1d28974c7cb361c93f828d20dc11a64d7d144a310a7244add3ba2a4a12dc92811efc35c8586e7dba7a5d01ccea640e9851092f1a5fef963eb5729fa93cb27970df0ca196034a9aa3888181b229f5ea265c850f082839cceb924ad2c099"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_3(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c9715b284991515bc3012c55f5b4733d80ed0ab0377e1e23"),
		nonce:           decodeHexString(c, "c662f939921a00ccfbd60e43"),
		personalization: decodeHexString(c, "ae3969bd37f76b5e4b1826d108f71288315c91176727c6a1"),
		expected:        decodeHexString(c, "951aed814cb927e4d7927d8e927f63a6c8ce9e11192a7bd28c8d54cd0b1cbbf57d3211ca349724f2600a11be482c87cd870953249926ab0f124b6ffa0addef4f1146d47b56968ec4b04661261abf97b412ccfd4329508e906c512b1485396a976bc103b769dcfee6d4640ecbcfdfeb31"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_4(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d25a87f9e2be0d53143ff7df4862804d17dab2dd8cb1f124"),
		nonce:           decodeHexString(c, "c46dab3fa9ba41e5be509ad4"),
		personalization: decodeHexString(c, "3177026124d54b96aca5f126c49cebe2410f7a5a3bf9be36"),
		expected:        decodeHexString(c, "231b1d2b3179d2173d2691300367393c40cc251027d1c08cd808fa6c735b27af004b19d9e520589a5b3dca9b482721916ce24b5252af6d4e4381d9bb74c189618753adb7fcf62881addb36addbf9b5cfa8d1fe6dca27e8526bbe35aaefac2b9f1a01bc8800b2631b63823d02af1ab85d"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_5(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "281600a07e9c2c4e12c50b245ce68f60eb8724a0fdf8ef0c"),
		nonce:           decodeHexString(c, "2009644fda9876d69dcf8515"),
		personalization: decodeHexString(c, "2a2ea4b3974f2199e91d640cd02211c2abfdb0a475aca283"),
		expected:        decodeHexString(c, "fc950fc6f1e2daf6710f334d6cf6685506a80170f78648aef58a86961466cfc19bb686e26d8b4441459d3ffa6afed7d4cbf657cdb2da1a76df1fde3b1246dcc49f83897f16f8a58eefde54556953ce1ff032f048d7fab9c2764c56a5636c97f714c1dcacbf6b922268e173a7a2585906"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_6(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7ae676a4b451734da237d335b62fc5be34ba4ab7a30602a7"),
		nonce:           decodeHexString(c, "1eb6319e8e94d08853f918fc"),
		personalization: decodeHexString(c, "6d1236fad9a2d0de231a41e6bbe378a8dfac61edbd419457"),
		expected:        decodeHexString(c, "b784dbdae689a78c95ffafa2e711f7402013012249f1807a931131a09ccbe070971e36c9221de28fb86784f9552b619ab99272b73227ef3707dbf3c54c91b3ef7669a8e3417ea498c066b4ff1643e2bdb3155a33afa2bc849c179fbf94da4df319a4cb07461c1725d38b6f1860aabc89"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_7(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "b1f256a885b84dc228ae9aec33937e6f368b318422dff436"),
		nonce:           decodeHexString(c, "9eba9038aa20761962600868"),
		personalization: decodeHexString(c, "0dde17a7bf2ee703801319babd44882394b5ff239928ff37"),
		expected:        decodeHexString(c, "353d850d24acc856d403ff3b2b7d28537ccca984df0bc6cf76ac4f429998f5d9083ad9eb3f571eb420580b97b152a2027b97e520090eaec8726b587dd14bcfa29a216c3432ac8911c8e9dba88b2a625244e6af66790c483bcc86999a06034a671f65d229a630fc88733e66247449b0cb"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_8(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5f341c5dff9f4e360c0863fcf17f152ccbb88139cae66bc6"),
		nonce:           decodeHexString(c, "8b00a1baa5b8cc65ad9c9971"),
		personalization: decodeHexString(c, "fdfadee79f09cd11763e0d37774dc8a741cf50efdf63e481"),
		expected:        decodeHexString(c, "e109796934a01dc76886e6ea067760028899a201194673a42b4396e27c8550bff9959d3b68e5c43f70a23dada1b55589d9eb487f8034891b28c915f57f9717fdedbe2711a73aad2336ec9d213f3d5451119f70e0ef4f943dd156dd4f1059f917570343f2df84e9d5880c8d4088658e0d"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_9(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3175c146dcc471af61dc0332ba34bb423c5fbfcb7d5493af"),
		nonce:           decodeHexString(c, "a4e244f41aa276be01336b54"),
		personalization: decodeHexString(c, "b75abe441053dc92d9f2af0762cd07ac7b3f64209d45977f"),
		expected:        decodeHexString(c, "b8d12b6fcf72b2822afc28a6e6ddc5282f882a2c91fd3d1459dd5644c35de19a864898bd5cf425f809123f1fe74f622100463e9a73304afdf91b38b0d84c4bbf743c68ce58bb5ef4484b3942ca27953441138366a851d6ac2c97b58020cdaad931d2b66b64eb054140b2beb8b60aa502"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_10(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7b6e8cb381d57c2cbb817fb717c430e0c0ec4c4223bd4978"),
		nonce:           decodeHexString(c, "82a7d811338ce2f1e55765cd"),
		personalization: decodeHexString(c, "6d818e590a7892ad20320a8da5986fad0d6dfd2639c18d27"),
		expected:        decodeHexString(c, "5b4de2b9a7cc34469b68f110c49a5c86134a25413e192fa0d3d6149c4ab2e257a081477e3a9d0c504db745183fbe21c9d204f3ff2f5d30f666a575d3c14563a449f70722a9002f8e14d15ef750fd8560d48990e9f650b15795535ea430a33d7c2c3f8ccbf4ae2e6496cf45d61c841440"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_11(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e56b1663085d4409a5c6b7ba1b9be6008a785b2ee8d35d0d"),
		nonce:           decodeHexString(c, "70fbe48f4878432a6885c39a"),
		personalization: decodeHexString(c, "8e8a4f95f6d590ab664fc95b962ff9de01d0e962355869a1"),
		expected:        decodeHexString(c, "7d96b91fc1b62ae0705261822116461a359417ac266e8fed4786748a0e7b6d662786a86c59c538f38c7a72349a5592d29cc726e843f9cf5df0c75a09f99fe314ded0431abb2a6e0c41c50b7fdc4a3c8e464c936c1fca40f76cbf52755082c19c58eb8d0055350c9bd7cc12e425c40a4c"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_12(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "02ba1c8b09584647170c5eb8f1d873c1051432b5a5b3fb70"),
		nonce:           decodeHexString(c, "b80b42d3ea625b78e58dc502"),
		personalization: decodeHexString(c, "919476db346ffdbe0fabbca46cbeef65866816c7add8b57d"),
		expected:        decodeHexString(c, "941d6f2a3187ee3a031a9033e6182655b49df4cebb26697611a551f785758ccf0206e89ed2fec100de0955e7f2995672f047e54c89f23054c96a8ee7eacd6085dae74a2928f4a180cbe08fdf10309da2ce3243ded1c3e02ce06d9c07cef5683305f1945df63e378e1bfd4d665b2d3d9c"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_13(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "b1769e3445ac80870d8bc0fa973bcc1bdad10d6ddc79599e"),
		nonce:           decodeHexString(c, "c4bf61831c5c2ebace04846a"),
		personalization: decodeHexString(c, "ccf622319d28d73a9bd96f5e475bd113e3e2fe08a0c91125"),
		expected:        decodeHexString(c, "2e87b375d519248457e0a13fb76765d7690835db7b54e794976df1d448a0050e77cbf6119f393d2f30e9f6b308196874d9123de6b6a5884668518b8014d28aa08095de75bba6d905c0ebc909735871afbb1ff616cd8de9e2741210cbf9e49928332f0c508006b01cc8a0efe453714591"),
	})
}

func (s *drbgSuite) TestHMAC90_SHA512_224_14(c *C) {
	s.testHMAC90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "20f5f4e9177f3aea0ed784f29e6ad3d98b7ec22bd6813386"),
		nonce:           decodeHexString(c, "98ec3ae036755323042c08da"),
		personalization: decodeHexString(c, "e6f24d96c8d11cc68e72f56ee7e345c5a0083509821fdf17"),
		expected:        decodeHexString(c, "f5a9d375a58d1b337d245d29b7a9e352cbb0fc950276e042d075a71f4bc43b65b063bff299c670adfc46db39c4303adbbfebcea1df964c27d33cbfe4d46567475abff4f357252ff7d05ed4ac34e6ed14c33c192909426654d604736f3bb0ba01aa5e0454d60dfe8aa5b2df3a52df22d4"),
	})
}

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

func (s *drbgSuite) TestHMAC92_SHA512_224_0(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c4fb3cc673584f65aab31e16454639870855f1214eed7389"),
		nonce:           decodeHexString(c, "6118e3772d3661abd2a4d253"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e76605f95067db702989804341c5d89b596a938da1dde2e95b704e5d52856106ad9c9dd40c3cb2a0a146007bbbeb33c6ce6a73247179246c2c62e4eb94047f19be976badd1fa2ba3fa2ba8e8390071dd745c384005de7d4add40e86d9814ff338963f99c04e2b8049d6eff177762ea15"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_1(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "a1c83f9dce3f598779cfaee5b35b44a186b0400d69ef65ce"),
		nonce:           decodeHexString(c, "873687888999958af6c43026"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "267acc1abf128cf3e6000a5663a2c8c391e0048091a0ba3bf8a7fc26bd0567ef8017404939041ba15a02fcce30643351d86c59e4841e0e37ff1747a555d74b61ca2ddb06c502aad9d894a2b1d3d538294d7c3cd30885418d8657010ec1311e2d1d81fe00482620cac965989ac4ff81da"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_2(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8b237ceffa56cece738386c02ebb18564e6d8f8d95933694"),
		nonce:           decodeHexString(c, "295515a03cbc5549328d1402"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e4571e6875291e55dd133d815f8f79c2f16787c90452978144ad7f1c86f4f626a42c661dd8dd3f89c56f01638d13f08fc12c05a934f518f5ec8067b81f6541a1744e653a903275345c932b7f75c87e28eb27f0efd4424bc73ff099cd69ed1d19bfceab1a00de7551cbc0a17b28e94e91"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_3(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7108dd77febcf9c9622ce18d0e55eb133185d01d0eadaa46"),
		nonce:           decodeHexString(c, "9d91b9c79cfd327ffddaf258"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b9492242ccb9de427f72fc0f335c8b6ab4923f77a1d6b77c66c9160bd50c79ef52338f35b526da4d5cf57391976161c2501294fff25dd539020fee8109e1841b28697237adaae555db963a36b7e5b1becd3c0e477ab8adf0ca27f6560b1e21a4005322c800c03ac12b0a0f9e32044e94"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_4(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "35a71f1f1477262fbdeef3c6519b4c8cafeced619247f0e0"),
		nonce:           decodeHexString(c, "131c28c430e082e247fbcc33"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b75094b8c9cebb7c162155287b2d8154833ad04c657eb1afb3f25ae88a0445bf549b4c4e211cd4390c9bc5612f88fa5825907a93aa0042bcef14b5a5c1930bc97f1f6bae6943eada1f0a70c5d4f20a2ed62fa11cbe48f46f267dbfda6d9617518dc0d386fe25f1f706778e7d9eedb349"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_5(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "6fa7529f51970267e12691bc61d751ffba248097523b6307"),
		nonce:           decodeHexString(c, "c3daff5b85a277b8cb6602b4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "00af923a2a59b73aa75bd60ea15b5c442b781514e18b9013e38424a2317b730deecce9e78181fa1452c6dbf2e22c76f17ae1525bf97ed277b1837f9aeefde422185eb6ca4b56e4b0bd3ab4dd45e77376af2058f99e863c92532dbae96d35039b9d6c530843d1df37361ea0fd039f0a71"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_6(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7fe4876c24e1984d3cef2d39363cdbbf3d62314afd38d15b"),
		nonce:           decodeHexString(c, "1c7aa72ba39c93dda32e8216"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "55350dd355aebb35cda8277553fdca6899db0db798fe65192e496efc7ad7c4d12f50987b505e7857d39ceaec843f6ffb6df5036b9f9440003d1ff3cab3aef5808a99fe59eeed048eba61d0f7add2986167edfe7dd77b5dc0151b57338673f3120cf051e7daccee9780cedeca18c71c5a"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_7(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "1ab7a896159cde0950808fa4634e047c8ea3b21cd65385b9"),
		nonce:           decodeHexString(c, "7c5dca71d1e6d7db475a0eb6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e255fb01e7810ced3be9ea0410b85a576171ecff2ba6e42b48bd95fc7199be084500ab32db29ca0df32d47a0d9cb31ebe33f0c0cbd9d3fc88a6ec455b601e0317ff4654a0826cf76a8ae1f82037f0c3a9a0711ac8ade55a5dbc8ad5c291f6a4a2d413f7178cd5e5b1e20a6e055ce6916"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_8(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e5e0eeda6c10d7399d4373cc1763fe7497a6dcefdef3117c"),
		nonce:           decodeHexString(c, "f834f84ae5c5f575c9051b19"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6a5c5e29af39950a974779f9aa12b22b7f4508d81d6af68d96f7766e1ddcbdb6a8e49407148f7b4ea0e536db358654b4e6697d6857eb1efa611731612dad3e69774a5b9432afc8c666f495b104ce3e8bbfba5a58eb3ecf2a0837c533ebac232f7e14353c27147109becdd86f03ebed7d"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_9(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9e33d60882a7d76830d4e09bd3875a7c79a70dcba6809a0a"),
		nonce:           decodeHexString(c, "a42882e1bc97ae2cd31cd651"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "280573785ed687dbb9089b9dc400c943d3be6a1a9eb23a08030193e8435630c2cb580c79c103623aa8e21b1b88a658a7ce1e95fcd30c6a5551d46302c9424dba582ea57204f7e9d5e5ce28fc705b3e454f9b1c93acc47453f91c69c3d1f1dbf2e003c7b784164df89105248d39a9fa9d"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_10(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9f0463cdf0a570013618750020f3624150c7e450a72982fe"),
		nonce:           decodeHexString(c, "3ebe6ca51bc5917b8e813890"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d12634c4bdf03b793df7b5a958a7fddbfdfcc8014370c95197166582eeee86db1aa4c29ed27fb76136644192ed4bb95b8f45ac8c3cc0f5fdb1d2ef897e22effc320eeca1fe8fcb0d4f40505143222760bfebfa33eba2d1cc3b68715c25a2680a404200780fcf3637d7b0159c3f76673d"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_11(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "af16fec8eb451e1fe943ddd6b024f9b2c900da9a51a34cbd"),
		nonce:           decodeHexString(c, "d521f835d68b4e7935be1bdf"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "56368c7a9f8ce117cc775cda0508117f0be43cfc2bbfe9b37237d8e9b4f430c7f1a589f4663a837525b514388388d93c37b2ecac465c958e0aa0404552ac5ef18b5e8eccbcda175347f05fd497b205eb3565a84cf8918532f0de2af9098d1f673472f98dae065fbc95755cfd7c463c5b"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_12(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e1cd2895c2bb7f08a17cf1ed43edf63a1079683dda7f1dc4"),
		nonce:           decodeHexString(c, "eca177fe86d8103f3ceb80fd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "52fe64e3a895c3e03c5a1c822f00412472ec8dd33587b986efb16351717792c5b9de7992dc53fb48ce19e8e46e95187fafa8eeff8e2b6b82382b5666e5fb10218c00f5fd154a7f15d589d24c932eb6d906ecffe51091101e609795a2945ceef68eab4de6f8e993adaa026a29e37dd07e"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_13(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "de09dbae1769318a11934f3a60e4585d6b4d3651a3fe9438"),
		nonce:           decodeHexString(c, "15bc228bb7450f10b4541fdc"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1a9f338f8a8ecfa40b7dc768025516eb4fd067fe9a3d3169bf1a613c1c04e21f53bfb102069cc077b7fa88a3934d522e95c4999893e0b8df84367f2488d5d6d32bf2cb53c67d55875ba5c90a4faf62f6f6071367ae33d1ac856807cff9e58b2510d391f1686c1891a9013c4416cd61d9"),
	})
}

func (s *drbgSuite) TestHMAC92_SHA512_224_14(c *C) {
	s.testHMAC92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2fe6d7ec78f76820cd88c41a5a958c399c7ad1619406caca"),
		nonce:           decodeHexString(c, "1ed975755cad5e4c475c5945"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e34b31db083e58516cd60ead2e5b0d39e4a2bb47c2436531c0e700e484c27d3d233d10d1ea6c58148149751f24155fcd258f384d61000da88106a0205d693e4ddfbb5c35f101ff15e531e9ac4a988c16302a962146a3aba9af5c505697cf9aeb7bdb8c49c281458acc33ad4010122aa5"),
	})
}

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

func (s *drbgSuite) TestHMAC94_SHA512_224_0(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "540474a887a098daac97c42f0818b64d40b8eb47149fccbd"),
		nonce:           decodeHexString(c, "eaafb1519bad0b672da5d22b"),
		personalization: decodeHexString(c, "8181206a69385a76953a51d7e5edff3157ef41fd08c41402"),
		expected:        decodeHexString(c, "e7103405a5564138ab0909761b6a06b7e083d294c495317c8145a58162d81d1d3a09b80a3be99da51855b87611384fd171e648380d02f23989db0ebb42d2968fefd7662eaea94077dc1778b867c69033d3ff83fba96b57f303fe68261f48301bc9a8f063254a185fec9a180e6bb5aaea"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_1(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "bcaf9aea03649886a7e783417032bc48f0bc3c77a6c46124"),
		nonce:           decodeHexString(c, "6ca3fef89c7d9c299b493368"),
		personalization: decodeHexString(c, "9eee0eeead1781d38ee6783630d3e65d9db9d1c9ab731e71"),
		expected:        decodeHexString(c, "ad5d0a53acae54aab7432409ac7b46b1c54ba410ff60079dae18df059a644b0610cbc5bd37ee01ac4e40e16ff6972e3157f952784d98b50967c8ae75a36b85cc830f6fe856bcb0ed4baedf93e6b55fb68e3a1414532e4a7297ba7e3120d5365655653d79207eb76b459088b16b4f07c8"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_2(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "4ee53b9b089cf133e5e162085d506716cf37a5f0aad13135"),
		nonce:           decodeHexString(c, "8e6f882967d17ac775e2326a"),
		personalization: decodeHexString(c, "805c3ee2d07d3826289cf5ce76a4f70573f13e1b1d5ed514"),
		expected:        decodeHexString(c, "bf21bd026307a1c2456029bad6a4b19fbf18337f3a6498d26379ac147c0a59b721e640b499da797062a309eadd378c922983a7ace3ceef05a86f882cb38ee714473f48c5088aa35c5db7fe7d30933aabe57ef2df9f94eda15772f3b28fe1dceb661e708d90e764d870865e65e747cd44"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_3(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "37488795638f53d944c091548b41ff84e1f59088658b57b5"),
		nonce:           decodeHexString(c, "992ff3c60155f91dc00909ca"),
		personalization: decodeHexString(c, "eb5cd8ccca404221791d4d9c3fa8d561c4b7b716f3e267e7"),
		expected:        decodeHexString(c, "8be432e37dbe2cf3fa18ee66e1fd5d065963e15330960c0f80cbd040bdd2178996ca946ebf9f84bf5373225022e789836b7a7a8acbae99bf689e1c73fc7f507822fcffb456c0bc9bf4f3167d8042e09266ef10e92dd522d0029fd642c65f300420c1f94e727f4a6bb1e2ec6ebe7e7822"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_4(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "37300fb491848475c02d54a5301ab519ee0a4f79f2f45f3c"),
		nonce:           decodeHexString(c, "81f001ca36ef52bd88d8e3bd"),
		personalization: decodeHexString(c, "0754e254e5cf74c59997909046293ce030bbe3bafe69c7c6"),
		expected:        decodeHexString(c, "00b002b819002e67e15667f067441e7b3f1a5504ae548be606e58c0ae30f1d26f71d81a0db5a25225b6036847d25af79939aea8c4f0bc3541b9ede8a0a5a9a3f45eaea96d88f6fdc7d395818225b60a3fcac49515a540fabac74cdf57c73bc59689d19d98a9f313e2581a784284894ce"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_5(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8f251f01405589464b7e05e73459fd3432e10a28335347e5"),
		nonce:           decodeHexString(c, "cc63c71fec0170aedf8d537c"),
		personalization: decodeHexString(c, "2116b9245c27ea748e2137a52334c918f36c1a64a6c7464f"),
		expected:        decodeHexString(c, "290e95a1278b4f7504dad0231e4733d736698f4222430682ca18ba0aff31073e53d51c70046f12b1b6a14d74247cf1e3aff2a0a1ced96bc1ebae92e4c09bd810e354ab268da3150c3bd6d9df62d5ea6cef9c49163766992b52b137c40946478290941e9238c7a2da1a0b00f4cc4cecec"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_6(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3613593f30ab411023c92b1a1790e07026632c1e00d70661"),
		nonce:           decodeHexString(c, "853d8aaeb7848393f43eb566"),
		personalization: decodeHexString(c, "17227dd8912f2506f849413c870519ae89245c426f2a2243"),
		expected:        decodeHexString(c, "450ea8ff0e69e88bd799f446c506d7157d92f0b62d12618089765eb35c45415c28c608342f0e3e6385afb9da049275da25ced9ee04508588461ec5f502625c2ecc5bf6b5c33e646ad4f6a6ca98774c23585216812229c069bc7e3eabf7584c4a8d50c4a1184d95f77a121f6c1b9cc175"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_7(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "762bbbdd8acfe5561274e27d2be46164863ffe556d37fd38"),
		nonce:           decodeHexString(c, "15c70ed7de9e2c385391f0e1"),
		personalization: decodeHexString(c, "cd60cd237f33e40b3b37062dfa56c1cfa90b21c549c48d79"),
		expected:        decodeHexString(c, "51c49e156d6fb62706c79a67b336a0c00aca33d390c483c46996057a9210e5c2b3bdb10c5fd08b1f4140c6eff0f0cca9617f1d3248370521576c51a5e2c30cab28b7e92e2c5758641ffc2a72efd065a57460a81e4dce6b47dc3b56482e024bfdda01c07d0aef4229c7b10247cf8b4ca1"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_8(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "20b5460e9de84c54c032a00281aae28244c00dad68090aec"),
		nonce:           decodeHexString(c, "1d4b21fee75f3fced9c0eaa6"),
		personalization: decodeHexString(c, "486c4f79ac8d0e50c606a4f918fa237dfadb748557d230db"),
		expected:        decodeHexString(c, "89e6e16d7a504bf60f8fcc96ff50e50fce259255d1b36293957a6a377c0dc949fa72d38ccfe19290827fb1dbc98527cdc1b1c75b5faa281a84497d871767e67e3f37396f7e50187cba2b4035bb9b9b4d8783bc4ec610f458ae88f37a40ba0f385569097eca4b40a0220f8a5f4b172c70"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_9(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "97e55216da9e733d2d305316f447c21ad0073979e9782818"),
		nonce:           decodeHexString(c, "f2ca8e35c362794c9746d415"),
		personalization: decodeHexString(c, "409eb3662ca4881d28eb316d8c278feb6281916c44eb3bdc"),
		expected:        decodeHexString(c, "aa85c42dbf91cf07b753eefe8ab560b9b0ff2d2c2b49a45eba03db5c7d562ac2c2db7daa54be6e75e87896677b9ebd9ff91ab035d865fb75aa6d418c098a9506fffc74fcdc5d2a74e7352df990ceb38eae5719837539c8a132f2c535cfa1bb69cd6d4eb6f40874397e1c8938f6fae444"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_10(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "28d50a878bcd630b30233ac8fab1fb97050809109ce9008c"),
		nonce:           decodeHexString(c, "224cd9fd557fb7bc5c804078"),
		personalization: decodeHexString(c, "4bc7107510317ab16ef3d2a640aff47875f95a92c2314aad"),
		expected:        decodeHexString(c, "23d37ed9f748e0b51c0613a3d2e4428ec8e8c06e551b029c43c8555a2720a89de0c3b533301e21dea1d6893eefe77466ccc518d1ce48690f8478a23ee4e1fc8486039d2752fcce5b9d6fdeec286c441f6b12d8f6a8d39154db12c71e38f463359f8db1c1e68a61fdc0ba0866aff438ee"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_11(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "59427cebd6bb51403dc4e3b98fb2d8161577b97df8da6cf3"),
		nonce:           decodeHexString(c, "0a0202a23a48f3a04b6869be"),
		personalization: decodeHexString(c, "80527604f7206108389b0d789c2268039932d53e09878902"),
		expected:        decodeHexString(c, "5cf701785ed71ef72e2575055dbf277c28ef352c74ad35952c4a1456943c0ff02a29d88c333da21186c0a96a4d96c8875b8249aecb5785ac1768eb1da0325563412bb7d8e2252de3fcf87100b3f5da9b4d6b369ca978944080911cb60066960036985e33cff514a30f2483f2cccdac15"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_12(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2bd867d7229b5a6acc918b27563cddcace362cbee8d7045c"),
		nonce:           decodeHexString(c, "2a6a7d5de86270d56d36f209"),
		personalization: decodeHexString(c, "9a002cb5218f84b74413a35df313344fa2961c59a76d0f33"),
		expected:        decodeHexString(c, "9f682ee53c84d4d4a49500fc42112173d0836cae6d7c89c8506ad77da295732d61dffed48c47be800399acc02c159c8979f37ab875442db6c983fe846da97c7ac9bf38b70f74d52c2efabc38728bdbb05df0f469ba933213e601d680efcfae6b397dd13e37d4d371cd05f850374d4e0c"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_13(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "02ae1981aca084a3634db99df57878d6d9d43f7d89658f67"),
		nonce:           decodeHexString(c, "dce7d387c7662b1f9d7575d3"),
		personalization: decodeHexString(c, "26975bcd40635e64f1d37495af4da7f3e4ea6b9374d59e09"),
		expected:        decodeHexString(c, "b08036bc931cdc272d4c4c66894203320e28aca6b5ae174b5b820832563c0be15c4d5e3468c3397b4f960d73e6f5a4166b5491cd9f431ed43fe2700380c6c848a84bd82ce69439dca77971fa402f7b720caea84f6b64eac5e7e744943eef6c421448867555a133849cd7edc7576e3b8a"),
	})
}

func (s *drbgSuite) TestHMAC94_SHA512_224_14(c *C) {
	s.testHMAC94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c3e01806777c3a435935e3a3b55110bc54a1fed09cad0e08"),
		nonce:           decodeHexString(c, "4fb71fac56d2aa35d7fa44d1"),
		personalization: decodeHexString(c, "ad66fd02b6f6e30ce521ae0d783236c75cd3699696475ac7"),
		expected:        decodeHexString(c, "4b2df98ad411407c1dff07b5c08e97ab501fc20ad191794dab73e9b4dce62470b3c70d75f07848f436f16a8c63ac31a75525bd928b5c76218099ec940e3ad193eecdbad834557e92602d7daa6e3eedcbccbc4d0829c8e1c7e59adb95ce928bb138870566eb27e4725191a9ebed50304c"),
	})
}

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

func (s *drbgSuite) TestHMAC96_SHA512_256_0(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5b3f146867c87388fe04fc3d24f35626faf66baf9d8c5d0facb2aaee8bb4e466"),
		nonce:           decodeHexString(c, "175857ea77de3cf4113001a1aad3dc23"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5a78701c0446bf9cc04f34719e6b4a269367e250b5747b241c5ac3b70e946b918f4d9f700c9a975eb0b5ab4f72a479c8ff6098e346e9fe4b5926a41982fe1b80bd49961ef154851b49c6abe7454b0b9ee27a32c460768008922daadc9e06553cfdda852dca6565b18f5ea9a98b96dc411b2a949c61b2114dbb657948e4f76b42"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_1(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "1666a317326650cc54fa44d79fb12f2c92d25571696269091cfc2a29cb6596e3"),
		nonce:           decodeHexString(c, "b78aaf2eca04378633a5ae675e13b040"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d736aa8a0de24e6c52abef711f1e1349db056bf01e483f48a6166b4547c523f33fd006162bdd52f2c62ae1dbe3a2c58b938d72d8a00eda9242d57a155ff8a2d41522c0328731d52a97230af74099c0bff068aca1dcc4d9df7b9995fcba22c0f2b936fa8e70e1a51c79cdbf1bec25b43c56ef65295a58db537f3f370296f11923"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_2(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "2009dd7821a3585f99a4cd2f457f24229b53d22cc89182246ca5db6e69487c71"),
		nonce:           decodeHexString(c, "77b1b3f5360d813f180b06a5fac3ff52"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b5f8d9152bc11357f68b84c5fb327988f4342097d3fbb1d93e1a3a2f24cdee67c55eb8dfeeadeb217cd5c2d09a357b95f47823d2684320788a6eb96cb1f8bce99062abbcc85a03fa94b31ff2d69dba146b0e9c5e90c36fcfc0b63e4daff8029d24f0a636434d4a1caf28995a361163c86827d2064652edec5426c1e0980e810b"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_3(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8fd8dd091ccef6d09a2cf58c82527e580a12a447f142cd5ea720fda937e28087"),
		nonce:           decodeHexString(c, "e3181e32ee2401be0e3b6b860eafac88"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "754cb5db3d50e40ad74b2b622120b6326d36979aeb8cdaa5f81ae18d2a5e89b8d648a817159181b635fb93baf102eb492dbcf1c3e3dc652971bb5b45025a893bdfaa4c1c25e2dd31de50049ed6ec6d80e047bc459c7686e1a731841d3ae5b605957a26c44956d5549ddbedc9ec5cc7c92b3cf707bec475075d0fe35ba0009f7f"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_4(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "6db89e68a2655e75d59f95de5fe3d2b74407b4f46884d1e8f137732f054b8119"),
		nonce:           decodeHexString(c, "aed46a379210fec6af9c77410a25e2b6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7070edce2f109a33036d2e5728c2a45b459285d2f7eb16e20fbd6fb490a5fd61c61be9ca45ce9fd09a4dae6c053f31591c8e64c494bd35c13c259bfacf36b6db2019def01cc74e7596a57aabf4467ad4998218e0264ced67cfa37c6ec50b131a5cf6b9f676feb95a0647865af7baf4f49a3a4bf7692458025e25805dd19c9933"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_5(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "435ef8c310049da6e111246eca1bee2227bb8228d71f3d623d23aa0db0ef31da"),
		nonce:           decodeHexString(c, "2c55bd5ccbf346b71d6e7f4b2756a270"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a439e798d74920d9209072e57bec34ea4fd5fb03510b44e01a499556ce11477aaa4381f66575102282a4a5343216363688e28c0a36613701f3f57a168477a8e556b2a14dadee9b153b035b8ffe589fe4c8d582f7c604e72a786eeb6fb0fb37eeee3175335e652158b15a8fe6cd38a0251b759e6b40c075e37e55bb4c42dcad64"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_6(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d45d3b017c2e0ce9981b77271012e475eb91a757f5ff4f51405f5cbc26d85032"),
		nonce:           decodeHexString(c, "b4b4a4131af602a8d729a25d0fd5c2b1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1a0890ff41f543326a18610c59567e9a6b0754d6af94e2bcb7347e5d1331a7e7c6174d9877d5f54de708b970e2f8e1e3c5d9347f2b374121d263b3a904eaa271bc9bf42ef26821fe10cb6f0de1e7bb552a2632ba84dffa34e5cee1a188f22210bb4f8124beadeadacffb8847211c3040065776935e75281a0d418116be0e3ca0"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_7(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ad54eda3845c0aac7ad5b4ec279c62bf582172e3fabcdfca15b230598dc486e0"),
		nonce:           decodeHexString(c, "9d6cd0bf5d3f97f53b5a4eef256aaf04"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "33086e0efc780b22322cba0a43cd0fc8bb97276c2aa510337469cb8ba0a07455208cb7fc586865a67af37784bca6ba032bb470c23cca4752fa3f82cd7ae511452d43e5d389de0a1b599856619670b4720e2b931f528a288b98c56e6b0c7b2cf06299c14d28ac830bd4845a59f5caa5276ce447cdc6bf3068ea017108ea8e8df4"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_8(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c67e8e52ee82a9b13b1132fbaba7fe6210bb31a003e5a3356a4b28faa5f2e408"),
		nonce:           decodeHexString(c, "b847901b4687575cb72b3275b06f0444"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "51226367fc26700d609d4b01ab33e51c6a882053c38551bff3531f46611c1a7305351ec487b49ecf0dcb642367ab5f51cd760201bcdf72fd38d08f3c645d34aac91714b870d3f0f8ed9ff7be78c820d438df3b846efa538752ddfdea4b2540937397eb5e457c426ea7650b7ed26620acaf3f2691bee931723f21b2d169b9347d"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_9(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f65e250ed53484c77c364c65c0fc1ec3d9cba8e43bf2625cfd3bc6135615529e"),
		nonce:           decodeHexString(c, "0de3f7b52f56b0b7b6dd31678b08e02f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "fe9adffe781e198629a7716b22dfe1399422f1115eeb1622e343f5431ae5763811c2b18d3a9cee915ba4436238730867c3a48533ffbce8a9594042b93d94ae2b57bc926709a7a338ec1d2379cc37e88509f8b95a8ea8cb9d99a7f1c1bcb07570f873459a111f3c5b0c02b387fcca1abac0ce5ea6ee4e83dcb2feb601b23c88e4"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_10(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "91998ca5d4dbd8295b61b40ea79b77b3fbed7b479ec112b9fbec73e9eb1514ae"),
		nonce:           decodeHexString(c, "6a5fa647a4eecd451aa58d94e5add2c9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3f60e74271dad63be38e6193bad496670d0512f3fe55c7de8f7c7f6e2d1be29eeb9b15f3d1fa01c167d6e66f1baf31fb4890aa76d0799fdb6bc0e5793df50c2ad193c2c570692d09fa6cfc8fe0ba0c13481e9f2bd7d2873638179bee35d1a64af60f1d7165ca066d25cab6e96d0a1bdb0baec12617585271b5111e3b1e7c5157"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_11(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d1f062384b3edf86ad129511339d270d05c17b04c5f71d58508c94df92167a7d"),
		nonce:           decodeHexString(c, "8165f59c1b683c5204d544c7197c04df"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5cb24f3720849053bd9c398e76edf3ab6936005f1e4f8d2428c9d05f7b1d45ead572c01502fb2afb8c19cf700125896e6e798c2ca8a2ebc74fdb9cba1f60f2abe83d5037faee4364cce026e310c25fdb16a9cd002281230be4fcf1c9fa1cb3f386834ee3cf19a554825cb332cdfb1eb04d52fcd01d1bce690797dd2ca7016879"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_12(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ef27ded40795e5cad4412949b351c7164ac4cf814ca72dc0074d366432b3e268"),
		nonce:           decodeHexString(c, "83392a8b16f873ea57bdc63ea371e315"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "fd824e80924215cfadf3028a5ea3a5bfc9f78023aa4ac8ca97f9ab9015148180765b4850f6e62c7242437afb9b34659ebf5f0c1163f36285f9661f3db9044a848dbe850f65c8fdae88bbeb9db3e8c03103b4e927534982e9071f4d34a1e44340287c7c6ad0f94c9a163ad35cc98b218762743587a2b4e89b0f8caeff7869464d"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_13(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a5c4d5a722594982efc03c0e34807b6480b96518527603394bb2d79810677b48"),
		nonce:           decodeHexString(c, "ba916273e88cc91febf21eb79fc84d98"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9c06959e1b051a6e69b8605cc9e44d1dc4c63f8767416d14c39c26eb2fbc01ceebf16d163a0106cfe4ffd8e3caa6ad58d04cba95562b7613b9e0a2f8aa0a10e93d6bf9b30bb41c31e4ebbb399504ccc8016623fac5f5908f8ba7339e6c5ca9573ee058429c44f537dd384e3592ad746de441dacd4cfc96cc4169c32cce4627ba"),
	})
}

func (s *drbgSuite) TestHMAC96_SHA512_256_14(c *C) {
	s.testHMAC96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7f422e735bdf349e4f51787571ffe061ec7e9181fa0b6a342e36611da25c1a15"),
		nonce:           decodeHexString(c, "b09d8dc6997bcb567cfd788d0e06483c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b83bb6e99b0a5237242711e27779d05d2157402856f9653542f1ce52b1a7463e13d5c92309a06d8a78773ad70504b64ff070c2e6afa4ec3662f2729cb7552235b79c18e08354e334474f238ee74feb7e892d5701543f418cd7f2f5533437d9901dcc54687816f16eb7341b1707c6310a2085dbf387044a78fed850b42fe9d8b4"),
	})
}

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

func (s *drbgSuite) TestHMAC98_SHA512_256_0(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "dd8dfec2a638c28cc592fe8251d3194fbb6e61aa616ea5e97d0f7fbdcb86373c"),
		nonce:           decodeHexString(c, "b1374a4e92d9727022a751b8bcc161c9"),
		personalization: decodeHexString(c, "e08910e9bdcf94a44129e70ac8d51bae004460be9209fbc4fea6e58677c0ba0c"),
		expected:        decodeHexString(c, "6042b14ef02ce94944d88222ab63fe31cc33f9d263507897b0c62290b0927618735364adb6c79384a40b5856f3cc97d7612ba3775844c64339922bf56e66a29666f1c2b2fb190605e90eb758c07628364ca08a11277b8d21476526201af6270ada6434ac9979b5f824387ff370c7e4b3357b589bfb4a85b4beeb005f933650dc"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_1(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "fc411e7845d97150d2c95a0175f5ddf669c8b500f07026082c0c59d2da32d7f3"),
		nonce:           decodeHexString(c, "a2093fbef410c3e32afce740e4e60200"),
		personalization: decodeHexString(c, "51aa4bb8db57866fa3949d57425803be4944f6bbcbf99cd1b56bde050581fa3d"),
		expected:        decodeHexString(c, "3952ae32d30304db6e71536da7bdfee6ee3819b7a15a39b328f8f70b119d11e6254e8f06634e0267c994685eb978dae49994f51fa93ebe6742e2f17086afd7288230bbc2b96f34a6355d0795403e0e7dab5e7f96c76717ec11f08b1aa8aad01dd92d44263099df863d56b7500e1d9fb367a37e16c89abf312825cf1d5ba7f4f6"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_2(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3b03c7f8e50df0114104dcebbd170461d71037f804b544912b2db16783341ba2"),
		nonce:           decodeHexString(c, "63058a60cc2440b8e2103b955a3ce7fa"),
		personalization: decodeHexString(c, "37e673c5f2fcb73eab99bdbe85c5428fa5f2b048120442036e98b0523791eb8c"),
		expected:        decodeHexString(c, "df3d636415279b81b915833ec2479a7cd32b8780219a56dfe4735d760125235b366484f4b576b8cfbefcc69882585b393d21f8f743e3aee8d879aef8ea4bcc0005d29c0a69f9c00cf7cc25c688de98e24bf11447847fc42ad16c94f58856cb1419a91a1c79e6cc2a36121b1a38f099d6dcf9af1fa63de6e3b0021d9613694a22"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_3(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "62889775bfb695f3382f0c3065936f2ca0c8e3f36d3dabbc3fd42e840341d43a"),
		nonce:           decodeHexString(c, "6e9417a995f808b88ec3f993e5357c4a"),
		personalization: decodeHexString(c, "a9e295ad98021c6535a4cb357a54f8f5a117bd2737d4ea9853de82777966c9e4"),
		expected:        decodeHexString(c, "258c5c20c10f4439f89fbc0aeece81f821613f24237c6b6d0ea8bfac3203b9c2b8f63f7254a86b567030db17c315eaa0de97cbb24718fda33e0b919b24b2982ff796bc4018b71621c53feddf939020309cd58f7cbc345faa234274dafc21e65aac143455a56e4a617ec1d8a33a726178c06911d5dc07a646267ee4b8d561b15d"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_4(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ec7661dec7df316fb840fc76ac8d71903f6310759eadf95f7b9cdb0ecba20421"),
		nonce:           decodeHexString(c, "fb6b67d61c6b28360eb88e6f5c9350e8"),
		personalization: decodeHexString(c, "e6488489e7fac11d46ec82fbaedc5eb7afa5152e0b8a829a04b89e27bac1c51a"),
		expected:        decodeHexString(c, "7b90a1cb3d214f54e91c2fa61a69ac9ecc6e43041dd7f2d0d47e763992a06719390aac0e6ce209b7f5a17c5f171409a66500c623849e3d957263e38fbdd89f01cd457b461390bd9ab1f9df5f704e6ad851cd83fbb3a151a8fb8013a6f2e096a6268f466390aa65ee58a68391f756b9825b84c2cb624bb1c7b2c39f775e2238e8"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_5(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f901f337e25bf8e1bae97af692a73401faa390ba957b5bc5133292a87882adb9"),
		nonce:           decodeHexString(c, "2d9afe970688acf45e291bd510c93836"),
		personalization: decodeHexString(c, "18660d66f4f07931896b7fe198fa87ec82b25506b400da4ab318625eacf71518"),
		expected:        decodeHexString(c, "928ee49e1e18b378e9fee6f4f16bf5eef588025169802dfee70227c7e57ae7ba8d59353fb0e1e51676e40921487baa3b840b5f98dd162e64d929b8d81417ffd449e3355db1d35acb082a537455bd0092dbfd885b093922986291cb265acbcbaaa41f8b4f98ac671ebfdfa27c38c41e4c8787484b8ff99c78e4f97525c3f0d785"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_6(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c24f0a26f18e7b826c81d50827a31ab7c7212355cb55aca952023fccca8a7898"),
		nonce:           decodeHexString(c, "fc3ed4a7151f9e12dcc63d4a73bf37a7"),
		personalization: decodeHexString(c, "a0b65d0f1c232c1a389d7d0d483d9c2627b70f4494d26b7bd87bfdaed5664cbf"),
		expected:        decodeHexString(c, "4c3af91cfcdf0fdcf7c634827be028d8645ae10ad640f9007ab0a890a8ec8b1749ca963d1f2fe50c982e20d409d0c7c64beec606c5b3529a8765a6d3340681554176e9445e9d4a65d2317c5db8584bcf5d2221422282f2b1ae3d9476d0dbb5bbd90d6e8b16ca0d47d8599bac225f67ba2832745fc0e1678b2d7074089fabe9bc"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_7(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e6c70f5c233a609c41f940b17133e1544803a5c429b2bbb5917d9d31af83caca"),
		nonce:           decodeHexString(c, "7a0bc455e12edfeb33e49d1d011f51c5"),
		personalization: decodeHexString(c, "1cd40e196df5b314cb554a95cdc58e9f1be896c7e61f51f1e1f38bfde47c0309"),
		expected:        decodeHexString(c, "877f3d2b98d694a0d0307eae5ca3ae4690ea725a748bf53f26b16b637d24f2113a51cb531046f92a487d880f9a2ad92f66a1e8cea4aba46c18878b03fac98d07e367f10f7ca0ed9c44eb50111c9b18c43e00214fc90a2d7cc0e5865b7d8826974dbd1648086cff3b38ee948f3790b64f066d883061551f9f6745bfccaecb6783"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_8(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "62cc5d526f4309f879ec33204f26b94354a83b555ee21e4136f02c09d3af9432"),
		nonce:           decodeHexString(c, "22fe210e3b06e853b5f00a6b27b8c869"),
		personalization: decodeHexString(c, "61d3e3f488b6d4a97cdb4833b97e5a1dc3556e9898248ab83af7b7addd2efcf8"),
		expected:        decodeHexString(c, "a77671353d8f4c9326d4cfe1b7fe4ff9e3921be4aaf58335137d3ef136750a3a963069f2e816f4b46fb40414a63dee8fef0aad87ea5bee17a48fee71e262606bfdef3a5991c7e1b3f1515aea637935c2fccace54360c943d96bc46910405a94df6d16e78f77bd7fd4c9cbef9f051908c601ddcd35a6b768dbde202727d03487a"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_9(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4f7d29aec8ba6438d89c9830999deb28215680f7abf29e7e84a8bb6a9f4415ad"),
		nonce:           decodeHexString(c, "4571e9f72258e7de7801cd80122d093a"),
		personalization: decodeHexString(c, "86e3bce95d32dbc308ac1d0a1a233868da91ee2ae436573462a2f603bef82b6f"),
		expected:        decodeHexString(c, "1c7bdb5e2f91e38bc7ec08ccb600ab630af47a81dc1b9a25dcbc4921d48c844c9fe4f7f1d097b4bf63ba6bf54179d12ea384ceaf86b58957ae833c2d9c715d50eb9ccc41408319dc0d25db24b4fbf5fb906282d6f75d15ab37d27101cd62da4b670260ff2d421359af9c53437587f5e12a800208b91b61bded901c4772f8a731"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_10(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7569982669b99fbcb79d23381bdab6399820a204dffc405463f9b769493a50f7"),
		nonce:           decodeHexString(c, "aeddade62e85511b545953897a945c89"),
		personalization: decodeHexString(c, "ff2003fbae431c470937fb68007fb36247f40f23a8c5623aef69e8c094fd64ab"),
		expected:        decodeHexString(c, "019fcaf920f3ce2e2bf7c3247650cb8555aaaf8f0a0033758409cc9dde00458cbe2bfc118285d86664ad665a9ae8c6437d1a085b820e5bcf2461b7715415a463f7472348679f84f6c9afcdf93d65394db23513c3efe3c45783d7c153039e9584a3f9b63c323df37d73d781516b0d68e2fb01a80e477ffed6e5c14ef772db6ca9"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_11(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d287d43e20034609aca0083e55332f0dff6d6877e646cffa3c8248f22478af70"),
		nonce:           decodeHexString(c, "90b2c63497deb7698e84f71d149e8b39"),
		personalization: decodeHexString(c, "dd537701d7d89bd7f8ff3f1b76a84b15c706eb12601798f9badf64fb52fcaa42"),
		expected:        decodeHexString(c, "0641cf15cd88530f05b902fef84b4be142ad686905002a21cf74ebd5626d564c5786a835e01a669c819d63fd15bdaa97d55523bd431d23dade44029d6d1e6c374c62ea408a674f877d8eb638b6f270af0b9ead6806cc19f9b10261b0b7500eceaac56869e2b2a9447b65f75c7228720c1530fff4150aa7b82787880a183d86a3"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_12(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "698831f2aba2be5b651bb40850a2f9d1aed8ed8ed180f71012a52643d38cc04c"),
		nonce:           decodeHexString(c, "4bd3beaddf6280ef1009109868afe8ff"),
		personalization: decodeHexString(c, "56e05ef424777b7bfb75e755e70fef1186d4103872aa5cdf35af81ba4b00a2cb"),
		expected:        decodeHexString(c, "2684818725306a95c04b38e0dae52ee97b3c3c85b61053c9aaa59d656b64af1d8ebbc47787c17024c54b6f90232a9010191ec63092b85ea57c1f62ca48500e4099ad3c8b80e01951bd14445c5b37623d44ed8c64db9ff3bcde5d8ca0abe0baf3717fba2bcde261866fe149a2653a4e230a449df539e0d79f6ff8fd4b99f8b3a2"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_13(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a95fe69ea1e020ee75d4cdc9a29a8ecd7c543a7dc8bf3ec27586e45f4e5ee2a4"),
		nonce:           decodeHexString(c, "fb1af7987f30edd626ba0cf8e55ad96d"),
		personalization: decodeHexString(c, "9e448d98496494a4b510adf2dadd5f66b3d4a5d8d81fb5c8bbd7244838c4d882"),
		expected:        decodeHexString(c, "6374dc751a4655d9d6990729d70d25ce147c01556fc3f827c63783a517a0c6b033af4c1325bfd49e98a38b6cb6bebc139664508b91d2775f4ba03de149b84f8eb6b7dffd8db38af1dc8b38e0aa5ae36b791d365b08faafb9906d2755e279a6e1ab912d4628cb79e34847cd9368abcb5b390017bbf3594959bcb04fa8c5a5c449"),
	})
}

func (s *drbgSuite) TestHMAC98_SHA512_256_14(c *C) {
	s.testHMAC98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b2fb9d9bc5ce30966b7f2e6a6458e2f2f6e72ce857fba052b5327ede9ec2492e"),
		nonce:           decodeHexString(c, "06b7b75d18365f4957489a09204b2672"),
		personalization: decodeHexString(c, "9e32f001033eba3bede220d4f351ce110e6ee2eb0b099ce54f9606a21d80b1ea"),
		expected:        decodeHexString(c, "508333114a0abd5fe10327daa0f1342c66569d912a64d8ae89227d0d8ed5b4052cf84f0c38927d88dc0d7c476e747965adc9579a4603a36566a1730f55ed7b100c1695f060674484781682ee629167f7adce89885ff04d722d960d0297d2abf79bd3338126c2d356a91bfa588f80db7ea365bf181fa5370c478a04d05a515b78"),
	})
}

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

func (s *drbgSuite) TestHMAC100_SHA512_256_0(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "58d74d3439883b3706641fd77df6585d9189642bf35fde681415b88dbe739c97"),
		nonce:           decodeHexString(c, "24be10c3e7e66e3ef092293c573791ce"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6ffd1d09fedbbef493a0148c027e21f5c849ebf4aa22cc3ef5def034db12d02087f2320eaa9d4846ba2a1a2700127de263c773eea7d7f28c80e56fe9a17e1170993f96be21dfe0d899bbe537982a890a3fc6fc504026f396635f85f7c7288959f52b8bc1733797e6f20f04fa390939f8396ced1cbbd98330068002b9ae76528f"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_1(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "aecef1ca16cec592aa6ad0857b8632ce3ea58c1b7683fcbead4c200e9b8d86a3"),
		nonce:           decodeHexString(c, "f3c40f46569c1640dafd7ce04980e25f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "35ddb613ee1df8604d3c57fe63415312d735e39b822f32dcda3f5b36f48b28eb1dc4340c102a10f3eaa3c7d5d80c4ff017e9be4b7bd364146352db99f4e2c8c230211923d57ac97f37a16360fe41b853a94c272dc714188136661dd4f94681da70873c4279838756ab0eadac03048168c89934573281b209df3bf113fca13551"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_2(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ea2c4de790dc599bf6b0004f38cebf029d5bb309d270dee4cd17c5f63f2c1f58"),
		nonce:           decodeHexString(c, "d25a01c86bc41b09a96db5e26e6e7268"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a39cf0b6a58827112425a2a3173e7217fe5c12b91405b695e1869a8cc7b03b446085845223e4fb759a06f4fc06af9a256135ae0b2e2fdb7c960cfe98e245d045780775c7b572f3708409e0e54af3af6eddc9a6d526be10395bfb7828f4a83c3ae9ee1fd39af9a1344b24139ca76b7f797aa26806909786d805dbeccfc58ab4e4"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_3(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "56847911794d3e0aae716c3fea9bb7934c20a74cc6c49185e4b8211a6f9baf97"),
		nonce:           decodeHexString(c, "bb80288fc7310d0bc949d9e9577cf5bb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ed025df4673fe9abc7b71cdeb3562331bee52de9881fe1893ca3c5775aa4888c6156dbed89f43ac03589947edc37dd0054579fd9201215df95331c7b8d76a444e1fa7d0e805e10666cbf96a223c4302e10090889f57c9fdd4c5695aecc63f9d4bff88420b67abc0456ae4647d784b1e7cc0e107b9037f81bdc815fd37db9a53e"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_4(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e0c22f7c9ef6d333496daf66dbb2f66bed05603214baa0c8c26998168be4f136"),
		nonce:           decodeHexString(c, "7b91eaba77c65d5ba50acfbe7ad4021f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0f879fe9f07fc22fcc048037f710268f18c7e5c48c400239e6e14fe1bb21a85d475e4d85191c63c8873f6ca5950c5f888760e9aced47f7dcc693c53d9f1ab05cf95a7d1393e16b9137655da54534dba399bc4fa69de64ff72ee64c17c8c7a8a5b2e143d9395c86ccd29d244ffe7aeb516aca23baca299125eb7d62c2a0e02830"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_5(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "50849e29bf46faf1fcb6b5a89f0b4c440d37c01c6704e766fd9806a0645dc77d"),
		nonce:           decodeHexString(c, "c5482d9931cc99add1454f5be5b49a82"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "82fdf574adedec8d26b8ea8da77d63b1dde7d4887800bf928c52381b7320b45148e04617d3b002dee13c182133bbc087c57654df708abbf3eec2243c8d6dbc890ea3692a3f49a07b4278be4dd39110084987b7b9b3617f2ebf4ef899a1f602642f7d5a6ea2c8a67f511648bc1ef477e583022d6672c44d142e0cea69ad753cd3"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_6(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8f997669afadfa1eae9975c796674c43e9114623a9b4cd11a2878755ac92f570"),
		nonce:           decodeHexString(c, "6c6e904acc7585572e0f22977589685d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6ff95048e306e0d0a4735c3d42c617ee737f7aade9aa3dd2c10a2129e4771dec06971de0d2239f804fed7f5ef30aa7355d64fcad2c096ccc3be6e3f1ac86535f238b0b6cffc564a2c0b83dbd994662cf1fbd734ed7ef7904874aa4c72122bd50ede3601a2d8e208acf0d554f99431f68e70bca8f14d405a86f3f4a492e4eab06"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_7(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e2564f88e03f952c9e763d5559cb6df1f1697551fa7fe77755f813e75ac9e0d9"),
		nonce:           decodeHexString(c, "8ce0e8e322b0dbbca3bfd27e784522b2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "abbbe509fe028adf25e56f01a09e4e36c80f46e6c0952637b2b5f6a4cb2e2e11d74b2230d6ad34861feff352c7f7b34fef02892a1c716d2793c84a9642d09083b8e42f37300167815a52b5fd8537bf9c491c6766f36179d9d41e6d6486ce37dcd192de93f9b91eba29604068adb3c0d82d0ce7141e26a778eaca4233d448a907"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_8(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "053e0a70a8282ffd496aa1e23bbc08f8ad63d6f8bb3384bd85e6bd7d73dc7459"),
		nonce:           decodeHexString(c, "278a4327261c8ee2b66725d665a58176"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "db1d35fb48642ea3e8fdb42bb013c8517ef79e20c0339f2b5ef81f24a36373b9e3c7accd087f34530b74cca912267c622ad990bdc7bd38b75b9ca04f5d17082d1457725df57c520e80386555b227a1ab6b124b610ea1ca5257a513a0a040d9fba3f6ff02e298c571c6941c9d85276716dc1ce52e757eb9099c8d799fb00bb93e"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_9(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a95cabe12de3ffc140075da1b7656f7b1b1dd52b9e27a21a7f6b14148a80fb18"),
		nonce:           decodeHexString(c, "a0b919685ab73b2f5645c92f32d1516f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "51a716db9d578dfc3e53067707f5adf0113a95d531f66c45eeae4e83bf00f3c776f001da09a6680274e522afd7dfc4a84eb34e0fcc4977079885f9180b663e2a559be765dcc5cdca9d2a6c7cf5e1301fc291a98126d70e4a6de8f09ac8bc59a730f7fbbec0d6241c69aebb77999c730cc52125628e40ad15520741af2fc53ed9"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_10(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "195801f6378b76ae85ed81a4e906414d7e434cd46e3368cd9a2d6877975700e0"),
		nonce:           decodeHexString(c, "e349cbda480925a90d2e0b88af171d79"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "35eebcbbcd48aa8ab40a6536e65c10ba8efc6e889d29e30d463cdfad077a55d6108f5c175302a5e7cba3dac94f82ec311ee8e6b73e13fa15115b4baa2848d1f30f1aeb8efa716a350627c85371ff744e8e305d851b3bec0a2530a10ee77e63695d6ab0452d6c78a5198701e048370e96fccbea803591f4e099bc0e801255b774"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_11(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e7c5655c8f504efaa3d7467b54b02a5443aa2cd6bb075a7f665c01b38fd28c9a"),
		nonce:           decodeHexString(c, "86e2ee751854af6852367d2871b93e65"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "050b98d3de20130121733a0197760251176b28c5108badea03dd1ce0f4a8f74832c9e7813a507a6c2dff80eb2378a0d26c79300ff3dc3b1729df762ea50a709b87d97b138e9fdf7981eac418cb8830599e806040d514acc6da5040293bcaf46aee8f4eba69e8690aeb56f414e55910102aa2d4c5dde2e58c3625ec68edccc90a"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_12(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "13f1e2a631cc4697302c85ec96aeda11d19caeaaf42dbc57487cee53b54b4e03"),
		nonce:           decodeHexString(c, "dbcc23386960304602da9c2cdbc8186f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5c6e47247e68c6da45dae4925fd2071cf3e4910a2cc77675951cb1ae714763ad8cad934ee7cd985f36aca2571f9505e9effb11e93428389ccb54a04138ed59c24fb900c9b59e0f07406d611b3e71fedf5262e48bf4e8c9c38cf1a7c3c43b54e78a3a35049e1d90145f45cc203e8c22d2530c62a225356e0b38236fc7cc38b455"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_13(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e285871f4c6e631e6411272e9275b12ae74908c292961089b8ab137df47e819b"),
		nonce:           decodeHexString(c, "8441c048965d3b8585a5ead1adb08212"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d28a4c73cf6daec844ff20a3c4f642db65a7b5222aeaf0f99a34d65277e626d0c76c4fbcf2a8c94c4d9d213907e27d20b8b201ce8b05a5aa47e9053078173a7f640a5ddfbb05158a70f36da1a058cf4f451f2591ad17071f38e097ab1ac80cd2b782461b82a29ac5c5703337a21cc3eccae86da1abb1e192cf6c889bdb729fa5"),
	})
}

func (s *drbgSuite) TestHMAC100_SHA512_256_14(c *C) {
	s.testHMAC100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "df6edf960abe3aef5f50741907c0171906c0837ba3bfaa3a1044fcc4f19ed21f"),
		nonce:           decodeHexString(c, "ff2558bec3e5377c12697c908d629952"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9d68c2674eac76f3ccabe1c6c0bad96d5fbdcb1629c939e397eefbcd2ec2f25803fbb9aa72db952f7fedcb290da99f34c0fdd637c37dde1446d475a61c38c3fc5c1ebf9541d136cb02a43b2646df7ee4bd0d9191157dac92a33f401f089ae15618624fc0baf707409aa2f80cd5d0676612c2667aa420acc6e016e6ba3f63c686"),
	})
}

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

func (s *drbgSuite) TestHMAC102_SHA512_256_0(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d2a3ac96c06d87d1f6299e98a3ac43cd163917490ef02b652d8416fd67c0274b"),
		nonce:           decodeHexString(c, "a9c06352c760c84614eba4b66298f306"),
		personalization: decodeHexString(c, "be420c590d13494cedc74f3236313d940bc0cfc4738c885b21fc7d60ec9bc49a"),
		expected:        decodeHexString(c, "fb66b8ae25159fa61631277b47db3bac31a337961ac46eaaccae5902dbd356dc73fd06e21b23683ac17f1788b2b60e7899122995fb25d016b936d9bae58f1e06be96a1e615bbdd49fdfa79e3df8ac4cca1f066d555893e2fe4360d16db886721ac8a5e401934f8f5190a3750b00b2a4629beeff767d3f4270fc1fd68651401dd"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_1(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "0f78c24cbb1e44c6b9ffa66ce7e89270ac1c7bc88716340e7f53c4d3ff7b65f4"),
		nonce:           decodeHexString(c, "90509da07f8be8a0f625fc12e89b7643"),
		personalization: decodeHexString(c, "cd4856cf2a61aea4fda4bada702f0be2f15a460bd1a690a139fa3515974fa9f1"),
		expected:        decodeHexString(c, "1f3781b65456151ae296b7e3b2e82c9292b8d97c1249a98657491e1eda382bbd1a337bf1287a22d1b26cc7151f7a2d7a6ec64d0de57c64a6d1fd3272d1f43b1de46959862fb85b134977502c291ebe7c842f1116e34dadfc3a130c1bc80923dd68432ac0d80aa1c35b51df05951be928692513a26dc16975dea4be0b35280b8f"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_2(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "33ee8d0dc48c2609347b59433e29bf1685e7900c423d1ba1752c9be5842abfab"),
		nonce:           decodeHexString(c, "7a01de38ee0d06c62b431a672078da60"),
		personalization: decodeHexString(c, "d139ef8ed22c9887c3d9acdef3ffb1634712f02160760c61e0d4d1ae9d57e066"),
		expected:        decodeHexString(c, "b96adf670697106396486ffc5be9b133a95606ef89777dc82da72229e151c2d5d186c33e324388e4d4d07142d3abfa42a9ccce503846d8db21f911f3882fb17f52044f26eef88109f83ac394a0cb28e52f102b32dd75ea4f6218c2a4fed29afdba8be324b2fe1f206ea2257359b3830b87a63560a7649f5c22ca1e607f92361a"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_3(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "989eeb516274ef8398807ecb36647152b31f37c318c182869ec6a66ed816c33a"),
		nonce:           decodeHexString(c, "4a495af0f210b6552ea2b51d58c84d35"),
		personalization: decodeHexString(c, "38b59f9e9add62089d478f5e6e26a6a8fe0769567c89ffdae1a299c6950d8092"),
		expected:        decodeHexString(c, "feb2acc2ea034d48c43bedde72e7431949ceead6e9de09c838a9017421c707d9f39871c1f328a5deb843e66b87bee6772ee3332fcbdcad92600831c53f2f439d4128e329a6c0cde6ad891598fd3f1fd937a563f655388cab7361da2064f2168c25c325201415a99aeb6096b0eb7ab9597a781685b93e4562ff4e5f2e562774ea"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_4(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "fa5ba9b71ca33c1ff844b86b67266ebc58916c3683fe8ea67ea63c5a860f69d0"),
		nonce:           decodeHexString(c, "baaffd637cc0e1363f4ec182c0fc9532"),
		personalization: decodeHexString(c, "9b9a6b6bf0dc0f909857a18b5bb7959d94977b0ccc07acf8d81ed56808297f17"),
		expected:        decodeHexString(c, "779d4e6ecd49870015078134c5b2489c2d4eb5e1ebd80a4104f21735e49ec6a07aac01f16c41d9fd1546cb6e0b6540d6a14be4041868333d020922be9e16f83feca6bdcc656de16984434e87e98de46b15b287531fc415e27ab4dca0e5baf8bde9a446c8b35007c300598c6b34c076fa6f7ac8233c9e47d22168b66206b56640"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_5(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "67beb75bf701e1b63440efe5dd9ebfd4516cfda5def6c7240f649857dbabb28e"),
		nonce:           decodeHexString(c, "657ff5fd8f368e77e09189d018e807cb"),
		personalization: decodeHexString(c, "648d618b13f9fd5fc571759951a9b089b4c31b1a7c59c2e2e1724f00637eb3fc"),
		expected:        decodeHexString(c, "cda8e01dd85646262d91f7bfa2e30c19bdbb106a5e9278f4e93a73a2b37636dc56a6a6cc9b83faa00061eece4979cedbce65c5692aa771fbb23a8017ecede8ba0a3213a809d5464461cdfeb3dab4b0a16b6fd38726008a6b499b5f3169662ae471b4339cbb889f9a5fafd4c55ed24d97f501c5c980792b9e6ac1a1a0d1ff304a"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_6(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "2b902a0df62bd4b046a8d7cac27c8047c406af0da014f4bd0727603b258c365a"),
		nonce:           decodeHexString(c, "76b57a7957308bc9624e32c413300819"),
		personalization: decodeHexString(c, "70c04d9287432eb3f92e782d4e8904404220c489c0bf6498b77b579e063f1464"),
		expected:        decodeHexString(c, "01abf0c89105731ca9fda10be989f5e10867b71e9ee7accce928b4dec9be4ed4c4714ed0b8d1ed080e1a3ad57266cbd84b6e3fa03931958c6949abb8c553d381b749eedfe54658362b7914fea1bbfc17e8b88caca7f88024699091e67ced6349b7a54ecc900e6821b619ec257153217184baced2e14224c0c4dc1a96d1403de3"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_7(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "67d42bbb560b8b4e018db9ce142f59cdf8bbd1724b2e4889c27efd3300c508b2"),
		nonce:           decodeHexString(c, "d84840fbc1baf2d5c0cb8fe433f6aaf2"),
		personalization: decodeHexString(c, "d40fdf1c5843b15716320ad9aaae1c79c48ce15fe64b526f625c2333ed195a0c"),
		expected:        decodeHexString(c, "c6614bbf77c586c3d8c91b45fcb7e024c875eb562ec84f0ff32bd75d888de6a5753078395dad486e74b6d4f333dcbc4097777722298e2d262e6bb995eff347291e65f979e4f276829ea816fc5faa3c16ab9b28c3f03b4085a221d1f0e7d0f4c9df1f21c195c330a9e45717fdbf3e9d3fa7baee8b0723c1e1aa782f38f6ab8b0e"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_8(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4f7fd8298c723f3450819017b77558d4086284d168f88ef204ae0ad1115aa476"),
		nonce:           decodeHexString(c, "5b3eba417cfcaca87786d4f13e30f7fd"),
		personalization: decodeHexString(c, "7c4f834b82af1d274e3ca578db6fed21a1145e314baa720a80eca83709e58469"),
		expected:        decodeHexString(c, "064d9bed03f2b6a913909617cb8958fede376f40b79bc289a5ed5720dfe1910803e938da32ae9b4488dfd44c37b702f4f9078a8e1d42fdc06512de3fd049abeba02f93e91c4f137fcdd4521f0bc423a6ef9b5dff26ca12145be58690288d4702b12f542b912d70de076842f292d8809a027e10a789c1165bdc20769afca83f0f"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_9(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ccd39c303f868c0dedae792109e09beb74be295d1cc1896c7d4e0f58c2e5c8a5"),
		nonce:           decodeHexString(c, "38141f323b8e483d80a4ddcffb0b2dc0"),
		personalization: decodeHexString(c, "b49d2f4b3ed163cd69d9979a87f8b63c4f109e902740cadaeb16059f1d4db435"),
		expected:        decodeHexString(c, "6e9c45f99fc8b5601306a52469ee1a03a342fa3414ef707cc201dad1ef1dae5dcf93bf55391427a9fb6029e196c3c2c8c29e0bd8c97fe54070db7dcefda57aa13acc85cb3f3f71ff3f8981dd6f0f07fbeaaa406e5461637d2b4e294927e8d5b269ce70579cb6f468448b6c9490c96c6679b7cae601519a48e99ca860a675fd14"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_10(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5a9de4a21e89be4c6f691a535228772eda42308b33e33f3cd88bd6dc28282287"),
		nonce:           decodeHexString(c, "1aafaa319281d69b8f54f401d6a663ac"),
		personalization: decodeHexString(c, "42ebaf1828e0ea2a2e047fbd16fb4a9e6b7aa678807238be93dc16950d7c94b5"),
		expected:        decodeHexString(c, "dea796adac8845f6511310b4f0165561518fbc7e3442f34c8fe7c658480c2a101440db31d7c79736cafcd2a0c400ffbd37b8fe73ab99deba474253d206553904c14e8455e5e26309148a023abb3265a8fe67d08dc9908091101263c3420b051b781e3b76a9a3d3c4cc67282a3839b14732662edbe59875823845d15b4d16ac15"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_11(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "20b9ebc6c44f05b7aaa1bf52ab8928bd2833a388383f90a618f1057b69115c13"),
		nonce:           decodeHexString(c, "3070100b757e2bc99bc1701ae1fdd608"),
		personalization: decodeHexString(c, "3aa37972201eb96286898a6c232824fac8853053e4621c39a5331ceb5ac26017"),
		expected:        decodeHexString(c, "5c368bd5a1b056d349788091d51bb821ff7ff6a8fb2e194775f98bf0bd76a9b48c09ece83efd038d2db6b8940b07b689cdb630aa7f6f723eb81f83c48f73dc9cb75a10df2b5206382028acf5edae415f0a3ba007ee6575dcde6ea22b9df58f8f6cb513269c65ef8829abee30a66a64dcb373c2f087cec36877ec569eb687589c"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_12(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "1f8b5afe164dcad4d00e630f612ba16b62f184e431c397c88ef693140b624449"),
		nonce:           decodeHexString(c, "e4489952852e75c0b0f7ca90ab8ec9e3"),
		personalization: decodeHexString(c, "24f073b96d710243c12fd16b53ae7183a2324a0244ce00a35528fd74578fbf9b"),
		expected:        decodeHexString(c, "da30b36dee2a788e90bf72de6f4deb6614d6db16564a2d3394373ff051a49b93e576697d67f8b74d5774d78446f856af153a95933b1ed4dca5c4de42bee6b9b377934e50138a8feee927b1d65e58703ab4b37aec90f6835a6d73310f80d6e95b021e63bcda1c9677eaa099db49cdf684bd025296dbd3cda954c963a04a31af31"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_13(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5c5de88e41581e1cf18faa16d46751fe1da33a7bf5aa5c12a008fc65af9de205"),
		nonce:           decodeHexString(c, "c519ffe7dd49b70556063777218dacf5"),
		personalization: decodeHexString(c, "efee6a025fdecfe1f6a31ef6b2a2152a0de53b65faf8e3444435896398fc39ab"),
		expected:        decodeHexString(c, "8cf44f07902ac42105a60ee44fdc2aaf0dbe5f911e1735c3d64a56c893f4e7a189519c7ce4c1f3ebac95a061aaa0cd80233ba60fc888c0d971093af745fd5b47d86b680bfd67e50ad9b8568ecbca94696a124c535556ec5dda3b197de1da3db9cdb56055c9b54d6d154d2b1d99b37035cc2737eb60b4eeef1be60d83f4f7cdf0"),
	})
}

func (s *drbgSuite) TestHMAC102_SHA512_256_14(c *C) {
	s.testHMAC102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "41e0b160ba753b912c728d3622338e5e6a7669e2e65b6af57ae203179ad3de95"),
		nonce:           decodeHexString(c, "2c4c4f3a953e551746f7e258821d24f6"),
		personalization: decodeHexString(c, "676a9304a3f744c62c7f5048f2137982c89860577cfcaf0d855514436ff8eff2"),
		expected:        decodeHexString(c, "7bde8a5a34538655ab2ca26d0447eff3c6da298b3fa53ff0526eeeebaa4a876b60e47ca544ae30ccb00176ff84920bb4e4a4ebc3cf74b9cf8cd8ff9f7b11266a3c9bf918c458760bca6368ddfb3522edbc61ad14f2b638294e51d82e617d8c0c631aefbba50dbcd1a0a88963c3d63959909ce2cc669924d7163b01cac468c0d9"),
	})
}

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

func (s *drbgSuite) TestHMAC104_SHA512_256_0(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9f465b884dcf655c921842200344234ad4059886ea5d08158b32f4f82a1bcf01"),
		nonce:           decodeHexString(c, "a50ce7d89327c88aa76333692b65ff44"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5a277a715800aab77ed59efdfa98ead15ca7c566dc4a788b66d8fccf2eccdda9db7c635b171842cc4f04cdce20add856499bad172b5b267cf863369a57eee5518d6d252c685d8932c50a9e0b2493ffb6cc9caa3f6abf9a6845561d9f1ec042dbd0312fb324370abecd4c740e453165c6f26096ab49ea1008b99a63f6bffabb03"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_1(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b18d53ce1cc26f77ccb09f48d2de283e4fd1ade79a4e1297863e3f3244194e0f"),
		nonce:           decodeHexString(c, "8ba1a44d4fd7221ab66f1a3b6dfecc02"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3856de3c07690074a53bd17f76e3f620b0d7952fa257f0ec0ec2c49ee4a906fba86db39f743e9b65cecdc3e77cddee806798277a8ef09e4c4ea098ac20b2403fdc31dc9f8a62831d61ed5a203324e0fe020b99433d1cc3b6ca60587e2a5eab17ea9feae2f8794673d65d19a87912fd4f87b07ff440953fdc1f52bd0a801585b3"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_2(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "02893f95e806c2406474f357480b7100642fd60d5285d6875edc99484d3f2ed8"),
		nonce:           decodeHexString(c, "cc2240591fdd1eb068b927e4d026eeef"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c9c78c2ef52694e85e3fe6b9fb4c87f08ea15617ea974395ce073138f05fd7dac7103f0801d22595960c691167c39273cf95718b9abffdf643ddb0bbf2e3ba74ffbf75782335c6e0ecbe6f16bb71c4b8fe83d34beede6a76e7fbd7852ecb0c1d2f33d54fd7a378a6463b7f934ecba0ba53f01d7583ad1a2a9c9b4df356b3f73c"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_3(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "77ce1d534c97621f2ee80744e1d9bf2377616823d2c7cd167b7f8696d52b5cd8"),
		nonce:           decodeHexString(c, "f31804771016f0ad9a31c480872f70ec"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cae5ceab734bd0a7d251ba6a7a45c6c7d59a4e68921bbc4b696da1f89d78fe0653aef44d9fdbf088f5ae4d3bd32c8d32ab9b0f64d57d2923f76ca0491b45e87eb668ba157a17e96a17b593d34fcca39a5ff9469ab321aa19baae4a1f2e59d122df8793e6f2934dd976cf7af9e2ae998c87edda134dc57e69e45fda3be20ed568"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_4(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "0a566fc2d734d538533a0ce4841fe1d10a44edd77cc66be1256298b1d2511075"),
		nonce:           decodeHexString(c, "b83a69f6a5faa05de81c41d0fdfff4f0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c9673a965bd6415428ed1aca9e689feee8b305d93077eece568f01fc2b2d9fbccf516a6dd7006337852ed3df1414f18d56ad77b90e49f3466480da4a569af87f3fe82e43fe254caac034cf9ae7f51c42bf36f5f073e71c087558535431d80ef65825d8a13692091bb0625eb9bf8b0c7d6a68860e9aebdd8fb21ec4e92f10f2a6"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_5(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3c0cc07fd3164979ff8c50fe5ff0781cb8045c2e8c15a2b2dcee237da7f7c340"),
		nonce:           decodeHexString(c, "7025cc3ec12722eba6356986c8254eca"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ef9273fdd863ef56f6def6136d6ddd86dce70f3152f2d8ca7e01088f00d685b06bae2488ccd2838ef23021a1c4c7a1930d85788f8651a83fc31babfe719f7ac9b24c5ef541aeffd6459892fd97f0787f77a751a11e3a166518f11d334a9d1de8013a96c852d37b6f4133422282b08df20bcb3d7fa077ce82e323f1873fca5722"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_6(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7fde6b41b786e28fb708534cc71b9a5781410289c4c008d1cd33537c5f5b03ce"),
		nonce:           decodeHexString(c, "4375a24ff20ed56d10e657c5e7fa195c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "153c1330e828df9ace5c766e85acd82cd7f6b014b606ad1fbec25edcd83258cc1923a35f348a03db77c69ade5caf8acf231a587a64bf452f624f5321003d66b1855524eadc4aa1a377ca912c7bf2a20f76999d70214b8c73cd69425c5b40e872c4e0d4e0e5ca4c32449d01cfde062456b95c24bc8f180e2a575c2b6e07639f75"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_7(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "078abd36f77395b6ab942fc4d45691a0a6a8fef6e2d6f0fe99979c91f4598adf"),
		nonce:           decodeHexString(c, "e4249f9fe55b428199e3b9fa7efe4e08"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e73a36fdd9dfaf858822cfc7ab9de5c52f2450673b7a59b883d7409e230f416c6f60842677af5fb0f57d5507353637de66fb009ecc3d3b4830fa73d7d43f140c6b1359efe749177bbf776e30a054399dcf3faf44fe68756aa20830837a4ebb69d2d625c3dd1fe7d30faf7d523d92099479f15c3f925f4c22d9a2534ed4ad8314"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_8(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9f1c1629856c5d028a2b9f8f388a119518a59840ce26d6b532c86406695fdb9c"),
		nonce:           decodeHexString(c, "a44fa5fa6ac291bc784da9248fa27afe"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3280d36bac6030472f9d0d1ce66ebd9e65d9c529a8539e3d3ed756d9165b94f4a596f390baa999ccbc00228953aa3a37c090065cb2d8e9719a386450e172d30887ff28f59a3aeb71df6f8122509dc81cc42ace912897cd14becfaeeeb92fcba3092c39e0c53b3a067764c2e20b059b04ba483afa3112a50c5508fbf458d6f599"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_9(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "81d0d864601e76ae4dd377a6f54a79b7a13d179b3f470e1e785b8105a8228793"),
		nonce:           decodeHexString(c, "c8446ff557901336a5d18ed8fbb64193"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e5b64ca94576b22d0d4aa9d808f6bcf7c1568d5999dfc410c53a0fc54f21e293548e7659244a93096946d2eb21de54d687650d9edef5e0e1143a14e739d18b7348fa34cae1a1f08f180fb1d58bcb42b36052aab903b50538e252c4fae93abdbb5c51d2d99cceeaac2350e7ad1d94215cb945123c822de752cfe2db51b5ae8930"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_10(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "670ea3ac9da691881cda74715653b392309999842e8481c4d403418b37f6ca60"),
		nonce:           decodeHexString(c, "f22b88678125f4edd9c9715a25a222fa"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f25feac8fb189e38659feae84539c62627ee4efee9eb3c959555ea1e0ca7ffe63bc5ddf9c0f71b0f4966269cd1a965be66d5851be3a649b9cd9ba8e06d432765d4baadb16eaef1d3d90b762b6e185cba792fba08b34b1018416a6085689f60d849cf0d739411e1d8f0f535afb16e48c08190392562b74aa7f400e036fe72748c"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_11(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8eccd6292fb4ee68fa6bbb3be6e995c5bea9e9d7d9b523ea214b2083b46aa1ff"),
		nonce:           decodeHexString(c, "ade93e693636defb359273bc99f5add7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d33d9e8b04dae6800ec065a352d2cca3af2c68d7a2f45381a9d98997855ea0392c1a553d0588605729638fec424d0749e53fd267776241a7c06203fd619982c1cac4e48c84a835e034f1e6367403a95f6aa8188a116f76815d5a4efdf43ae89f4c5d48454c4e956bdf2d73524b4c4b9cd92dee7487cce7939fb89dc4e0aa071f"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_12(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9b32c52ccbd66508477ac950ddc43e26d4be7ecf31f5f9d86edd3349039b1b90"),
		nonce:           decodeHexString(c, "2dec9d80c3abde7cc94f07850d8ae7a4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b00c87fef5816d4707554240a13c882892d383042448a8d71b5ca250bed0f90a22be791135f81c4bb8ffed83f45e0f4c32ebaa1dd6f9992c101784bd7202672f88e7a0eb52cec64f2a2013ef82f04d64bab346f4bd948e75ba922c1ad469975659f82089763c143dd8f872cc4b0d3f02dcfcb4de868434d0ab6d6c5ead89150b"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_13(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4637a3f3f9443a915c249cd7a83b8151308cd86c80fca2ba7e45cdaaa44ac1b0"),
		nonce:           decodeHexString(c, "096f13ff358095cf2052359b95ddd5a7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f08e0bb490c0bda177686efc825381d1b363cee7a7e9c007d279a773dfcb0fd2b56048fadad1c7e9dbd0f79666bd5c68c4d64a0e2a5ed5d32c74e1bb6e6588f2c382e886e5138d57ad8ba7b31b119d3106ba15e396c878388b96ba57b70e496662a23592d36fc42161453d70a4fa1306c971207c0c44a96c0da7ca40020b37ca"),
	})
}

func (s *drbgSuite) TestHMAC104_SHA512_256_14(c *C) {
	s.testHMAC104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "abc502a99b7c3cf14262f6b036925a9904105b019592a2a6be26d71fc42c7444"),
		nonce:           decodeHexString(c, "40a212f9e1a5aa54f2c7ed4ccf631c9a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0e747d83e2104367beca697db9b6bb994061d82aae7b1564f6a0911a1f599084a7ca7c94e232908d41df93a6b416e76146a53b490afb552124fc0c2087cc45de96390565b58f913b5dddbc55dcdd2617ea27858ae7c7748b31d832fec0fafe84594ad7b693cf972daa9521ad4134867339536ed5cdf02a758e40d5d96802f4fa"),
	})
}

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

func (s *drbgSuite) TestHMAC106_SHA512_256_0(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7d3291d6d076d9e6b3a071290ac9ed8d361111dccc2c601c041d1fb24eb9ffe9"),
		nonce:           decodeHexString(c, "85e9cf73b7dbfe71bfdf103d465ee8e3"),
		personalization: decodeHexString(c, "4b20012ea864d2ec2f931ac12078d57a5c034f9991f01b495d9afc70fe13ea88"),
		expected:        decodeHexString(c, "7b531bbfe9176edfe963acdadde9a28f85db1a40d6e898f2764b4aed5ea67925362266ed3bce1e5c4053c011cda9e2a7c46681d15ba493fbb96c75b89907e2f7755f3db8536fe188a7c46484afed6f2f822449700644c9bdc5a24a1cc707d5d4e993f02f39718e866b8360c7e24095b918c1ca3e3f45ff3191ee80c21eec0c8d"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_1(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "0e05b73a9fe19c76ae180b9c02318647b6c55cd589df8bf4c822ab8e0ddd6882"),
		nonce:           decodeHexString(c, "e6ea875f5c9b333f3acfd73c869128b6"),
		personalization: decodeHexString(c, "86f0debf8b2423693597a36f58db2c0b25a67d3b58fd9cc0597323a0121258f7"),
		expected:        decodeHexString(c, "a9a66c8f04cb50992d44d471af7718b0c79fe5d2a9fc3568757f72a94c95fc737dacee237157e6f38ec4bfbf6491e09cc1609887db5dc5a5e386b45ffcec6e8747f26023156afe6febb12e2c13237077ea24d46d7f314e1468afde13d8fdc7f9d9f8b6d11a209c1e732932a227f2a403b5a2f3e25fbb14aa088a14acf5fe7311"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_2(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "70a1f74dabd03952df7d3fc226be8ab3b3986242a889b17a596bc06e964333fe"),
		nonce:           decodeHexString(c, "facece933b1bdfbd9ea73af227480e15"),
		personalization: decodeHexString(c, "2d96a92212d66216e5a928a7453a4b13a985a8817934ed788e694a10788be77e"),
		expected:        decodeHexString(c, "ff3c9c4f19be369d3954453c0ebc0f6026913ef9e8518a553ed5909cbee6a9b2589347f77b04510a31d84f9c3578f95b0bd67c5843b0e1ac4be8179225a74c9d681490eafa0032883dc89e481043a7a315cca9a3df836fd61baa1e02d5dd02a94dfd1ad66564c46c0b61def767a8a590c6e97a4002bfbc016181741b80d429bc"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_3(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ef6ce3ccfba08d79c79dc8bb6f2f8eb10f290143511ae9b71a7326d7e4d575c9"),
		nonce:           decodeHexString(c, "771701a66a88b411c4b6459be6ab5e31"),
		personalization: decodeHexString(c, "2eed07a152d24f7ac3b76289bf9943c20e266dc2d6cf8013513d57e12c62100b"),
		expected:        decodeHexString(c, "6ebd8cca433cd07d773ff61cbcd6fdb54d6a1dfda56c818cdb49fa1028f20dcc96a16d2231f8f3d9b6656544697e91d1d06590974a430796a9d13b817bdd1446ea80bab76b45ccf8c293a4b8d359449ebfe9b71c6284d7d0c63295700b44e9c40688dff997f4662afa4a8132f33174d2111db500e629badd2275783640ac1e3c"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_4(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "641a1c607e6cc3c3af24718920a5b4c6b6d4e531175df6d3561c35f729a24534"),
		nonce:           decodeHexString(c, "6e36da6668ce4b9b3843f893f47f28f0"),
		personalization: decodeHexString(c, "471e8d2158f963c1419a402afb7b4b9f3a1872dcf1a14acaa4fd7902635bf95d"),
		expected:        decodeHexString(c, "0aeaa5bd2a6c00d13561cb185216799fd9544b867e6cca43931ce89030a5e095e4dab9f343554d344c55369801e74464d173036dae9c1ca6d94a057c49f5f39d9fd5ee193c2d36c73f9d2d33c016437f129311ff6e489761bd6b7b8c60cba9fcacdf848cdbdbdb918247746a3a7434024e1977f697c40fc128d5ba14ac0fd76b"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_5(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7122ad64a4822ee6adefedb4d337fa92d7fd48d81507b87a760d6b37a0e100e5"),
		nonce:           decodeHexString(c, "0203d0fb9f1a9ae9a44ba86b91152548"),
		personalization: decodeHexString(c, "d7bf3d8dcfaa8fbe020cb4b9a8ecadc05581c14475f933630258042454000564"),
		expected:        decodeHexString(c, "e24b2aa865c8e7f542f23f7ce2053325b1218bf9a47a306697e02699e23530754097fd8bbaba09d506f950d3e6f71810beb58c560c91d827f07dc6cf5fea6375eea833c37d60480e9430f90ec10f370d24687d5d2ae32a4245a3928ac39ad3d61989217bdcd46314235265e6584d819927030e7a051b270fe247d4b5568d829c"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_6(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f5b861b5ebcecf356bc5d2c03cfb8ba189daf6cce5a3a24f90c2f7d6d8555ed8"),
		nonce:           decodeHexString(c, "30ea5c420bfdf54b800714a0ac847c8b"),
		personalization: decodeHexString(c, "7795cb039bcf99cd86b17436ac4284cb7cf5abfd0008bc4b2f156de85e194d02"),
		expected:        decodeHexString(c, "9a58409e95ddc0e109635341b294068c9a0ea7e05a1eacd50f1d24ce82c76d715d9efcbb05afcd7c5ac67be14dd6a47c18ba346c8ba8459b2283d5f89763ce84ec8f975b800e835b18476ebeb67aafb3b5688ed5280267f3eb4e03c9e61c07d974d2704acd72d0863b0ba5d5ff30628c0f5277946693494f2d1128949375f606"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_7(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "1d33127bd3f4c528e087da8bdcff8c4877a670cd2dfb174dafb9186c1e7d269f"),
		nonce:           decodeHexString(c, "cb9fdf934629bc19f888c9b059330844"),
		personalization: decodeHexString(c, "101d8e44a16f1368654c4beff891ea3a0931363492615b2c2918037d44a9cdc6"),
		expected:        decodeHexString(c, "b9c3381e5552fe02c26c4e43710be67f22f004c1a649fa216f0941958a71337c3412886129ec129cb9f6a762cf08262ab2dcb0e66451f09f989eb06a290000b0f80f347da535d7cbaab14e6df857e82e32e80196f7659404afc6c65b571c827d33520eb0755e2381ec8c09989e401ec112649cfaa0bfd67189c64a53461a86e2"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_8(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ab98afee5eb805593ea3413acaa93e6180830f97b75a3fc91b58b736be146a2a"),
		nonce:           decodeHexString(c, "806e7ffb3d81cef8a885ce3e96c0e7d5"),
		personalization: decodeHexString(c, "8e55e5cf1597bc5df1dee0861920dd53904756079f41b353b9a0b7a3f3c424a3"),
		expected:        decodeHexString(c, "b6979a7fea87ac176aa9f443830bca91cd15ffccaa66c9c8dc951c7704fd411847e57f98b556a88b3fc434ca28a32a9f3f6c1064a157aff92a8f3b2539d9b14a02707555a6310e9ed65e558dc16481e37fec86c5d8e76e2f955929fb500d5310b7925ec02b1138d3ecc03f6417bfbd08337d570d06e2ab0416c907dbff8d69ac"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_9(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c65c7861159bcfd3f41fe8deaaeefff7d72471acad0bbe1cf649213cbc714d1e"),
		nonce:           decodeHexString(c, "da7d7a885d4f2a70e6e7a63f65692617"),
		personalization: decodeHexString(c, "4a60014f03fdde58489d4c69bed27c77ac0f5954ffc8035c38ca428e7fd5ac32"),
		expected:        decodeHexString(c, "a30e5be5b7659ceba62f403e0cc4205f66eec07f573d76d06289ebd1e95ba05b397524fe09521c2b43b6ea515c56c14396c90862809233830f30ffe42737161cabe63bb506b3809f490d144822949e91ef90799c121158c3a05168d1bcaa9e0fcf66036af4fad1212b96831959b1927f34ada29fe1ed5893035fb9775a7df94b"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_10(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "dc6199df22e79756e118c614c47a9c1f04968865c23220e975fcced6055ad950"),
		nonce:           decodeHexString(c, "11106c761eefc1027b92346f87747967"),
		personalization: decodeHexString(c, "df50bbb118a5d2d90a4b6cd6e8bfcda33cb05c9d96cbd462fbe5f788f670b261"),
		expected:        decodeHexString(c, "b46bd92d1c1b066801eb2de82553ad94f349a9807f685816c63d8a2df30b7d3e64f455ad7ed6c2ea08a0efdd49edb2ce47d07f9b6e7c1f932a95c17ed41aefdf7a134f46ea8ec4bb4032bcf9d6fca6d0c5a8cd008721c24a84dc0befc273ef30baa66ab0e16010e31cbc786cb1590877b5cf966e4a4799233420ef9e25627e8a"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_11(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "03d29e87ef3a123c7badcfd46f097b4ce64451951548e738c3c2cad94578ca61"),
		nonce:           decodeHexString(c, "9d4806651f69eb9aa98d7faee7168dca"),
		personalization: decodeHexString(c, "b84ee132ff8a937fad8364d7d7ae104a1d3a5d1c372d71dc2ff66f9800c5ea1c"),
		expected:        decodeHexString(c, "b0865ff00606e9c00ea87db396b68fff02697eb73974674f301af4b25b638d49e77b585af645e1cebc0a52eccbccb97440e9557b3ab27bd35e7524169810154830ca6295dfe6c1a9e19bf742c03e091f704c98029a44140a59dd45de7a9af35c2bebab8825f053d6bb36e0e00948c91a5eaa92077b1e5e0e97721883ef1f268b"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_12(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9c551d477a9d1ae2d04b0d367db759db079cfa3fa4584e0f664715c8251ca0d6"),
		nonce:           decodeHexString(c, "56d34aac48cc7215f15912307a9bef55"),
		personalization: decodeHexString(c, "e0ef0bc324051ee3edff8f371ce45b3259d5fb90b051510b4fd97d12943e5bac"),
		expected:        decodeHexString(c, "760ff9435000c1122c31d6a9d68d94eaa10b2ea4b1f0fe1f7a8025592ce59927d39b3531410a5c677381749df30e64074cd3e9bda5d1b10484287ae603d45201944f115edbbf15383bb2867bc69822a84973d59238cad311a47e664749c96bc1f2c76e01a5738172cd51fea7bf2fd7e814f4a03763d9316e5bcac3b551e67edf"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_13(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d5a74baab8601262fc7f10f213567cff06b2e56b7c55e9a833cda5f5d0cad004"),
		nonce:           decodeHexString(c, "a961a671739d2de3bed64bdb2227066f"),
		personalization: decodeHexString(c, "5a85407652d846f446fb84071413b1d23ce2c04daf8f530e2c140074b385c15c"),
		expected:        decodeHexString(c, "d57263867580d234ec9a507a3fd44b09c749ff649e80c6990b09e5c770f088c2b56d3b2d0a0513d3cd7a917e3abbe102ade7c88b6772544971fafb4f09679659d0fc3447b43a39e6fb7f3107ef50b68980b313b364d3c9c02f8803da0c425f6e963feb5f087fa51128ca96e1ab90fc86be3fa11ee4c253ce4f4a386e734fde9f"),
	})
}

func (s *drbgSuite) TestHMAC106_SHA512_256_14(c *C) {
	s.testHMAC106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "bf2cc11cc54e247811897e1242274b4f4f52018ac60b73fe9df8972d3104de72"),
		nonce:           decodeHexString(c, "d5aa1d24b7c7564f6836f626bcc6d32b"),
		personalization: decodeHexString(c, "4ef1e00dcda9e893d066ce48cd291258a29e0a234796c30a6465079cbc3d3aa4"),
		expected:        decodeHexString(c, "43da46cb7b737ff7617715e3a8aa4c42d8cf1b62f32ea97d035514a10798f5bcaab550eab684cfbd5c8d3e1ce6d9fb026812e647ae6a50d3d8da8e9e2f1d5f7fe550e7e0b88e146925f2aa64690e1a5a5de152f6421837c15337efa80fdedb0a4754268bb83fcf0281b05b3885dc64b87f1da61b1ab219779ef44a1399b992ac"),
	})
}

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

func (s *drbgSuite) TestHMAC108_SHA512_256_0(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "fe9b6c2334c269a392c5ed8a4ff77d06fe922fb7bf9ab4c7352aaf0de6da776d"),
		nonce:           decodeHexString(c, "fb7f12b4df9a75bdb7ed921104199b5d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ee11a047215073a239e03437b52771b10e694b7631f17e0150dda9a9691ab0a6ad81bfd769ff917a70e236b5bba1ca72619d53adcf842a4b6fe83b3e59b8f8d1a1669c817d2610c24eab7630f6f938c6730cf48d4994e60ad7c53176ca8d08c3f6469ad5f606ebd55c52eb24dff018e1fb9b56cf09142f07caea0f34f5e00b0c"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_1(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a2db33f32c048711482db06db1e5d3af17ac7426ff1fcb2701900d482bd945c0"),
		nonce:           decodeHexString(c, "b563cbeda321e919668666dc7e162a4a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c9c222e15590a4f3d82dc165433a0680eda7c23c063e4ed2caa7b86ab780c35a59e5d5225b6eea60b3a704f5ed52f8e350fb2b0bba5307c950496161b3a11df5b0eece7061bc2491ed3be81d4b0e461d8392bda2461e41e0da9d85c6ac7d15f1214b9327596e871a1f3ee556adc6b6d6fe47ba5d2aa6937e4118de8c29220e4e"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_2(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "88a069a5db6a3313256c23461393abffdbb11d3c5dcdabc7bb78edb39d1dea03"),
		nonce:           decodeHexString(c, "ff6c48c66d2e0357a72dace011d92ec0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "84d08a17413d1727443b8b72c961fa21c4f093fd657173c733a67f19066ae5d32abdf00e1456206783f4ed23c4f4928371b6faaed5149a0db3adee0ab8ecc47080249d5b3c14d90c47c543a139d372e23b1746774ba1315df9cac29350e46732b2177e59c9e0ab61e6d6b8a71b6f60a65ee9c50a35d76d2e0e434f2a693be919"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_3(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e3641e0796dc42033faf67f1e1d609c645563e76bf2bec43cc8cdaa9fc41077e"),
		nonce:           decodeHexString(c, "6f90f968df06e204469e818c9225c148"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ff0a095631436e6a18f333bd44a16a1cd4080d139d4f7b76e4c1542206f32fc337c49269bad2f1151ab653a4e7eb817874de78f9ef9577aac9613dbbbc47bf0f2fc5c897dae6a3d9e7ce17a8c4ed3b2d223888bc40065f99c94d4d45320c6454fe185146be4bdd435eb5a62c65cde2fe11d876a427324d1f2cc4f4e3af528ae0"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_4(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "db7ad0ebf06ee1e9f49a7dddb8f628636816d7ac328a01079e03ccc9219b5b81"),
		nonce:           decodeHexString(c, "4a44b8905e98a49d430b181ae2c1b6dd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dfb897020ccba8f056d1f47adaf9b6b888092fd5daf6fc9d10d599c4f970edd825d7c56ede6ce0a3e923dfa157b878da91777727c45d14f226ecb0603a0f0fa977c7c460bb4c5fb1c178df61f9080c9b05b1d8efeb2a54f7a3eccd4ce895a05e4c3c86e431978a1a89b0fc8f9cf26aab4366b0f7ce4f3dd4667b894662f5a265"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_5(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "92c00ef70eaa84528ace8f35c42618cd71c72e99559e41356a42c91d29160090"),
		nonce:           decodeHexString(c, "b7dacfe6a09f6bb5a588bdc50edf66c9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c0e06b14db9ebafa978370be67a59ac9075be6c3ff621747397145371ff21e5da05c30e71b6a415b41216e7351a00e00c543c112ce3a8feb1cb8fe9741c6d31ff03870a801c006e4f57d89fe4fd7b493e9778ed6e4673b0adc16d6c47da7b7cee80409cc8574a07f0ad46105e71a5e7dba1bc9f85345d517df8ec53948cce316"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_6(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "479ddf4478411867824f86b18c159054be3b48f5c655cfa7fe6da514b26bb974"),
		nonce:           decodeHexString(c, "62547d3daf0ea4647d09d40faf09f5ca"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8e24fa8cbc3011298eb6fa07445c74522aad747a7d6167b87eb06246b9656f79c1baf974b7d7aea9daac4d2264abf78dd8e5ac1050087da3d9a7a063b7466994519a3a26e4016fcb4a383798174ee81923424e372bd83a00addcb710ac4a2117e84d0502d68ab5d75d904d2e92893f46ccecfd37168fafdec026c88792b2d811"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_7(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3f4cb58417d504cd23757e6607dd3a94e716e510617830caa1ca6b1a5e114a73"),
		nonce:           decodeHexString(c, "e6212e3bdc78a7b3f4a610a3bc3919e0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "59532f9b5d6703ccf9e1acef2cc4c6ddd4de929793bb03155f80d9e11dfa9d031fcf571003bb720b800e2f8fd0ec919c9b6aac84e4f545292cce04024e950c7cdd6b82cf2c91ff96e8486a8876d542a7b5e8c3eaeb8ec35be5014b5d481a821116c1e8d92301f18317b03dbf1334c4e5e24d4b411734f190b1e34b9da22eec02"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_8(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ce49b19e177d0dc4984611c5b9df1f9349cc10d2a7793b67b57bb95e175d10e0"),
		nonce:           decodeHexString(c, "fe1b91478f1facebf85bf51992b44f0f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4e73c6806eb381de46b6c69aa5a35c09780bb426da1a17a95dc47e4704145a28486605d9b8b3cabe7508e1c7b8374ea1ef5004152a992c1d6907c1fd6d869de68dddb79ae2deab7b99eea5064b61fff3cf2d2a5af3298fdfeb56071e054581a370ce09dc78de5790af133fba9bf01a21dd7954c3411244b2230cd85e3f1dc37a"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_9(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "be930d99ed2a925d47b90e89ebf312c9f71a3b1d615ede518c4eb9c1bc93f2ec"),
		nonce:           decodeHexString(c, "cfa1e14da2b436fc3209c9a75e451f10"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6f31186b46098ef0a750e5942031f3e0d1965d17b2e10f2544bb406e4a3b6e5794f8d06ce020a4384c11bdbdaeb6f62d5dcc98730c7e6158ab72e4bd0210c9ee2b97f2e0542c3ef4d8feea856778465d10382c6655df2c50d0718fc6d952cf5d980d9d2d9cf00a31eab2f0e8661180865590a621dcdedcf9e54d938370bddaf6"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_10(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "1164a7d7f1b9d9a0598852e85c0f885689f52020035a5e93ac558d1eb85a18cb"),
		nonce:           decodeHexString(c, "d9ebee23642b2c052e342ef82c6eea20"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "51791e3d9825428ebd42c10c3f6dc092ca07d6fceec0e9548640f53e10a2d294d83d05f08d106a66f00bcd5133b11c89ae4c90bf44a31483066e810c177d977ebeafd3c89daf86514f3782ff9249fa61e7d1b1797f8993441beba0cd8509068c25bcff8bae8d9166b344ea33533137a7373b435423d2704a456a22ac8d633dd4"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_11(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e1d85c9e21dd1309460b37a5e284f38bd64b2a7adc8cb1291ad4c31d44e57f20"),
		nonce:           decodeHexString(c, "aca3b5b40fdea71cb2fa83f46ebbbf1e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5986bc351e62f8c5f3e7a8a74b264090b0238697c30667031caa494417205d464e46b8793b9b312c28c69827cff253342af64ac21567e17a42c9ab4dbd556449359f9dc3eb7e552a1d90f93b8df61d1896bcc8600085505b10a37e94316567df57bc32f484deb52a3962bdcce0344deecf7b828564e2cf3a24f5b8f346fabdac"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_12(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c400074480f73ca5f473ccd30955ab8f171b7e0ad44058143065ad787c50bee2"),
		nonce:           decodeHexString(c, "421d249079f8dae96629250123934c35"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e540caa7a63383c62625735b8fbacf538b97040b69f141154950e144ee15530f0888dde3892901a7478617ab66e80dd4f40707bc5bf91fc68fec2186ec6ef34dd4c545966fcdcd1d52506f3c6024d34d788ee72270905c3378719c0ae37e49cf3956fc3a8e88fce4e9d75222d6ee980eb4af921cb7d9d484be2e74bcf168e3df"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_13(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "65ed3ceadd308e43a496770ac71904e24f8024466d9fc2c6d754b72149a93d7f"),
		nonce:           decodeHexString(c, "64da0dd9275d2386c96e144ebff60ac1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "098ecac859110d81b02268ed8598a006d440f8897116cc336014f5bd5a02d2eb7e0d2837c1f6fb8512c1ec2daa83c7069586f87bb620ff11c19b6d4a731130b1927c9df11cf1bcabf53450667513b68e8b7c479dc689822cde4596d59b8b081cdb4e971f46d4be88f6bed69d4a2ac6c6c3a7a790acb807115dab459d69423e90"),
	})
}

func (s *drbgSuite) TestHMAC108_SHA512_256_14(c *C) {
	s.testHMAC108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d233eed6e4a43436e4418ac071bf9ec00d463d0568cfaf7b4174f96c1f6b8564"),
		nonce:           decodeHexString(c, "ea8e646e88f7fd6c8e590155df15558d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "314dca793ee1eb0dbe48bedc324b557966ac7a17b900bc4167ab4b65fe6b34ae625c200c4e21428ed258fe28b99c31cc4e8f9eb93a793c3e33fb0b75a2595a3201d939dddfa27911ad6f731894e16692343f25de291da89570a257a95cccb42f7d9820afa9b35d16664f95a2099ac929683b7480a4d1e34291853047ced3302a"),
	})
}

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

func (s *drbgSuite) TestHMAC110_SHA512_256_0(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9fdfdf86578c372fb12f4a9bcd04684d97f2c0cab75a4ceb7397140a936455e6"),
		nonce:           decodeHexString(c, "e389044699da28eb6daedbd8043054f5"),
		personalization: decodeHexString(c, "a085ec7ba7eb41f226d265dadf847cc6580912c88e0c3d070ae2612c198caf4c"),
		expected:        decodeHexString(c, "aec18c76acb66a216d82b899b3a37e6ea9d7f4026e23b7412be1d911237deb73b1e786fe1f3b2466a4a779f5254ddf63b6d67aa10fe90f269ecc652ddc54a0208d26cb0ba690ccb99fdb82fc58862d59df81e53c70581d5e9f44d030f08ea7a6a5634db45a6eecef32b5b385792bc86d8c5c3f6de3f440e2db59b6c3e4c11137"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_1(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "1ccb5d261c074fc9b3ed6eb695e2fceba19c6e93464e00300a7aa919c5717c07"),
		nonce:           decodeHexString(c, "5a129b9a9cd9d4cfaaf25ebbaf8da3cf"),
		personalization: decodeHexString(c, "cef872a687d7d2650aad3c493bddeaefd28bc92678380e6dd4df71fe7a087ffb"),
		expected:        decodeHexString(c, "57e8d94c5c508432992c35f0228566ffd0ccaec647f1e090e45b6be57b4c72d87d150e18e6769c1381f092e2c8fa6068611d1b673951b7617a7a6758ad6b4d75191c088f18e25373d34d40b1c27016e642ab3ab393fd25f36935d9f665f03878883ff08aebbc4664fce81d2db609357b6eea4c9536c711f95fcf7b02aac0da25"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_2(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4c03c532d19fbce23d4a0b04fd1bf6ec33fa12d1984cb2af2e0c3774b2435dcf"),
		nonce:           decodeHexString(c, "6e83bd488d911bcfe0ec66aa357808e9"),
		personalization: decodeHexString(c, "301bc9cca2d1752e2bfe0c688aa201f2873ea05f9c5c0c304d40583c090b6210"),
		expected:        decodeHexString(c, "aa0a5817c0a23543ce6fc5f2bfbff12696a02c162f21a987404d1e2766a6126e138e6b2a96ab0ac1920f9bfb53f8c8e85520760897f0039adb1a1c16747e37a9f422d01afa63ceb328659f1c754ae364bce90979dc825d81c147775ce1e48057d1837718fc3253df2381d063c879848c6f6e052aaf13a99ab3f320853b091a42"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_3(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "00b1524d7d8e35c40b64059769730ef3dcbfe07932d6b11a615c9181f168a64d"),
		nonce:           decodeHexString(c, "2d4a3c33f08ffd39204a72e9ea7bc101"),
		personalization: decodeHexString(c, "0cf08ec2cd3bcd8657dc1ec4834076a566179b33f6ba3db637f0d59a315f9448"),
		expected:        decodeHexString(c, "316c5431b53ff132a99e98665743f54c095ee43bbe741f0cf5210cbbec5de543744a5c9307106d20e5c3b12e49cec9512276aa3f3837a7b5be89b9b0324837726bd055e3b202188e8231cf4d2aa94b2bad23fdf97e2eb346ac1b5dfb1d78c21284396e246e172558d03f43529e4dda6cf36b0600d44d3de1f8def14333f066d2"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_4(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "cd3d56688cf437c7999b168573921d954eb462eca6614666c89548a95ef9e930"),
		nonce:           decodeHexString(c, "ba94b86d13b201a4df30797fd11c4b4a"),
		personalization: decodeHexString(c, "f4e5752b543c1f24711f2c7bb975c2efde94490ee0740ffb3460e3f08d866acd"),
		expected:        decodeHexString(c, "99bdff22f33c0ff01a419bf009dae223aa969ed6cc0b5f3942d2b138c989de793c060f9a08b5e0b91fba1b35ca8c5ca17a5f56d0eb8637fa691e3bc0e83e8eaa3ed682a82a8d1fc94357e236842455fa015a37bc5c689973caa5f22160373ed9abe7fb9346fcf55240cd5431938413bcdb376ca9fed0bf7adecaffa8059f98b4"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_5(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "80f85752aad0dfd7a44993e0d7fea2a5a55472e9678f0f9075d6ec17cbbd913d"),
		nonce:           decodeHexString(c, "e1d8c1d83d7e175f7b73370282a504ad"),
		personalization: decodeHexString(c, "c03ff07c165571fb5c0abe1fc853c276eba511201854111642d54c5d5b323400"),
		expected:        decodeHexString(c, "b340bbd7cee2749b30395d1bd1fb73e822f3d313fd0ff052ac38175093b0a783f773a26e8d15ba17f0ede833d15ae1ff1e5f5f47df9b749e3009becfaa1af482c67cf1a1fb3b199d5ea85ccd2ee617a909395c45b4b2dd0d414800690176a574f25b92085b6dc6b55a9207e086cbdaa09a6c2006d30cd09150fe9b341c75bfa7"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_6(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "944099bfdab971828aa58667801a65c4ca9fd85f76fc948d775ddf7e07c0b410"),
		nonce:           decodeHexString(c, "9a019a09ac7cd8075233781a3cb10e9a"),
		personalization: decodeHexString(c, "3d5069db480166847db296cad105c3ecccd9d4d0257d29b2258a1d97d4d2b50b"),
		expected:        decodeHexString(c, "d45a2c1a254fcfa5cb869f07167f6089613e70c3e1c4221cac011941e395801b0ef92acbe0c6dd4625b5b545475360d54974fef96308c66962c3fb63b26491112f7df4272f0fe1a858942d4077608f75ba37d268137169d74b9d42985b52b260599137128d6a92344691cd3a87e02df19c1d4b9230e6e61a8f554e615b0d3f5a"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_7(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c90d15bbc18763f30764f3f8da44319a5d0b705304f5f3d8aed090fadf356be2"),
		nonce:           decodeHexString(c, "6f145afbcf79452eda4c55284dab6487"),
		personalization: decodeHexString(c, "b197f0bbe7108ae12066ad85aba7c16bbd5e4ba982bae27feb5053c6b2763183"),
		expected:        decodeHexString(c, "e6a52d64c90906fa5a632897bd43da3592ce4263f3eea522abb2cecfaa230ab0bf086899e91034b8825d6948d4873893616ada207b78bdb7b2f3d85e0c2417619107008279b6d0c8d22031cad5054629fa21683b38e687a3c8fb9e4e75d424ea96bdbcd58c2338fa11075d8d7394de88b9c56fcb6f7890314faef791fa4b3472"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_8(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a248d90f95bad902bfa6978aaeef35ac6b0c394783fa5f2f69d60f9c6985edb5"),
		nonce:           decodeHexString(c, "0fbe4f5ac6ce7210bbeb767e85a5aa7f"),
		personalization: decodeHexString(c, "9792b45a2589f9eee5dcc47c9ff69ed1b1144fe28f55b721229d1afe2341c55f"),
		expected:        decodeHexString(c, "63877670656b316cc80936783c85c6aab613c66c7363f6cd34e217d6358f08479617c17c95ee572bfe60968ebb0d027e4080e32486827603b1c62f3df1c6643dc8f66aba05681254e87a34543acbf059888c910580b370e5f7e741bbbb1ce0160585d6c78cc880ef6b0418df90a99be046ee77ab83aa7d3c29d540747bf1174f"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_9(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8eb3bc188fda796926a3fa760ace26be81665b71b4a6bf8c474286af5bf5619f"),
		nonce:           decodeHexString(c, "3d1e8fa6193bd09217785c4e43ae03bd"),
		personalization: decodeHexString(c, "d6eec95d0756662ea762c57edca973393d583f6c78e8c0b4188a6154c254c067"),
		expected:        decodeHexString(c, "a0b24e9c22062dc09fe4043719f2c236091fb17cc4393616828596a5d1f317ac381967a3f6484f712cdff45a884f2b1abd68991b77c081c714e3fb703e3645dcc04f297d4d53345a59786d5b53025703d7892b93ad1be3419fdf7482d651ea9c31daa3932e548179f1ed6829e9a122f4eb2fb58a91b0d8a14d9a5881b7f20cce"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_10(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3dc0860de27fdeb10d93dab4a29e1512a9be16800e2119128fed67d49962d970"),
		nonce:           decodeHexString(c, "a936b72f8ead41cf0a64d4aecfaf6881"),
		personalization: decodeHexString(c, "074143740c4c610701eedc3256868ddcead24cb6c43a7230f6c7e5cf864dc927"),
		expected:        decodeHexString(c, "a0793dfa61790fa40425edbdaf34aa2af679d0bbc0db95a29f9cf3d908269671f2fc79a3273b6605a7bd2be4d14e5e6f9c5277692872e07a89716b44371f1d2d58acceab7fa3dcd35480a6d8e60915110f03f1b0b1c1dce4b7fda9314cf5cd950a9f27744100936404850fdbafa674f11a0dc173630f7b15b247d702b6670858"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_11(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "0af7649298924c7b03b0b0630671ee0c5bf099f18363e42d9fc2532e250967f8"),
		nonce:           decodeHexString(c, "75927ba5576ebd2b96d3edca5137f2f7"),
		personalization: decodeHexString(c, "a583fa1d0acc9d41ed708bf33a746b830d5429a9a887568dd33d5ff7b9cefa4a"),
		expected:        decodeHexString(c, "43fd478d2eeb146bb9263e3bfac7e48354375917dd9b65e4163d3a3702799fd44d76b6fb3b4e898d44448862a2e5c0738c6708685673748283ede5109a47025689f812132bf927fd66998dddbc52015a1234807d98ce161fee0f4ee49ed687eea1427c63f48ae41c03e87d882066afce08b568adba56eaf3fd9de0828fed780e"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_12(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5807ffde10a973247349fc5d30c31d1b65fe6e83fc3fab4d518a92541e370b25"),
		nonce:           decodeHexString(c, "2802a5b3bb5418e5ab8853f09138e1eb"),
		personalization: decodeHexString(c, "05d48f94ea51e6ce46294b63639286c8234de5536b9af08e6ea759ca006a4331"),
		expected:        decodeHexString(c, "35f578ea52643e3b550fad130e1abf2b2b4bb2d1c7a67b0beaf8a2db46e56548fb4ed534e3be97fb5a08f95bc0304b9625fe9598cf2256f337cd4f51769841f7fc7e00ff85e0137dd2315853eabe82c284a2daf79feb5e34ac7ea56183c4a59d8f981f15c8483be3fdf1e5b0308f330d86b0df36a36a0f46a6b4ecbb15ec7eb1"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_13(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "58a27ebb2f5f18ee96b2618939b3a321d6d1999b1ba982bf6a982b8a3f89c150"),
		nonce:           decodeHexString(c, "0af1ede5632a415b59d48d17aaa8e8da"),
		personalization: decodeHexString(c, "6fe5d697a91b5a8b7d85ee5184e454b327ec1c31705630f905b52616109523b5"),
		expected:        decodeHexString(c, "387182355689879c431524dc669735876d1216ebf7b9d854a6d140e4abee55927413f68de690502563d3c87cf3697177d208e9b4085fa0c55e865cd29f8719bcdbe243185c71c944c7dd6f1852f96368df20f64d5a5a1f7786e56c167f270301087eaf5ddc09aba8447ea5740cf0446994a5b9ce64690cdea63594da144bc76e"),
	})
}

func (s *drbgSuite) TestHMAC110_SHA512_256_14(c *C) {
	s.testHMAC110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "154ca210ca3b1b04e1145760dada6e2f19b8047344de87bfc0655ce8c82ddb64"),
		nonce:           decodeHexString(c, "4788964160bb81d6f6c2675008b05410"),
		personalization: decodeHexString(c, "c56e284ac65798010eb7bd39ffdf49bc25fc2e663e90ff93f73c97e65ea82935"),
		expected:        decodeHexString(c, "683493fb3c6ba0ae0c42009beb39fc37a9d235fb3fa00648ce4d60b4d6bdecdbaa1e2ca0c0fc80c53f6f8ceab31c3c42764b8f23c4cda91743be33e0a77fe5a4297701bdec6b2a5712e76c64bb8b7e03a257c140cd8aafef046b049303679a7904f029444d92d673107bdbf769fc1130429ff64b527b0ce2420e2c70e8998ee8"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate1_SHA1_0(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "32c1ca125223de8de569697f92a37c67"),
		nonce:           decodeHexString(c, "72d4cc4f0544d409"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9e98cc8e0f8eb84d1911c1775a5703bb"),
			decodeHexString(c, "593aa3a300e5c907a011dd5a3dcd77e2"),
		},
		expected: decodeHexString(c, "942909a9d380aa5d4e3af69093a8fa513ee545b9bf9e1b81c5f30966db3e5cb52f8b1b6fe440d592e5fe4a972c36aa498035e2442f82910c5cd095c7f4b4c7e7555c4669cca481cdfbfda167b5d6f8d5"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_1(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "172a2d24ef128dadc93e0b74f277e7c3"),
		nonce:           decodeHexString(c, "692f86e6ca5e1117"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "93b4a1fdbf9dd30996298804dd86c0f7"),
			decodeHexString(c, "69d792dc9b6fe1601f31a68e4d007187"),
		},
		expected: decodeHexString(c, "13f30b4698d6e973556c3f92dff6241bbfbde300ed58d07fd5f64efdcd0c1b62ca3de6358d505dcf972fdce20f7b891c4cab493721d80cb108fcee915835b02dea33041b38e28252c30a71fad85878e6"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_2(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "4a17b8069ae3a74d77c9c94514ba90cd"),
		nonce:           decodeHexString(c, "2abfac0002d2c5da"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cc39d1a2a425f00e220d721fbfd5b6e5"),
			decodeHexString(c, "1ccee25f5868e863a05b72d744e64aeb"),
		},
		expected: decodeHexString(c, "d787b355629779ff2916397d6094f44dec06337571ccb0abf5a17b6cfabe00557894e9ddab8caafef467faa4514582b5073e7d1d9fdd6fa34c565d1aca23742ed4e87133253a9664ec085bc6c76965f4"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_3(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d60c4860d9ba3ebb64e2095231e07792"),
		nonce:           decodeHexString(c, "ba6b5e9e22e14043"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "776273bb22f5e62a793692127bcbd785"),
			decodeHexString(c, "8795e45f82160cb1096a509fd3572f92"),
		},
		expected: decodeHexString(c, "3122c1d3a6de8b25fd180b159731f975f78601360155e43f694b289822a25948d2c20a673f181be06b59c566960339f25015d2acbf5c7d3f68a2bade779e00faa24623c1313da888dc8cee901fa05573"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_4(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "494983c04581b811e0b2b846c54bd318"),
		nonce:           decodeHexString(c, "24bd70fd182558f1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "935200a7edf1e2903581fedb7c04533d"),
			decodeHexString(c, "49c0133cca2457fa7cbbd4c68cc5e78f"),
		},
		expected: decodeHexString(c, "0fd2ec47fa2e31326ee9b894fdd6224818190168640d91a2a0c247b1e27ccfa343e9370d182d95b2b5bd74b4b09c44d04094364a6fd02ba70ee2c55e04d65ad9c6da65b9c0742f9fb5ca95daafa48df1"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_5(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "77ea86ce59f2466e55ce2057e7855035"),
		nonce:           decodeHexString(c, "c09295c02f1c51cb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f36d65f22b5afd3f51e13ea38dcff555"),
			decodeHexString(c, "6b613b56e470b5c2c30c30aab9a772e1"),
		},
		expected: decodeHexString(c, "41cd8ef82609012d33b4e5b51a39ec17eda4317962627796f7845045920becd7caef56d4a2c3a8e849e299babe92367ef34a8910bebd498248ccc2b3f5f63920b31cfe856973e15e48b060871a9cf9a7"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_6(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "2dffb03703023f65b757b7ee87899a14"),
		nonce:           decodeHexString(c, "a9c8ce788fb2bddc"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "da42b213071252adb755a6cb24094c17"),
			decodeHexString(c, "c83fc2beb60a7ee9b374f3fb7bfc8900"),
		},
		expected: decodeHexString(c, "8f54271e3578e60e8989e49f5b426e1a0296afbfcc7da0ffbdd5dea71ec6b339b6d866bd3756ba745e42c8cddf997cac5fed72b33ac81e5f4d6f2d15f030a41c684552fc94d48c0d97323ef7eb656857"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_7(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "890e7323502313bc7d617805360d5968"),
		nonce:           decodeHexString(c, "b6c68c0280cef5ed"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "257f1f60cf2d36924c3e7b6e4cc35135"),
			decodeHexString(c, "89235cc472c6e2e1e92c70324459a9d3"),
		},
		expected: decodeHexString(c, "55283453e82662c8d92f54cb4a5d784e83b1b3527bc5e71a53f04508172eb5156ba2a9ba92116cdaceed17118c7637af4b574d364187a52cf0c20d768da518021c3d95cb5ce6bc108b1bef19bad66677"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_8(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "167ce6bad165eb640eebfece7ca6690e"),
		nonce:           decodeHexString(c, "c5c6b5f8c7fa9304"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c0e7ef13138ec4a7d52baf8592484ca0"),
			decodeHexString(c, "472a47e3fc098c7cb92fb953a26e25c6"),
		},
		expected: decodeHexString(c, "e2aa2650c84be79ec410ff9bac93e5caff8a46a8c39495856ff64c8c5399e81654ba90c8a8b26cdca2810ce68e4ab646e50a1f6fa7a829cfd72c9a61e1a0b415c031067dcd417baac9553cf7d84a7742"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_9(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6b8aeaf70460e83a124899d705dc0900"),
		nonce:           decodeHexString(c, "acd811698669fcee"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "94a53808df5ebaa7693934d7fda92b95"),
			decodeHexString(c, "4d4e7d88f44fe556c5ccdc56f8b2f098"),
		},
		expected: decodeHexString(c, "165aae6bcdd799fe325ddafce3b645900eabc87552c0bb47ee2eb6ad51462a8a4f4498c4bd24fcfc46de5d12351143d5a838060f617258c218035a4f29fb34a54673205b2e1b362991693d7b99972954"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_10(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "00f30f92bd44a9b2b04a6cae67533ed8"),
		nonce:           decodeHexString(c, "5b4ae1335b98109a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "77ec4274fe5f8f22dbb4a1ed6050811e"),
			decodeHexString(c, "ef041b6516825d51bf76d2f651a55576"),
		},
		expected: decodeHexString(c, "8c664357b01425668ea5daf07a2b5b8c50dbbd71d9f48c50f275a02b6cfc4717eb7db286fa49f17d05d44230f7d82c251a6f0fe0a2add5d2cc9a92a527f63a9bd3c8ec93e9a404e0829629c5eeb997b0"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_11(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "2eafeebb58a2fb54474280112c5668d6"),
		nonce:           decodeHexString(c, "1be2aa4df98598af"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "389a36ecd687080a5d2cace8a326f03a"),
			decodeHexString(c, "495965bdbbb1bb01ba61191e9dd4b038"),
		},
		expected: decodeHexString(c, "f17db045b0af4913d79f99e018c1f726f4fe02f08477cccc0d6a068a808bfc6ccb797e6022dc3b99ea18086a56428884110c49128a51e10c15f6ecbfe0a5a1e97e72a578fefea6c66c436c91a2b6395b"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_12(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b6497197b783d1f493a6430748b45932"),
		nonce:           decodeHexString(c, "895ea2a9d8204f5d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ac26665e796d1b00951c725da88d992f"),
			decodeHexString(c, "5f08c7951106dfec5096d90097449cc2"),
		},
		expected: decodeHexString(c, "170b58ac3342a968c96aa29f1ce820debe7934d9db46216c03ae3afd304188cd38b6208e1cad5fce5c26179a30a8771015a99d2902d51899ab0c42e0b400d18f1e89411248db96f9d62b466f828de150"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_13(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "4ffafd1f20dd38699bfca029c0558483"),
		nonce:           decodeHexString(c, "fbeed3cb29aa0eb8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "96abfcee883d8dcad967c071c12dde19"),
			decodeHexString(c, "9fd7cc292cd55d8364862f5fd675c08b"),
		},
		expected: decodeHexString(c, "5e8612c6ce8f5b6838a1e4fb9e14370fb2d66bc885f6fe8a3ff232f16340c2af58eb2734494e0ce920f36046b7a807f4b55caf3a45bdcaefa4bb23f352601c0769749f0257428918b931606c7b395135"),
	})
}

func (s *drbgSuite) TestHMACGenerate1_SHA1_14(c *C) {
	s.testHMACGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "89a6f070afad5ccf4d117c4e44baa2c7"),
		nonce:           decodeHexString(c, "b28941fa7e828c04"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7206a271499fb2ef9087fb8843b1ed64"),
			decodeHexString(c, "f14b17febd813294b3c4b22b7bae71b0"),
		},
		expected: decodeHexString(c, "49c35814f44b54bf13f0db52bd8a7651d060ddae0b6dde8edbeb003dbc30a7ffea1ea5b08ebe1d50b52410b972bec51fd174190671eecae201568b73deb0454194ef5c7b57b13320a0ac4dd60c04ae3b"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate3_SHA1_0(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "c27f80b1d085dd15cb163f0336d07745"),
		nonce:           decodeHexString(c, "7ecb3f32a90242f7"),
		personalization: decodeHexString(c, "4deb622a31b4c530348b5f08008fb7ee"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5a84f94804e2d04ead773d2a324b34d6"),
			decodeHexString(c, "226d9f4d720f580c2be44d4eaf2ec8db"),
		},
		expected: decodeHexString(c, "6db76a0a003a64dec6801dd3271fae8a43aa8ce2e0d205e3830e267072abe28d2a6f707494d15638559fa4282843760daa90eec5d2865ea11e836e60345160d5112445ab1754b578b55471a1d9caf275"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_1(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "517dadbd6e20fd83aeaced197732b1d5"),
		nonce:           decodeHexString(c, "ce221a60f8210685"),
		personalization: decodeHexString(c, "bd9911bc192da45c00c47d5ee079473d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "33254154ffeb4983d27ac08980ec4943"),
			decodeHexString(c, "349db52f09422883536d11ac4aaaf7ba"),
		},
		expected: decodeHexString(c, "dd7be811d3a9fdd194e8f8f18b35e1d9f1788844c371d811cb898ebc561d000cc285afc8f486dabe37d6c85e614d3d196c544ca560ac6e0337b0700e1ded8fb28903e66329afdd589308d56c50d73803"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_2(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "c763149ba95e7d054da52e4d3d062872"),
		nonce:           decodeHexString(c, "53bc2f43ae7c9da0"),
		personalization: decodeHexString(c, "305d6aa3c6148a0eb2e91b9385de5903"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a36918edaf5add6f0f81d3f991ee30a1"),
			decodeHexString(c, "5c65b09e744317db86d78aaefa66af44"),
		},
		expected: decodeHexString(c, "5560d27fc55b885a29a449a1f8835966549c4956ebb0393ba9fe748e74a5a303f1478bb3e507a9daa1159dd8dd6d171bff2e3830581d7f6fdbccd91a8748d20c1d981cf909c31db6eedf5587722ac257"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_3(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b479a14d125fe4601053989439f85200"),
		nonce:           decodeHexString(c, "e198df756aff7543"),
		personalization: decodeHexString(c, "8f590670f88d8c2c713d63643f93ba55"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cda7c7ee77e667b96ef0ba330c9ca6ac"),
			decodeHexString(c, "a60fd147f6cdfb408d160e388c20d8d8"),
		},
		expected: decodeHexString(c, "5f088bcebd816551c4b22c3024aeab2f75c906dc8fd0ab0c80055e0445c1dc151a06df81bd39b8535261a7a5dcedc7f9b17c062ee6f120f2099f2ab5aa93f27a08d7b5cf1027e26adf54a520916c2cb4"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_4(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "bd46fc253e9334d4aa8bdff5e21c12e2"),
		nonce:           decodeHexString(c, "61515159b01a4516"),
		personalization: decodeHexString(c, "1735486e5ea8be74fa158b2fea8e5cad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c3517d58cdbd0262655174cc1d1eb324"),
			decodeHexString(c, "404f7b8eb461d077368e2ff06ddb4189"),
		},
		expected: decodeHexString(c, "7f1cf172b67ec7c566c9e24c071b79b5a4a135a369ded5e78b8cd2467749e30c401bf176d88cc0e05a587bb2b8ed09206bb314df59009e88a01ef007e61eba2e40093aa003dada48314869c0f3b99d50"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_5(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "600a31b8f55c85ce27ece4705e6fe8cd"),
		nonce:           decodeHexString(c, "17a01e7827ec2383"),
		personalization: decodeHexString(c, "6deef06a079ad2062e77dba21fef6441"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ca5512ab329ee941b22f327fe0dad499"),
			decodeHexString(c, "c1ffc97289d8d363729daa1628a2c735"),
		},
		expected: decodeHexString(c, "a81cf5563940ffbbee9dbdcaf7db1e7e53b427fd3a0e795c35a1b8eb6f6316e43b804690a44897e0f42fbdfa8c9f1777024d2a530eda994ed038de60b90602545cef99b69f371f79619babda9360c665"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_6(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f38b0cd16e9434da916b63e8b7ce1a91"),
		nonce:           decodeHexString(c, "883ec208c3baf76d"),
		personalization: decodeHexString(c, "534799e3fe51bc370af6568072e2e579"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9520ad24a61d29716342d2b7bd35dd45"),
			decodeHexString(c, "c4e92d6da37a9f6236a396f352c53c86"),
		},
		expected: decodeHexString(c, "5dc0b3bebde5bac6d4d24ec08f1510dc88e1e06c97c3031dc9519f3392e83a09e1a7db99b2148d992a928bb5c1f68265086f7a84e697a7a0aeda4b41590606ed139063def46fa2a625657b17f18845cb"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_7(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "06a5e76d0ee90ed0206a07a914dc2079"),
		nonce:           decodeHexString(c, "6a8a2fb2c0ebbf14"),
		personalization: decodeHexString(c, "2a49312af91926a37b5f7c009e8047ef"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0cda72090ebb007ab27156957e64e7bf"),
			decodeHexString(c, "24695b221f42a5be6d4399c6444c4aa3"),
		},
		expected: decodeHexString(c, "2b0aeca45ed44ca34a2fc741c5e4e2091e115a4148e71bd8fa90588e32253ffcf360df213b48a19f6f45186b67dcef6327729ac8f3c08d658de89e71539783fb66ae834455407e7827114317299835bb"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_8(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6c12df5d2ba1f6a6e1e733baae42daaf"),
		nonce:           decodeHexString(c, "eb47cc188d1b0be0"),
		personalization: decodeHexString(c, "f510139561b292a7a1a0292b7de4b162"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f57a0c1dc69eae7473394ad1b950dc61"),
			decodeHexString(c, "9dded4779fab0c8843fa693146837689"),
		},
		expected: decodeHexString(c, "2be15d2ea87099a8c0430ba8e9451208a898379da075169568196f656eadbab59637c1f949b4506a851ae0394e135542137bd0daf1c188decfce92f6ef2396aa5bb125cf3187230ac81c3864632d9234"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_9(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0e6a7843e29e5f16d2bbb4021d6389ae"),
		nonce:           decodeHexString(c, "692298b9f62ad22d"),
		personalization: decodeHexString(c, "f0434f112699d116cfa7eddad486c544"),
		additionalInput: [2][]byte{
			decodeHexString(c, "146eb042377cdf6a0831558ac17ad971"),
			decodeHexString(c, "b29c26d483fde8489263accafc10d698"),
		},
		expected: decodeHexString(c, "ecf0812aebee7a452339071d9906709fe00fccbb0d94cc101b507646f554ebf3602459a4f20b82325b0e083ca189f59d68c5753dbe942643f07c7afcde99f9d0cc2883923cb80456fcedc535bfa7d647"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_10(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b6bc57d663b671868265fdb756e142fe"),
		nonce:           decodeHexString(c, "6da9c07dd0821c6e"),
		personalization: decodeHexString(c, "f43c5223bfe726a3164afdcabe931eb7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ddf419d8e074a4ff2daf06a1adad4bed"),
			decodeHexString(c, "e0862e71c4ac52194cd320d196e446a2"),
		},
		expected: decodeHexString(c, "4f9b9e9aab493571160c732881dc358f73a08450a152124775e559889a9298d034ce1882dd2116f4863f1524393e1a3f1aceadcd9c4163dab7c543cd375c3f4b61ed72475d1812017ac83bf22846d14c"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_11(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f5649fc184f33c63cf8484011fa27578"),
		nonce:           decodeHexString(c, "c1651fcd1a0780c6"),
		personalization: decodeHexString(c, "153f7b2c9bc9494a20ed0bf16b97ffdc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6106fd4fe0e1d894837ba8624cebbe2f"),
			decodeHexString(c, "fdc2988e6b358929645d27594fa98df8"),
		},
		expected: decodeHexString(c, "49130a750b4758e7e8dec8d82bf66ae771d51181c33cbba9d84093ee4f83f6e3aadd3f40fbcc441fcf90ed83b83c9d9671b9092907a36231ec3e2c56775c5699fce16abad104b291dd13f67ad4e1ff4d"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_12(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "fc3dfb2f29b649391437aff692076067"),
		nonce:           decodeHexString(c, "1e470ebf09e8fd68"),
		personalization: decodeHexString(c, "4e7d48fe49ecefebed749979b965d8f6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ae7405de4957947dc09fb1be2227c763"),
			decodeHexString(c, "3fa22158d9bb1948c64102f3ac00bfed"),
		},
		expected: decodeHexString(c, "ffb49be8c714b502595da9248248fb009eace24ff77d298dfe8b05efe6441352213bd236bdf4b3de34fee35b051747f4e549f69bbad8c729f3b5cf2db29a0ab6aeb590857e0f48babff3a9ea3e4079b6"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_13(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "32018afb07a6141e9a6badda9b647f65"),
		nonce:           decodeHexString(c, "0090ba3475d0149b"),
		personalization: decodeHexString(c, "fa92f66bb7a06a1652d4084c15d2f778"),
		additionalInput: [2][]byte{
			decodeHexString(c, "13c32c456c799cf0808e00c6de7efce0"),
			decodeHexString(c, "693728213798dde84176dabfb50434d5"),
		},
		expected: decodeHexString(c, "12c9d6683e6ebb5136253db60b39b3203f52607e44d13ae80709cdf2fa61ff5befb0838f544e39e135830b573ac5a31b7535c0a2502370400906658e6b1e9a0f5755f360d9bff68fa55ad628b49a8937"),
	})
}

func (s *drbgSuite) TestHMACGenerate3_SHA1_14(c *C) {
	s.testHMACGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "3e325daab3301856044f416f250b6161"),
		nonce:           decodeHexString(c, "e447e63d85ca084f"),
		personalization: decodeHexString(c, "a9d2a53dbd7ef4b9150dd0ed4d002e56"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4de6c923346d7adc16bbe89b9a184a79"),
			decodeHexString(c, "9e9e3412635aec6fcfb9d00da0c49fb3"),
		},
		expected: decodeHexString(c, "48ac8646b334e7434e5f73d60a8f6741e472baabe525257b78151c20872f331c169abe25faf800991f3d0a45c65e71261be0c8e14a1a8a6df9c6a80834a4f2237e23abd750f845ccbb4a46250ab1bb63"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate5_SHA1_0(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "84971398a188485e5b7cc7e6edaeb2d9"),
		nonce:           decodeHexString(c, "a59f89be8be20996"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4bc60fdfc7c3a681bbea21a19032f4ce"),
			decodeHexString(c, "5ab2a1abf2afd8f8d83821b35d082cd4"),
		},
		expected: decodeHexString(c, "39025bb3d8f2340a86938121fcf4f1e9ade448fb8ec99374f0071c8831d7be9f5fdc53098db5beb2dcbd9c96adb2ea2eddb0433cbe4d8786e91624917ec8588d5bf33c91dabf378e9a470410ecb6a51a"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_1(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "12b32ee74192c2bc8078e5984ae7a1bd"),
		nonce:           decodeHexString(c, "08d8504a65bae895"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2c8d38b4d3965a26930d4986d3c7b21b"),
			decodeHexString(c, "a6d2d727b4075fe3176360b40115c31b"),
		},
		expected: decodeHexString(c, "1b200b444739f85ac0db8a2bebeb19ddded23d59acf0489281c4730fc48eac1beef189fe148600355dcd4138c71d3b89b1126249be6e851fd70995b9dead88b5d9df08aa7544964ecbd2dc12267a25c0"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_2(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "27ec9e41e4e109db196ecdaadeed9fa4"),
		nonce:           decodeHexString(c, "d4aa732c88c78a4e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "dd4d1a94affc29b358c60c73a2ec4149"),
			decodeHexString(c, "5aba178b3078646eb594b800ef5d2a69"),
		},
		expected: decodeHexString(c, "fee36418c7cc1f48dafcb76149fb36d54541f73977c5f1b3431c1f3be1ae433b72bfcebe96ae054ce2f73185a3e44e98ae968e02e235775a04e4349c03ec7a4f910c3213a0dc4be26e7065cf5787d3aa"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_3(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ac8c43cc931afaeb75f541771b6dc7f7"),
		nonce:           decodeHexString(c, "9e0dabc22624a0bd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1976326c21cfea84d91d13cbca0373a2"),
			decodeHexString(c, "becb97721e7d6cd382af066bff11831d"),
		},
		expected: decodeHexString(c, "82640e81f53ee842182d62f4f38d8622ec69f9ec4feb9af26cb81f5ceb027b979402c5e5fecdafa2eb7b8bc08c8e895684f4bc319c8758701f3835d58fbe5a31cd7b4bdba9970fb0b17ea37d3e693fd8"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_4(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "70953edfd1f48092f958b28d86bb1790"),
		nonce:           decodeHexString(c, "0ead495965341fa0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5357e6f2a3cd2861c44462cf89b7a347"),
			decodeHexString(c, "8d97d48dd9cf537c1ca1532b554f0021"),
		},
		expected: decodeHexString(c, "1ffa8f5b68e29c3da306ea98faa4efdf5199005aa8584bfee4252534d509f883320ebaeeabd74511766ea485874b499ce539255129acc039f59cf1116a101bdc733ebf50c2d31108b3c6610e86cba975"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_5(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "9eaca437bd80412cdce32f446e6fb284"),
		nonce:           decodeHexString(c, "e61d9d24d7054d2d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "86283863fa1047db98aceea176631a5d"),
			decodeHexString(c, "a8d0245c143ec7f5f1f1d09a57f48335"),
		},
		expected: decodeHexString(c, "a92b842fb7441ad1b398528a732ddab7bb15754db43efd1fed23b95100e8956785f1f7d730c87067212d87b11ee17fced34c9e69081f8a8d9a706fb16de866231284fd0be6df95320e1aa69feb98418d"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_6(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a3031414cf6d26ebe5de67fb2ef7923f"),
		nonce:           decodeHexString(c, "1fc9c1220f6e31cd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ca8cc025cea2c5331a83ecb3bce6d7c7"),
			decodeHexString(c, "d8d64e55886b34f2cd727e4a37759be1"),
		},
		expected: decodeHexString(c, "d480ffa034cdcf73e863c64dae95d2b3c49f5b449d6ce3da0758f3fcbd7aa5b4d632a74dccced921c08fd39b2df12d5b29f8d02ca3ab471de1cd5aad664892e93cc2826cf46e2d8a944d3ecd26cec814"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_7(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "729e2ff2cca01f2578e4b52c0c6fe3d3"),
		nonce:           decodeHexString(c, "4e1f920fc2c97823"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9e59487da8c1725ebf3e6501196ffe63"),
			decodeHexString(c, "782f02945567c9383703607a6bb484be"),
		},
		expected: decodeHexString(c, "cbf5d87829f87a12a261da9a9aef54c493fc0471fd2bc57064af3bfd0657cf0e82541b88822a993af4cf377bd4f2f7a9d0eebf0ad7b8786434f322cda6688c4dd254dd4a450ada1a6e25c0890672384f"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_8(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "37c767d4db84fe8c88508ae9c4ab6a0b"),
		nonce:           decodeHexString(c, "b5c893789185da94"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d37210842bd501e2082f2fc318b716eb"),
			decodeHexString(c, "173992ad99c21c954e9d5299b6e53e13"),
		},
		expected: decodeHexString(c, "5e113e6668e356f07431e329922fe872511465b6442d200eb70792c8d0b75f70043f3be94bb147744cfc6a8a39df27e4892303021afa2df27bef3a63202b91c6a3854c98511c7496663fa83d32eea34b"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_9(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "17c19b32a8b2aaaaaead5b0f4c8c6304"),
		nonce:           decodeHexString(c, "1d4d16b8f8821a80"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2a5c3e50b8ab093eec5a01561434a14e"),
			decodeHexString(c, "aea9183348a707ae27f91f48a1df9cb1"),
		},
		expected: decodeHexString(c, "fcfd5181eb4d1abd5b7ef55be72fabd82ebf3c8b6f2543d8f2a843c46b9981c502add61eb90c14a905e0cc4ae4e39e9a9f354647f440ac73751d47273f67083f7c1308596fbe0865fed3819a0452024f"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_10(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f85f8411b1bce47aa600d1eb6cae91e7"),
		nonce:           decodeHexString(c, "243d5d8b79feb8b1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d3ec04f5ebcb3c19599dd38014e38b88"),
			decodeHexString(c, "67f2c2f1103632c70c41d89024ddc2cb"),
		},
		expected: decodeHexString(c, "666746eb52de69630249d484fc1cf7dfff944ba9ce4c53b637e0bbe5abda3ede79e7e9d638e0464b4e7c5f937ee26bb968aaa8f99eec60fea9dbe088e510beb1b4f2debb388e81e8e0ac4dc085ec3e4a"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_11(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b1d64019e69e9b3d31be5fe1cc2feaac"),
		nonce:           decodeHexString(c, "d091d095f6383cce"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "56c1c22ff63b2306a5d3ae30efdb020d"),
			decodeHexString(c, "09bbe719b03a8cb1183d5a5dae9fba7e"),
		},
		expected: decodeHexString(c, "d06dbd3ef365531af05b59cc63a182d41b5211d7f831635961456a8c6c6bda76651fd3aaa7c52d0167981d88e680fd08814072fec146f9d67ad415d085074dad1ab51b3254c48b08fb5f44b3641ddbc0"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_12(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "79d85a22febb793162910b9b9df5d2b1"),
		nonce:           decodeHexString(c, "2ed972839ac5eb88"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f0eedb8bb43657e4690f4f1a80d19300"),
			decodeHexString(c, "3f4f8cd7d1c92136129f463bb6e28ff1"),
		},
		expected: decodeHexString(c, "70f58a7155c36dfe0b3ff75cd004415bed6ebf58b0f5945914c4a30b4a03db1bb5ec2da66c49f3dbb3519eee2e15699c340e4ff6f555ed53c278730b49e95f6141bb0ca6d54176e816b8b0da264ef9a3"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_13(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0796e15cbc696f3677b86e88b224da53"),
		nonce:           decodeHexString(c, "b257ec44739e378f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8adaae564b20644317f1fa9b263f92c5"),
			decodeHexString(c, "3218c4a32b9dd73e865eabf014026497"),
		},
		expected: decodeHexString(c, "d4d042d00815694e28ce7aec58af1d5d7bbee38a64b1b5be258fa7495c3f8e1ecb356f0d71f3f4a064e54b718361ec773b094b0c473331d91c8e9429d66a2234fb66a2365e299d61a0c48497e8f4fbb4"),
	})
}

func (s *drbgSuite) TestHMACGenerate5_SHA1_14(c *C) {
	s.testHMACGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7a41f0155e6562e5775c72f3c4d5d7d3"),
		nonce:           decodeHexString(c, "525b6641b2641cfe"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b4894bbb6435ffeb710bf5ae440bd744"),
			decodeHexString(c, "689fb48c27983ededdd56d5a6b2c0345"),
		},
		expected: decodeHexString(c, "dfe8a9e17b938a1782fc3dba4f234dd9c9e36b67b28e1d901ca6b3628689aa4d2ae6b005ae3ce97e0d1e645da2710162294606ce51638b91e9c46d8f7f4f1a217e44c36b560f78b0541fececcf49b9b9"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate7_SHA1_0(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "2e46d1465016ed9c8e97ad09b64135b9"),
		nonce:           decodeHexString(c, "1f767a37dbe161d2"),
		personalization: decodeHexString(c, "9cf5328f3c83d9106633ef72969db870"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2cf2385a1c08820f116110ece73d5c38"),
			decodeHexString(c, "e276ba7a39aabaf7b6ac06b3e625f228"),
		},
		expected: decodeHexString(c, "a34e465c7cec4a4425e74ee9ff00afd03c38ec23cc42275a45e2b9b1688e0346c831db4e876b26ec8a0941d8822ea2493345b647f47d62f5a4a1175a68c931938c504b10bf510e84e1d1b7575ce60392"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_1(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "57a0130495639fe36ea031a4712d6f8d"),
		nonce:           decodeHexString(c, "1511d09f3c4423db"),
		personalization: decodeHexString(c, "06c68391122a4cfccfd3213e1ddd0217"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f40e72070d55cc04837b00620ea049d2"),
			decodeHexString(c, "1370babced8c74778fda2b7196a3e3be"),
		},
		expected: decodeHexString(c, "f83977567a81ba5ab9183ae22b8f74dc56600c9ceb0c356bfa538da363cd4cbd23df38209ee318a824d555627e4d92ab67f419908ce874863bd3a14175404b59ec024eb23953241d057044366ef5c92f"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_2(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "22f1aabcc1dc1bdd3ca4d543052f1ecf"),
		nonce:           decodeHexString(c, "0991d99eefc2e214"),
		personalization: decodeHexString(c, "b1da6e0615faa3a3332986e3110d7bb5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1cfae24633f47b1be98f613de4aae9b4"),
			decodeHexString(c, "acc5e271f1effb59954c59ae3c48371d"),
		},
		expected: decodeHexString(c, "9c39b50e672525f5f55cdcc5a6db5c12e0a2659b6066a0e5206c8355e5ea050e3d25d7758e4295cbbb7407ad8cafe6b18248100a7b44cf46789a8204b89e0ce61863b8f668ea1a85bb17d1fe784163b4"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_3(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b1c1c8b29339f45baa8844a836e1744a"),
		nonce:           decodeHexString(c, "330bdb95c9a75071"),
		personalization: decodeHexString(c, "005db9cba44937b96c2dd8fc2ede4f19"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e7c66f46e635ba70e13ec802eb680600"),
			decodeHexString(c, "e042426aecc7b6dacdcef259ff1cb974"),
		},
		expected: decodeHexString(c, "6268591ba5a4ea9264f2fc084ae0fcf29cc8510cdf13d1cdd6dedea38fd1233cfcab9a516fb1ea87d2be3663cccc7be45459e7250236c27b4c2ba2ad93f9b162d7a217c90d0e72367aceb2b68fef6972"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_4(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "869f7dc29af9b337707c9ba6b53c096f"),
		nonce:           decodeHexString(c, "a591976c911e9b93"),
		personalization: decodeHexString(c, "7ffe89547e750bc81c58bacc420a3d01"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d2bbfd8e2746021fb96e6f193f60d5a5"),
			decodeHexString(c, "f7e90688db62f547f9a663d0bc36a881"),
		},
		expected: decodeHexString(c, "c5131771deeeeae61e527ef451c31268ca81be89876626b7c939c5853f73bc4563c5990157baa59cbbf9bc90966ef5dff107d9dab2c728490195742e7870f9355b7f6b34e222b026ebc6f66b1cc08b2a"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_5(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0ed5f3590bdf23d6bbda155607512a46"),
		nonce:           decodeHexString(c, "0fac870d3d0d10a6"),
		personalization: decodeHexString(c, "7779c7095f0e3217148433212b514ad7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b4cf127f7694c84882a7a2bf2ad82f86"),
			decodeHexString(c, "9812e2fa754d8d84216bd8ec8590e070"),
		},
		expected: decodeHexString(c, "49c672a8b8ada4637c85ad3cc8f34ccf65ee8a52080b40ffdbe123974667716f220a6b8d4325a2233c920df62c6af9332b5fe0fb4927096fdc5fcb0582561c6a5f2c2c02a21b7f00114e37eb841fc2e0"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_6(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "45b88571f1f6a5078e8f55a64fd65cfc"),
		nonce:           decodeHexString(c, "21b460e9d18d8b0a"),
		personalization: decodeHexString(c, "5f8e745b4cfe2b389ae793dc549651c7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "60807d1ed62addf0b3b99aa193b2ae69"),
			decodeHexString(c, "7bd3ebc62ed27255e890eab9bdf1f48f"),
		},
		expected: decodeHexString(c, "f276e92a70dc952274e97b4a6f21033fe9ca3c8f6b3351e5b9bd7bdfee10fe48fdec4207ab0ba2daf748546a1b41f1885b2f5c72fe8bfebabc2070630eb4510f56155e9f56cd28f34d2a7bbd1537fd35"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_7(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "644ecaf5aa69da3b77b193e98ef39a04"),
		nonce:           decodeHexString(c, "da34725b826a7658"),
		personalization: decodeHexString(c, "b5eb33eda5ed33589fb10140d7fee099"),
		additionalInput: [2][]byte{
			decodeHexString(c, "09e5f533ddd905216fe33fb7c56b61d1"),
			decodeHexString(c, "81b42cfea57b3b23e42f9a76693fe3e9"),
		},
		expected: decodeHexString(c, "97e86cc710f4f5cb03e5647aac699fe9470daa8f466020e68aa6b6650d1e5087e60ce0327b76810baaa6b1e5588d7b64fc4601951877e6026d1f193073bef1366cf3c8e70a8dd8b4f8008c92a5dec8a9"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_8(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "dada9abb0f4971c5c1729f770ea65c5b"),
		nonce:           decodeHexString(c, "a71b797960511bf1"),
		personalization: decodeHexString(c, "e2084322989327d6c7cee24debf5ec6a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5258eb6b1ac6e0d7fec82311fa25203d"),
			decodeHexString(c, "98830de1787e18f24b5ca2c06710ba88"),
		},
		expected: decodeHexString(c, "6d1f6ff3ca5784dfa4fe330a6b34176a6568d2dadb61487afd1b95e8b074804550d4fb68cd5b2a3fa418cdbe1ee4969653f30fbd535b96cdf84ea8fcdbb4eac328a046a4d31d2e1aaff732bb0a081702"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_9(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "409b34c37f4d2e5dfe0a05074c386087"),
		nonce:           decodeHexString(c, "7f73cfe2adb07794"),
		personalization: decodeHexString(c, "5de4a53e8aca5cbbab1b3066d715dcbd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9a7edf9398b24c1d31f2666b9b9d779a"),
			decodeHexString(c, "0f155315784d676aefb7f5eeb62a0949"),
		},
		expected: decodeHexString(c, "03f0404283d046fd43a2febfae41b2611fbd27676917d22bdc688d77917998175eb1d14ad63adef5aa8f5bc94a7e0cc50c31e2edff8899c8ee34abdbadc4a9472b093efa5c0414681965e52a802a0f93"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_10(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "494fdeee3c3a1cea15a6f6143ab89e7d"),
		nonce:           decodeHexString(c, "4a93f9e8a360c74e"),
		personalization: decodeHexString(c, "2b473062164ac8c4a86a6f59c476666f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dedcf5e809deb64f31f4d3fbd8076518"),
			decodeHexString(c, "1c9726d1393c3aaf1742fb4e5fbbc869"),
		},
		expected: decodeHexString(c, "905a4f69d059fdc164a699deced281fe946aa55f7dad003e2230ac913d7deb2aef87ee37d14aa32713f4d3a080bcad96aaab08aa2a7dc4d028d9783b0e1bba64bc5a01e34e6caa52f4bb2e7652adfd6f"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_11(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "c37b632eba47b37068dd1468f882a805"),
		nonce:           decodeHexString(c, "73fb2c8c738d5dce"),
		personalization: decodeHexString(c, "e8e74095cc1ae4bd3caed78c884322a3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "327d9a42a643908553dfce12419a52b4"),
			decodeHexString(c, "87cbd71021cb4a019b0ae3b069aaa860"),
		},
		expected: decodeHexString(c, "c0ffbaf2331fe683caca2dbd984c1c3d0bdebadc0d4156c85290c9fc8cd4578a6c4637ed0c7952ad0155e59c8adb824a2d9dc76410c2722f134846b31da96444973eeed9a07f6a1205dfea448bf44752"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_12(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "804d2a4a5795145a38f7a9d692b35b96"),
		nonce:           decodeHexString(c, "053f8cfb46065585"),
		personalization: decodeHexString(c, "8d57d0622ee09b751bfa6ff2c724d887"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7aa24affa982e7506b48299c566d84bd"),
			decodeHexString(c, "8f0705827ae4704cdc4519b4159d2231"),
		},
		expected: decodeHexString(c, "2a2e0e2a5567ee6aab61a6bfb17d29de3f406c3235bda1073e5ee061d0b9fc5e24a085ed5724813cfd7594730aeff3e64a2b8b0a9d40ec62f2b461b34385827fb14b8355b9fb9939d0e046e3b9824e9c"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_13(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a1a878881fe14aebf0200de12a35d42a"),
		nonce:           decodeHexString(c, "7c82be726a835f7f"),
		personalization: decodeHexString(c, "a94a268dffb62c4c2dad1f6b40bc4e52"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9a8d19dceae983564041ca7b0585ecab"),
			decodeHexString(c, "133c0dfc3586e405a0000e0ba3bbe7b6"),
		},
		expected: decodeHexString(c, "b06db3a831f7b86e423b4de951c477fee22f8cfb539362084b8aa5c1da9cd23479678f40e9419fa21e4391dc8f616907ee1851addec517fcefae47dea07b364c9d2a6592a3b43439e17d2621fd6da02f"),
	})
}

func (s *drbgSuite) TestHMACGenerate7_SHA1_14(c *C) {
	s.testHMACGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ce9057867cc50a1169569761d70aa88a"),
		nonce:           decodeHexString(c, "372c31f9ba8a99ec"),
		personalization: decodeHexString(c, "86acb354abad884d85c37bf8fb1c6a82"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7ee4f3670c4671f128cbd743c408bdd1"),
			decodeHexString(c, "38f8003e8fb8c119534a2c3400a87f8d"),
		},
		expected: decodeHexString(c, "fedbb1636b83c5cc5379c9aa4d1319df6d30770e469c2f7bd65b4b74d9bc880d520e11b2c3642a7c4cb6d6138d1d92f716317dd762c0a841e56e7e0226971a7f470e918d44b4f374f9e7e3b5209516d3"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate9_SHA1_0(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "9e66c1fc6886f1a84237d721be6c92b4"),
		nonce:           decodeHexString(c, "e0db993d92e0c85a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "978a1a8a9d6c6498d3536c7b41353fc8"),
			decodeHexString(c, "24826f2c58425ddddc71d796c6a57314"),
		},
		expected: decodeHexString(c, "94a0cfacf2989cdb19873989f8e86739d5bf3afc392b7211ade4cb127e6e18a6398132bd38d5c327211a3554d24a8036cd99d50005087779c67276196578b4e35ffe11931077aede78869d1b9ff72561"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_1(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b8565f257fad8812578cd2990dfdd8c5"),
		nonce:           decodeHexString(c, "f51c7a9029855727"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3fd4c7015e0b7b306a3fba2ae8d0608e"),
			decodeHexString(c, "7e8dc861242e508b0d77f37498ee8cec"),
		},
		expected: decodeHexString(c, "14c233eb1cd922174f6cb1b82481079b8ce6d8893c3c16e7ff75c2c05e246acf45fafce47165759fdf22e88a497f3a7ae9490d0ddb70ae2a84e366bcd02ea844bf4a6e47432025326a04fea07a6a0a63"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_2(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "68d5425a0e31b17d6a9c0a86f9531aa8"),
		nonce:           decodeHexString(c, "cc68d1be9927216b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "61443cd0eade23310f8f5baf711eec1e"),
			decodeHexString(c, "c5bf53fe4c02f92bf4407272a24d4b49"),
		},
		expected: decodeHexString(c, "d5262498e9fc05359bfabede33c4f6bbe694b660568f643763e7c1b3f5a4dbddace7cf8c79bb0fb39b3c042a266c999ef5ef993bd12d20992eef2125363dc4c9277e5fe12ce58a6b371f20bb565ebe39"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_3(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0667638a456f0e259ae466b6717d9fc7"),
		nonce:           decodeHexString(c, "a56f17dc6d536a0e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9f9bf58fbddc2a46225049b3073a04bd"),
			decodeHexString(c, "6c18eddc0893e73e70656851dfc7b83f"),
		},
		expected: decodeHexString(c, "04437fb577a897b5093794845b74b29079a9ad5de13736495860d57b3a677ee228013db9f8360cdae829411a2b4b6dacb6afb74808c2409b3732e7cbf94367b2cbf02bc2f7d8808a03edc5ec08de2d6b"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_4(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "501533f7849cf3a9087ad9ffdf331490"),
		nonce:           decodeHexString(c, "aadb2ace7e079e02"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a3800ef525b3b5b3559d11ab3ae63738"),
			decodeHexString(c, "c3699b14a20e1a24cf4b4778cf3f30ba"),
		},
		expected: decodeHexString(c, "6a18c13785be673be7f08ff46ad79c13f824bf23988fc028d03d739e09ac16dc8d91fb1b242b5c610e8abb2def1d8c22cde1b70e7f59c5392d544bc0600f890835ccb58db841bad89fa8e0236fe01be6"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_5(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "486cec72c53f9cf14493ebf4e5b94bad"),
		nonce:           decodeHexString(c, "07c1fbbd5669b51e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a543305abf590408c163420e4b82044d"),
			decodeHexString(c, "5fa086f52cd1cfa6e7c791025ae3c8f3"),
		},
		expected: decodeHexString(c, "3849b7dd20676d7c994a807a5a90eea088859387632f8a9753c2fc1ce1dfa9f4f1c088898b731a29c54d571f034b96e37d8f65bae67c117213dc943cba3405d84290055b2f2d6f67d0ad60097a5c2556"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_6(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "59864fc6051992871c3cbff05df5fb78"),
		nonce:           decodeHexString(c, "adb94619e96fcaa5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cf3c0c8aca346a6726ade353d3c27ec0"),
			decodeHexString(c, "c9e780c2d9af4f14c1189ea1ddf32f6f"),
		},
		expected: decodeHexString(c, "72c02fa3609040bd97a220ee02a0431d421e28fc62ab49436e28a9d6644177f06d005047a186d29962134fb677b2efced14140da676d7175b8d66c231de87e3d7bc98ad6221b27dd228a1ffd37d4c3fd"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_7(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a7320c2a974506a8f6668f7df465d5ab"),
		nonce:           decodeHexString(c, "92c5d91db0c0ecab"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "fb57906891f92d0a28ccaeb989c1a605"),
			decodeHexString(c, "d193e3199c9cf3c9a06aeebbcb916039"),
		},
		expected: decodeHexString(c, "f137664231ea31fb33387e0d85d414e1162944ad7655e3892bad7e1392270defcd9326a37dbd49a2212f4efd6d8209b190ed3323cddbcdd32700b688ba785eca0b397e699ab9b38484ec27899668517e"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_8(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "aa832d6d61b476d84b305c62d70295a1"),
		nonce:           decodeHexString(c, "43fca3d2bd71625c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "03a0cd32aa84d6c0e27f534072aaaba0"),
			decodeHexString(c, "29bddfbd93bfdcfa360f2b265ca4cd33"),
		},
		expected: decodeHexString(c, "08f0a32e483f905f1d7c0e4a5379f801fc09eea908aa343cbf65092ca038a2a18fdc2e28a251af4b176904a6f6681fe90c60c7efdb9bfb2f07a18f4a8fe1d29b11e50c61e3e77cb63897f72768b70a1e"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_9(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b16199af13f67d2e1d7116d5439cbc24"),
		nonce:           decodeHexString(c, "e457f39562bf2879"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0ad042679b50df22db3524f305844eee"),
			decodeHexString(c, "db8a6bfcb4bbbcc237c2910cabf857ff"),
		},
		expected: decodeHexString(c, "081f6bb91a12784e505b6b70bbedb94d31dd1e6a536dd438507af07078fbd52a7ebc7cbb234b1d36d97fbb232c19a029b834a3bd744052a9b0684b3f54550464985a03d7b1a869cff4c4214a4eddf69c"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_10(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1a87ce827097fb2cf7f647e9d4f7e1b9"),
		nonce:           decodeHexString(c, "6653fddc19852c6c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1516c1e51382a92e4c50f79e8d15e00b"),
			decodeHexString(c, "484858b3063cfcaa96eb0a35bcd0aa5f"),
		},
		expected: decodeHexString(c, "33976057f1cee34c47b99b34f4f0c603acbd55afeb1a2af4057424084305f40ae3e66edff18a0b9c78732f0a4e75c6316145a2f6432217ed89d5c758a64d7c94c21b0ab4daf293b4bdc1c657c2a21ef7"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_11(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "816de0fa49585cc03b3dd872dd4b5e9a"),
		nonce:           decodeHexString(c, "2ec77b957f041fbd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "278b7035cbe66cbb62f6f889169b90bf"),
			decodeHexString(c, "3179734240b94ddb4ea9408c3b881634"),
		},
		expected: decodeHexString(c, "47f4293beedfee7646296823898803f64e75c1903d4adad302f52828f78f377a11197c203556a8bddcaf07052346f2f63821b4fefccd5586edb3e42c3e440d1c1d771c455b4a87387327835a90f58d29"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_12(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "dfa7b352a12272e4e73e695821684529"),
		nonce:           decodeHexString(c, "03064231e58dd00a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c5068492e672a25807d99feb92c7efff"),
			decodeHexString(c, "b17b041a785c9d5d7758954df5b8eaaa"),
		},
		expected: decodeHexString(c, "039f06a342d27607b94bf72a1cb7bfc06eaf4acd27a2822105544fd4fc5611c62b93cca5f7e43de59fb1890dd7b90ec115ee6a003a316a2e320d7d67c4a2ce7767561ad0affaa5c7e43493bb96c14145"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_13(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "973b3fd4d03b1b31977850f55e0fa2bf"),
		nonce:           decodeHexString(c, "49c927702f726b90"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0a7985ff1ad019aeb2c4177399bd8ca0"),
			decodeHexString(c, "05d5f836c929ab7840b01e97d3637aa3"),
		},
		expected: decodeHexString(c, "02467667e66aef03a95114d3c97880f0d64ee98600e2332e60ecd58dd9e06844971bca4bfe65fc06e91103cf802f3a6fe6499a19696797896db585a32c1bdb5e1ade83914e6799ea41245b3162723031"),
	})
}

func (s *drbgSuite) TestHMACGenerate9_SHA1_14(c *C) {
	s.testHMACGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a6f43539adfab40674ecc38a4a3cb7f7"),
		nonce:           decodeHexString(c, "2563816402e9a386"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4eb5c1192fa86b355237b5a8bd43ebf9"),
			decodeHexString(c, "7323d1a6f983b7d16df6b0aa9d14adb4"),
		},
		expected: decodeHexString(c, "cd41a0d7371b2eeb790fa8335660385c418ba84507ba94d1d1015b3353cdcad556993c19388461fd2cce38cc9fbc00e707b18dea9d712ac0616b443b23aee8131c295a1a741ffde36b2032bdb8ae2f6f"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate11_SHA1_0(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "395781cc8e4f9edb23827e941890bf96"),
		nonce:           decodeHexString(c, "1130d2546d7d7f90"),
		personalization: decodeHexString(c, "9b44ac5e40c0588cc281d3eacd48db0a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f5cbce8c4aefed405abbc2c230082972"),
			decodeHexString(c, "ac6eb276b884027fcf1ff10c7c1606a3"),
		},
		expected: decodeHexString(c, "be1bf64388be36f069eb5f88eb587a7a91ae6d7b2c74dfa777ab7589196110577f12ebc73c2050528befb468db93bdb4c1020068c81162154550720b8d12918ab7a37e3b371349a2e3455704070d1bf4"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_1(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "51251ac73a86df514e0c971c3e3a1fc4"),
		nonce:           decodeHexString(c, "66d581f9d0306725"),
		personalization: decodeHexString(c, "b9c4a558d71bfa722481e0c0d01c7b5a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4a38cc49b0b49c70bd7c6dc847dc536d"),
			decodeHexString(c, "4bd1dbe9d8f783eeda0bcc2de942cef8"),
		},
		expected: decodeHexString(c, "db53e4ef8c0f07fce0427e8b2a3c3189cf8de8fa9a614dd07773474b512b390df3821f7ca9eb855047cd832e35e7043560aa9d208093725f85cda4f0f011924d2fb7ba8909a4e9d1e5cc270626f7c90c"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_2(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6d4b93974bc805ff68eb614d360a04c9"),
		nonce:           decodeHexString(c, "8891f9e7a0e66398"),
		personalization: decodeHexString(c, "07c90bb88817427849cffa336a007673"),
		additionalInput: [2][]byte{
			decodeHexString(c, "97d40b4dfc4d3c2dae4745bf806c5a2a"),
			decodeHexString(c, "b6325ae18ab95627c1ca62a7bc9bd201"),
		},
		expected: decodeHexString(c, "27dac72aa66bbc55cedd8e60ef0abb091dbc8994f3dac856d0a53ed9cd37587227003d76a288a4c18e5c617b0310a3865a9bfa28b91ded5f513a833001653cda0e7e2286327bf7908f5b69370a94c021"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_3(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "09ed2b11320062b64f5efd5a32adcda5"),
		nonce:           decodeHexString(c, "a1096303faa72334"),
		personalization: decodeHexString(c, "e7fd5c4f07b9a2140aa0dc38e40433fc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8530e77b80d4fe108339503477e9db05"),
			decodeHexString(c, "1c050b08664b731c2af0a94d1885fef7"),
		},
		expected: decodeHexString(c, "de13d0810b89ad9335e99e693c5b60f7745d24755cd6686e1e8dbfe43c2fd1c92cc22afe5dd0009c07a4f2c75b669222069f2b380f24b75e3f67ede5b145956d345a00e623ca89b5148ecff5b32ac54b"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_4(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7c6ffa1a98dc40895449a2e1b52aee99"),
		nonce:           decodeHexString(c, "502fcd0d65fbc300"),
		personalization: decodeHexString(c, "da37ded34f1d122cd5f84d96e94a5743"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9bf0c256f0a6da19ceffe7fcc19bc483"),
			decodeHexString(c, "766f33235868a866a8715766ce18c2b7"),
		},
		expected: decodeHexString(c, "400b225604d672aa52bb10de6b5891418ce04f03552179a5eb9c3b715acee26d7291f3884762fc4c7e286f8fe9c88a3934e97b4d63da432b4b64dc1ed3c7990f423421b86139848a7f41b2a074de732a"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_5(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "37cfad7c080aacb7b8b128b604875c8e"),
		nonce:           decodeHexString(c, "7258f12b264dc52c"),
		personalization: decodeHexString(c, "7f4860c5c2e8cf85fd222fd94f3f62a3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "657a660856ba3fb4a4c9bc4d4ebde43b"),
			decodeHexString(c, "ebbb0370723861eb7a30ca54f66391d6"),
		},
		expected: decodeHexString(c, "39427b5d8bf7d7edb76639f44c4f7891a173d5b3733cfb18055108a7dd1616abf2e1fcaed08e905073c5561f6f1a652ab073d51c48733ab1897b82231e49068f827a239d5420c0db93603fe5b25b47bd"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_6(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7cb29063e19682699f43e0692706ee6f"),
		nonce:           decodeHexString(c, "5eed287eaba2a9ed"),
		personalization: decodeHexString(c, "c7bf51ea250d877be79ee40a2b307da0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "72bb22bd9c69291a2f4c808ae932990a"),
			decodeHexString(c, "99927fa92f19b363eace031005fd5ac1"),
		},
		expected: decodeHexString(c, "c356ad9937bf66cf1f89964ebb7ee56ce2b6b2485d01762f5cafd10dbcee20470991d5b71797459e74e39a7429f8e7662ae9428f6ff0c1569a478a2f8b792e3da4ae5efcfd39b5ae5c3036aa6bf33751"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_7(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1429a31cca0e5208f7f5f137970c77ef"),
		nonce:           decodeHexString(c, "58b2e384bb27eb26"),
		personalization: decodeHexString(c, "102c8946a835168f063cfabbcd9cbdbb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "955c8883d259660f51eea217c7a5644f"),
			decodeHexString(c, "699dd0c00f8115de647a0cd9622cf8f2"),
		},
		expected: decodeHexString(c, "9582eaab608ec13f000c8446e9beb4ee8afd740b5e1c84760ee66f03867f92545ec3cd4e363e3b9e7775790f9d4c827e6095a1569d55ce744e654da3c4257dd518bd5b362fcd119827a10ee893f92530"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_8(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "851e7b2cfee37e3aab673d4783fbd34d"),
		nonce:           decodeHexString(c, "b68ec7489b72f146"),
		personalization: decodeHexString(c, "a508efaa12a0852bc2ee6ff247445fdc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c014eea6b2a6f6cb3c95a5a3d750909f"),
			decodeHexString(c, "fa1f383fa97e4fbc7149f41cbb8b322e"),
		},
		expected: decodeHexString(c, "3bd8d7f5eeacb31423bcd15165783b065eb5ed222cd2b949836d08cf3315b31bdfbf88044d55a2bd201e6b55c3518c16bf5f50c31fd4f5d2292927816dc40cb07796508c41142d9d13ebe924154f0b23"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_9(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "493f87823d37b2de87999a6f8d81e624"),
		nonce:           decodeHexString(c, "bfb6fcee09aa1056"),
		personalization: decodeHexString(c, "70f7bd3167c5e5146050ee5d2cc2037e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "07ca42e34252d6ada280eb2e97d7fd93"),
			decodeHexString(c, "1df64e42fe23b9c04721757425bb4670"),
		},
		expected: decodeHexString(c, "f62e9c9486d469181951fca12454ad31a691fc8d0efb8857787be2cfa619dd161fffa204b5a56638c6751a32f56fe874f8e97ce268daff078fbafb3b5aa324f117d8f4866a91ff25a0729d4d98a7838e"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_10(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d8f78f44dab7ad3ba201244355622a4b"),
		nonce:           decodeHexString(c, "088cc74e5a96cc2b"),
		personalization: decodeHexString(c, "8589f76f13989e12871aebe6e781b377"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4de39d14e5c2155c0f5edd635819049c"),
			decodeHexString(c, "8668158ff1d7d950435a42cf93216a8d"),
		},
		expected: decodeHexString(c, "46f450014b594168eac0a023252525d8b3d04275b5b8c32eb764a094a339aeda594993a96803bde46161ab79c72278b01b63b687de2ef15b1cb7030caf5255e0a3635b50e3e966649e80fc6bcda7a3e4"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_11(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "86922b8bb0b3a05c39585114f99b0ac4"),
		nonce:           decodeHexString(c, "0d9a57a72bf85bb6"),
		personalization: decodeHexString(c, "75d62935b7ea694429fb34a5cc493889"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8e387a9195b09a62fc5274478594d989"),
			decodeHexString(c, "32b7b72e48d31db05f063fe70753fa2e"),
		},
		expected: decodeHexString(c, "4bc46578da450e26f0125500f9798ad50509820e8e534ea61089062c3c8f6026048ffda5677546549ee218f86d2a4bc0ea0ceacf21e0f090144f412c36f70acbe785f38f5a80078dbca1410a0a180c50"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_12(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5fdd8bbe36190c6b0dbc1299ac97ebdf"),
		nonce:           decodeHexString(c, "b81e2cc176e4dc49"),
		personalization: decodeHexString(c, "f629c8f6f55820ba33deefae6c155ccb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "87a216dc0dc9e4e976272d045e2a0150"),
			decodeHexString(c, "6115f3da6224d53b35bd0ce21974cf75"),
		},
		expected: decodeHexString(c, "7634ffdc8fe0b0e474506fc16c7c04e0dbaa72557082a40b2a13b2cd371a2d288ab09de3a9db5dac4b3a86d854db4811d1e9403bd5ee17ad64d4327964ac4eddbb3ccd3ac98e46f0aeef618da11cac87"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_13(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a618e67dd74626b8009054f325839902"),
		nonce:           decodeHexString(c, "fed41d27a6e16b0c"),
		personalization: decodeHexString(c, "ca0ae9a874b49faf09cdc1a061e76105"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8dbf94e1a5537658cdb89fe0fc64738a"),
			decodeHexString(c, "24e28c7c07398a04a356bb2c3b51ec34"),
		},
		expected: decodeHexString(c, "d198c5c3f2698cc86204f0fe160b1a125275f0af472c3161c79a523dd86f585baf2acbed3be454780697a2eac6370b173ade6363735541dbb5e9e318504668f2bc7c09f467988cad5fbc88ab657f963d"),
	})
}

func (s *drbgSuite) TestHMACGenerate11_SHA1_14(c *C) {
	s.testHMACGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "cb4556568f9f296ba5eab8ec24144a6b"),
		nonce:           decodeHexString(c, "f906b9309da2dca3"),
		personalization: decodeHexString(c, "dce3e4ba41a0827085a6956f66e389e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d56ade0d74ea34577eb12a899d18d382"),
			decodeHexString(c, "ea83bdba8490ffd136def5f7d9240c59"),
		},
		expected: decodeHexString(c, "cd3d8174d8af97387ff02707d2757ce685ffb5d8dd91d95b8af4a3a757f9321b0e908096cd1321de0599640b7d81f43606b12e029ae158ed568ce1db429be75285c655e15f88da859f09b4cd843a0b61"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate13_SHA1_0(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1d4ff3bddee2a714e2a360cdeb64bb81"),
		nonce:           decodeHexString(c, "70eb607f343c614c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "85b2444cef46740218775311718b3bc4"),
			decodeHexString(c, "03af762e2412050770648c20535a413e"),
		},
		expected: decodeHexString(c, "7061cebe3a4628b9ed38b87d5e693c7e7edf3e275a47f302f09dc8e1f04431fe44a386066eef4bce5b21caefd28f572f8cceeefd288514e7691f6507ab2641984763b08a24b4635f58682f4490d8acc6"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_1(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d732557a454b388415b9a9bcc97ea588"),
		nonce:           decodeHexString(c, "241255a5fd2c4e19"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "03d8f3bd8d1969b1ff66d2d648f03cfc"),
			decodeHexString(c, "b758cef73f14363647aaadce56c13cbe"),
		},
		expected: decodeHexString(c, "0e99118cdcf7b2ac91f4f2fe09bf9dc067b3a3c1d7353afd903d7918930b4bbc45101bb9852384388b86c14032e26b9bb5831e303664836c6301119748faed7b6cd55a7f88da95ac65d385d956de4301"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_2(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f23f9cec6dc5a4460ce9c8ac25726bfe"),
		nonce:           decodeHexString(c, "160659bfe9c598b3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a24e4bfb8a46c466bccdc832c98587d3"),
			decodeHexString(c, "0fdd6412f7131f0f1e5d1d352d788876"),
		},
		expected: decodeHexString(c, "ebe388231f9b7808269810919c6cbabda7daebecf25d23ce931b68a51612a489ec5549783cbc321b302edfd2fc5788f2c334ed6281929bc8206d4f2717b427a3cb2b409c19c9ce3884f6d50086bba7a9"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_3(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "94188299f1039810c304cf0a549d1e70"),
		nonce:           decodeHexString(c, "c1da4789a61ea63d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "17a3d30cf18a4c0e8f6211fc27e056b5"),
			decodeHexString(c, "3f06d3496243b3bc8c776fbcd6285d5e"),
		},
		expected: decodeHexString(c, "f01f922b83266f8b1c96121df16c39d80b55e9e7d5308fb714a6d600b26ebec69c642ba019ec163603b0010e0ee1ab1bb4a30085dde7917c7f07ffb5a844faa6de7939e58f844becb4dc4716e32eeb3f"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_4(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "89d9ecdd493901d7700b70f4fba5c817"),
		nonce:           decodeHexString(c, "93116eb0f3df7247"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7dd119c797812c5085d7092f0167b6d7"),
			decodeHexString(c, "29d0ea4b1b9301e192586282bbec3f03"),
		},
		expected: decodeHexString(c, "94c588f3d4aa3f2453f0a9e63a7edf0a94ce46d12127e1e27dc166eedf21150b4cfbaf80407d2ab935374a3acb6e5f75de2e04bddce90ff225b2fcd373f4f6b4d076bdd552eaf3a96fab871fb526a4c4"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_5(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d020eb4b0478746c5804c68227b60814"),
		nonce:           decodeHexString(c, "844dd4f7ac813181"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a8d4605e66ce047b44f0a76d919ab5bf"),
			decodeHexString(c, "06d226f23ac745ab70be56e74bf16b89"),
		},
		expected: decodeHexString(c, "4ccea9f3451410865736c8f39de05962c0885184b4c71440a1e100d30eba1a925a6ddd1704c386bccb2f0aa1f77e5c0b2e9699a3b53bce23adb3021336a2072fce0e474a10f2cb830bf4dc233296fff0"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_6(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "87311cd6d41577311776791af27dc2ba"),
		nonce:           decodeHexString(c, "eccaad0013620831"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cdf6407aad1625c62b065aed10ebcc29"),
			decodeHexString(c, "a5141fb50a2e115a2a2686fdfc5b25ed"),
		},
		expected: decodeHexString(c, "e601d837d8cf49023bcacc62f634f21bcb55550c9b8d55f15393c35204f4595ac2e3d260f20e134502bcf302ad47e4d8403688331eb6c521e899fd74692ee898dc8cbf69fa51630908198e09acff2f0d"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_7(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "04fa2f6a61d05de96dad12574b087146"),
		nonce:           decodeHexString(c, "de7f002889d01f48"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d6597fc82de2ecd3380caca446d7e3d2"),
			decodeHexString(c, "47e9a32664362d236869a12476572b43"),
		},
		expected: decodeHexString(c, "ff4a17a93948653b824349d62497b8ad72f67c5739a83e2ec0172e3d45fa5abad453107fc6b9c1ba7e4bd4e1ef463515bbccc713401df29b59163b452a6467d0a5fc74cd36b7e49a74d1544705cf4b0d"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_8(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "88ff89c822ad204be55f50929dabeefd"),
		nonce:           decodeHexString(c, "c571e9d7a8a8137e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cb80c92547056ffb54dab764078b0929"),
			decodeHexString(c, "b41b013e9df8aa75d473509f12767bd6"),
		},
		expected: decodeHexString(c, "c0164827454fd6a46e2877365cb5b192f1a3b2620d0ac4651921f826c99b7ef1e4559bf7210fdd23c278f13f8796de7c2991336bc1beb66278b93a76927a283eef4096cfb326493f7bee4d61f2906e8c"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_9(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7082d4d2d49d5efe4c9e8fc04d3bdb42"),
		nonce:           decodeHexString(c, "2a091022cfe39827"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1893242827d291f3ea31cee285881aea"),
			decodeHexString(c, "cea09fb6617b651665969773bc5ae2f7"),
		},
		expected: decodeHexString(c, "6a7e1e8dca50262bb55902cbaac9ad59d4b48da16cc19b21a2263d997b907dbfc40982037da336ca28cf0a688b954c49bfd7671562a9e96a2aa38d8bf5a0cdb36fdc2fac5a665fc43ae1ce6beedef783"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_10(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "eacbfb8680be1198807a5bf035b477d8"),
		nonce:           decodeHexString(c, "d8618a289b4c1787"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a262ae1dc1dbcc02911966c1566a3ceb"),
			decodeHexString(c, "ed8af1b6720b9ae9b986ce20ea8de984"),
		},
		expected: decodeHexString(c, "0c89041374d951a0f1dc8b9250e746077e385f667cfee92beba7f5e4bb212d046180359738e1a22c095f89cc978e33d9ffcd5ff496c2a45123c47a092ff4c8528d693a78e0c7bf551bc0bb7bb7b686ef"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_11(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "8013306edc8c1d6ce26f6ce87956549c"),
		nonce:           decodeHexString(c, "dc4425101b785a46"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b717ce62a16e4d6d7c90c1229b9ba46e"),
			decodeHexString(c, "fca6f456fe7ebe27dcebabde41578f93"),
		},
		expected: decodeHexString(c, "6635f4cf9b477e962efd6d2fcfc89ca0f99c964fdc179b3df576afdf4699fdbd67d420fe3729f31d91da4c75c42ae95ef0acd64be3e62e9efd3587b546d7c6af9a766698d899abb0afc2bd1526856214"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_12(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f8e7e522ad80fcd885d96ffbdedd340e"),
		nonce:           decodeHexString(c, "b42c724936e6a73c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8d935a10ac6cb721195989cc1c2275f3"),
			decodeHexString(c, "49c840a81aebd952abd28074f0391bc3"),
		},
		expected: decodeHexString(c, "5dc34245a9dfe5352e8558c6b5ee8981d944c099cdd7a390287679e55d77a0855ea3977a63471c25a085b84663bcbffc646f723185d22a59cc19ae1f5a0eebcb57244bad8086af5e00c2f64b2d0f9b12"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_13(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "c086baf5e2e28621e14bdcf66455f4f7"),
		nonce:           decodeHexString(c, "73b45761be4c62d5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f99b75aabfee784ad4ead7ba30fc3339"),
			decodeHexString(c, "7f61cc8a39a51e8c13df50933875a117"),
		},
		expected: decodeHexString(c, "402ccd84d20d1d5feeaa9f0c0a216751d1d1633a986537e557bdfbd0125443c22c9a5acda5373e8c14d2c918c591259fb1bf35145bcb55135fe8ffb3fb21d5bbfa8dc4434fce3b3a676aa57a5f949f0c"),
	})
}

func (s *drbgSuite) TestHMACGenerate13_SHA1_14(c *C) {
	s.testHMACGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f4462d503ad505e0f39fc5faf4243d03"),
		nonce:           decodeHexString(c, "b0a135635aa32174"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b180d77e0ef217268d2d4dc9d4a9532f"),
			decodeHexString(c, "b192957f3e98f7595768d00834eee1d9"),
		},
		expected: decodeHexString(c, "7d4791ccae7980ad19e5d8eb8932ea8ea1756710349ab8b771558cfe471a278dcc263b737486179a4ffad12d5311d23912c3a46f07152808d288be2dfd2b315fc4f6df6418029be52daed643dd3c6110"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate15_SHA1_0(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ecdf8b8636add7acec544cd3ed61449d"),
		nonce:           decodeHexString(c, "fd08166fb3edaa55"),
		personalization: decodeHexString(c, "c6cfae798639034096d373fb05e7ea66"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3ced5b730332278cdffe927b09fa8386"),
			decodeHexString(c, "5f957a87c8945af77daccf356cf1183f"),
		},
		expected: decodeHexString(c, "2ff3e68a48fdb0a5384287a0cc4e6efb6568309ddd9411838c5fb61cbf916cc881b1cf0461fd7631d313225fa42c70d529b59319767cb50f794f4c790da2e188fc252c16ee0ff72fd35d2392cda0163a"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_1(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f08fc58f52ea05607dac4fab29c03faa"),
		nonce:           decodeHexString(c, "f81b8500f163bc87"),
		personalization: decodeHexString(c, "2019786852dde5df70af52ef4ae45adb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ff0b7bf79fe5215f8cd77b53425e8a73"),
			decodeHexString(c, "ae98464126b1d6fcb005b9c302653a00"),
		},
		expected: decodeHexString(c, "3ad0f37b5bb09fae80e7aaca91b92a37c04a177c5ff35593812567193c7615f65db70bf48d4dcb067c80532df8b91db8ceb7f956acc69c499ddfed76ca28e0612936975a3db82877f531a496740b4463"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_2(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "55a0511c439c7d2bf57f24e72631bac0"),
		nonce:           decodeHexString(c, "a1902df77b611e46"),
		personalization: decodeHexString(c, "b5ff703e5ee561ade96d6ec9cb852399"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2c46d91c9174927f3910cc2a6bf7b136"),
			decodeHexString(c, "c342c914786b86985d06f97eca1b09eb"),
		},
		expected: decodeHexString(c, "995acb5a585073cac82d5397c2dc6f32864a4a55284f57acd0aa008fcdfc533859a34fdca12b5eadf0ebb88692045521a4b003be7d382e9c2df8ef5cd6f7b86c75f6bda74c99c07d2bbf8255eb018953"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_3(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f0e444a5c5bccd92b7a4447d0b7a8f33"),
		nonce:           decodeHexString(c, "6ad11519797af228"),
		personalization: decodeHexString(c, "31ec61272a7de660fbe54b3d813ab02a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "84f648d11fdd386dbb9f356d5ff6396d"),
			decodeHexString(c, "7bac281eecd8ea9fc440520fcfac3d6c"),
		},
		expected: decodeHexString(c, "21f5863c744843eae2582e2496e8187d2a1283553f4ec2af652af79fcdd46eeb559b82e0b8aa8e1ca482d20d7875473a90417d1a1331f7ec2ae61c7e51369c48833bfc3c42c48acc84c92bb49fcd9c6f"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_4(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "c9bcfae1f6183ef17bd28430ddf76f7b"),
		nonce:           decodeHexString(c, "c4c17b0222afce01"),
		personalization: decodeHexString(c, "623a8f3be2ab7af2a27a1731e6d78c29"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b9ca73212f96d6530e276f773cd9ddc4"),
			decodeHexString(c, "1fa9dbcf819c2000556786452999d3f0"),
		},
		expected: decodeHexString(c, "ef2483673e7fa559e948f68c7ee44010f915d2ab416f62caba7ea7032091ad5ac52164039ad95517202e3451007c39f73b457cbac320cc1f23cdd247301f02163366de26b32932606d346057fe20a917"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_5(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "581594493c98a498afd58188a8dccce7"),
		nonce:           decodeHexString(c, "ff37dbee91e5833a"),
		personalization: decodeHexString(c, "105f07329f1be889302ce0ab97e2359f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fe21bb1d9100ea6e5c7f86019ce933a6"),
			decodeHexString(c, "a9d96cbd83d7d2252da3db8b58747396"),
		},
		expected: decodeHexString(c, "008c173739751c8a06e4ddd0dafd5b39feb7942e24a0331b4dbfe598dff251636f49d92017e67badefc308a16f319803a1e4567cb55f92f6bb28d3b7a50f289f6c2a46b548821b6891fab108a3ca3109"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_6(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "50173e83a2a00f28ab36a062e11279c6"),
		nonce:           decodeHexString(c, "37a896dc2ce1ea66"),
		personalization: decodeHexString(c, "0cef11cf404712fc16d3ceef337082cd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6b385190658328bdc12bde2ca1a58669"),
			decodeHexString(c, "67e68c79b41343075aabc236ad81d13e"),
		},
		expected: decodeHexString(c, "98d4ac286364d8b0065d85884a92abbec558accd791c1508899f99da1d810833e1de6db45a638996fb0f4b74628fefd7544c5d032fcd459509092543c4986f4b47ee9c3aba4ccca7d146d9407c13301b"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_7(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "44b537973561a17adf0704ccfd896b8b"),
		nonce:           decodeHexString(c, "12118c2a2a398be3"),
		personalization: decodeHexString(c, "1964328cc10a307a3a841a916ef8a14b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "814873646eaf96fb3fb8b41fda381c79"),
			decodeHexString(c, "5b81c9a952f49b753890889c9c41917f"),
		},
		expected: decodeHexString(c, "58ddf616ac8d74e9e476e2232d2a4f1d20d3c1fe805fc9ddfc86b69189b505797e9c376221e9f4754fd18e45c27a291747513b6867565048d47ac9180ee4aa0695a2309bde567578d4c28cc2fd2a1db8"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_8(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f43834731514c5f2c376092325d2775a"),
		nonce:           decodeHexString(c, "dec7fa004bf80241"),
		personalization: decodeHexString(c, "79c27089f8b37eea234ae0520a9132bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b6ee749feba913358c399f1f8892f75"),
			decodeHexString(c, "03c9f312da912ac95336867614978cb1"),
		},
		expected: decodeHexString(c, "4d02077441e5d123e279ea243aa8b38dea676280d30400dac7eaaebd0affd2b7380046e8db3b0ce68f5f2ab4f90cf3b476039e4063911e3e2e7046ee64175d919d729edacffe30cae6237948546ae4a8"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_9(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "024254d5e87006bf6950699b2d4890a8"),
		nonce:           decodeHexString(c, "06bd45e54f2b997f"),
		personalization: decodeHexString(c, "05d97e092abf630c1caee2efd85cf0c5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d16a5458f1adaf690b45c828904c2b6a"),
			decodeHexString(c, "ce4976405ef50a48b89b6f43985220f0"),
		},
		expected: decodeHexString(c, "4eacd1c4c49b44e6116e027fe47eebb840f1602782449b57b111ed937c763f7a782ae1350140614df4ac6c53e9aca11897220d4c297df616c4825dc58f157866d0caf6e56886e5707f69d0e9000f1091"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_10(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "8c5454259ca8aef362e8efa35c9f3b11"),
		nonce:           decodeHexString(c, "728a4ee0d2128440"),
		personalization: decodeHexString(c, "2667a9d636da6351e40948668673f4c1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "203012453323970b3b91444d6c7102ca"),
			decodeHexString(c, "4efadb9ae54fbba80cf2efb590d810ab"),
		},
		expected: decodeHexString(c, "6f2df271c1c1949e9fe6b7ecab9efe02ee816fa3b09e93bdbf7ff4a8a19b98f4bf91c5aa483ccadd69347c5c582ca7e24b533d0bc40df5b831b9ef0b211317c6574f7943e713ba262649e7561e6c6386"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_11(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "4010ede8d2e7d59cf74716df74616054"),
		nonce:           decodeHexString(c, "ac406a56911da77e"),
		personalization: decodeHexString(c, "0af27561cce5f5f1550b7075a6342ead"),
		additionalInput: [2][]byte{
			decodeHexString(c, "145981d2453db5b43ab3624865099307"),
			decodeHexString(c, "f9fb41d07ef241b1aaad338698413116"),
		},
		expected: decodeHexString(c, "22689fc95dc99c3204c9c78470c6db6817ce7e0f868ba59f787fa6d599d592e1b171bea843802931902c537ecd2df73c3dfd0e73435d702284a8da1e82d15c79c06d421c99bc2e309f237249dad8065a"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_12(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0bfd37c2065b641164f4336580653ab1"),
		nonce:           decodeHexString(c, "9450667d44ecf118"),
		personalization: decodeHexString(c, "94ed9615c421287d3ea4df7fa35b53f7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d7a3b4ade238820a17ac17dd0605b85c"),
			decodeHexString(c, "92b78f69065b1378c6995d5108361c21"),
		},
		expected: decodeHexString(c, "e78e815006a80ad1ff8b30fa0da3fba6a44c1dacf37ccec85f930379882589a327b041bb794238356b791492f2ccf13c3d266984dcfd49bb1957bf3fd247aae6815094115ad195056289f1e6d1566bf9"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_13(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "086a5ed9fb52ec937c8d811a6d628ed6"),
		nonce:           decodeHexString(c, "da42ea961c3122f4"),
		personalization: decodeHexString(c, "24068772d8c4e0448dd4709cd65125dc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5da50f9d3b7bd02faf4a6dfc909f36ab"),
			decodeHexString(c, "7fb0214a9b6646c07283091d41cbd730"),
		},
		expected: decodeHexString(c, "47b6bcf1cc3e206096cff1d4def748aaa803c0910602dba2bdd19afaf1d2a9c49e9e464fb36864d67802caaa470685bcecc229bb0402b99122005cdf28acdab4bdef9e1d23f97d6da6c88ddecf037c70"),
	})
}

func (s *drbgSuite) TestHMACGenerate15_SHA1_14(c *C) {
	s.testHMACGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "3f87d9e1951d8d9df7733a6cf1b3471a"),
		nonce:           decodeHexString(c, "5dfe594ad6c10325"),
		personalization: decodeHexString(c, "673abaf005b0ca394f8de8d040aa4728"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c9a1481cd25c537ba57750d594afd25f"),
			decodeHexString(c, "51e29804f9d079f3074ec398320b2a70"),
		},
		expected: decodeHexString(c, "cb3cd4510de88f8081d8989c2679f76387b7d2cda286b75d659a3ab7c3b2ac77ea00366e7531c1c9f4f8e60c845c5d2a5e05fc999621d011deac3f28cb447a37c2ee815f7f5be3a571d153475d6497a3"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate17_SHA224_0(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "c5c89c26ac4ca8b1106ba90a8ef4d6d687dfd88743caa5fb"),
		nonce:           decodeHexString(c, "afa4745d9c1f8371120b10c8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d3483ae5f9ed97efd3f852e4a6f20f25c947a03f39a4b75c"),
			decodeHexString(c, "2cd523c5958cdf403caa61abe5c4739cdb9d40152f0e769a"),
		},
		expected: decodeHexString(c, "1fef4e6abc2778d1c3e3ce00fdb5eae1ebebdd5cff0a7087644c8565d1e8b876b2c05264ca81498468851fc7b9e5a2163a06f377d2ed754c095adc59dc015a77edd69e4eecbe48d9dc127eedfff5cc73ae38127ae3a518fe7fa5abd1a9c53eeaf144420873341e2efa3d81493c69b04e"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_1(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "6860e44bf582db9818ffbe4c699d4218965c29f463d7a02f"),
		nonce:           decodeHexString(c, "e1f36c8442b0a5d103def7a2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e9f598357109e2a532dc980388b8a5991256166d67c3bc01"),
			decodeHexString(c, "58ebbf7402be041724701e5c0132abe604c11a62a9de1d2f"),
		},
		expected: decodeHexString(c, "52fad34b27113c146595a6740f505bc2d3edf6618975cb9c4a5155788eaf08b96d232610d9b4ee06264fd92f319df5a52b8f9e31b016a6c21d27d31d9d42bbb7588a7142f26ece3ddf211c8cf4530947adee302aa71c0d7fe9060c1b25f1c1f2e053598a7fb72c4db55fb1b02352d60a"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_2(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "27b9f78ae07821f2b5625c8fc3a03ceec4fc8062be860c2d"),
		nonce:           decodeHexString(c, "b20403dd88a8751dcad56158"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1b6c848fce706abd73612dd3fd421c1c7ce9f4c2d0ecc670"),
			decodeHexString(c, "14a43645c1b6ae394f795af6ca2e9084e7e707f3f2cedd7a"),
		},
		expected: decodeHexString(c, "33c592017af545b3a9cf3419ce1c604e9c7c687ebf6418fbef47ec96e61f1951068eec9b60005d24574313f04ffc16c30872ec83e41e248e3d5c6951930d6a88b8931d5502d1142ce50676b3adf48453d1a008189658db8511d19a06ac97b4d5cfac19b54e8e6b899d501715f401ef85"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_3(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "8d7cf5c2e360ef755c1e9f5b7a44a1e29f09cee7ca44e159"),
		nonce:           decodeHexString(c, "25ffe9a47b2d55fd7750b356"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0e691c9a435939c615f0686eae88e090ba5c4b3f5e6e00c0"),
			decodeHexString(c, "1e3a452295617e5a9e6f78256d2781feeb3812753b4aad9a"),
		},
		expected: decodeHexString(c, "a307569d8adf3f7e6ee4567a5b2bd338badb9234e7b27c92429ffa75e4c56c0529fdc6c15df5d47c46e3d2eeadcf1b9e93a5dd6cde99a82f04b0d97f7a3bfd05c0e1d8370987222310ab18c980ce48b2679361c3d9011dd355a9b06337c054ee37913d5f4dd30d1fc942cd733a0fa5f8"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_4(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1a0d2c734918c539c1b306a464eb6b54f92e958e8636032a"),
		nonce:           decodeHexString(c, "ec23ba8ae817bec48384461f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b8ad9e613a891fd0db89571fddda77827382e406cd3cdf7e"),
			decodeHexString(c, "1e172a708aa4ffa3618ff0d7b1f9ba341f4811507851dfb4"),
		},
		expected: decodeHexString(c, "674df1f3095d6c87bc54dd9b2aaa2c786bd50e4ddc02493745d820dad8552131fb3e389e99b0709478b65d4268f2a3b468a8447dc572a6ee024be6be9be9d428c12cc92894d15dd1c959d6222dc9ec30478c7a0b57f5bd8bd53868b98d7674738b54cf74100ae215693babb6db3b3890"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_5(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "95a30a0ca779a4038ea920cccfa4cdd814ca17d560d53a75"),
		nonce:           decodeHexString(c, "cf170f4712994f9bcb2efb74"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1da6c8726bbfa3c8bee6dcff6f76f2d55d60527c4f0db26b"),
			decodeHexString(c, "595ebd903a596a1f12175080185bd94c2336eb8dd29a387d"),
		},
		expected: decodeHexString(c, "317c19cf4a45b8cf3f645da084ada54d1b1f81379152424fddad22a6dc9bd22841e0c4c5a36bfb7879eafbd1a939121905a938ae034c7fc01afb56607e35f895f46f13e91ce4e8e75b6a87a1e5544e18eb194fd6754b06885ac05e332a05ed436e889965e405e0f2069b04b40ea0f635"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_6(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "8af8930562510231a592a72587fa6ad7c234e13304696590"),
		nonce:           decodeHexString(c, "7642fbc785c0b86cba844f0f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9ee7b221064966582dc836437b82386f5204a302a4179079"),
			decodeHexString(c, "473d917f5b66f0f6e3fb4670ba08c2cbd2ea765b46b10838"),
		},
		expected: decodeHexString(c, "5c2fc9cc7148dbe40a692b3636778eb80188949d198bba3e8355386b78b54bfb963f5f2d9202988da20ccbf336a7c737a66c90149b9e8e306477151c4d912f7c61e872de0d0e47701cbe765864de536d599946b8bd65e4d89d4e61deb53de9974fbbe634501800feea100fea573e2e50"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_7(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2b9554ecf94c7d647a4e117f43326cab54466eba56a09a52"),
		nonce:           decodeHexString(c, "741b2445057c491935c067d2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0144be6978dba85aa645d793c1881dc2deb1bd210811ec9e"),
			decodeHexString(c, "1cd265f3812568274b643954c70923a76dfcc9f123360111"),
		},
		expected: decodeHexString(c, "f7459b0c23966dc1a53e0c6406c9e78ebe728e3484224cd88b6b2ea554522e75eb4a1c8a3fdc66561426464f50b8d0ff95b266677d91776b344a820eb4fd7d554678300558011a7cd85d22e92dc8ec2c2fa15c6330ba157c3e71728304447c1ad4d64f3da4fbf26d92e1e7c58a1b289c"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_8(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "335ede8603fcde78ea9869da2dbcab4a6e72f1b53439f308"),
		nonce:           decodeHexString(c, "5d06b856e627411a9ce1c297"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ededc73fe268935c10832c463549f8204a29cf0fe00a4d87"),
			decodeHexString(c, "ef1b8a80dd49d2c263999ddc0d5a1d9205c1b1c66239fd80"),
		},
		expected: decodeHexString(c, "05bfe97c398b1e33ee1c547c0edb5b654b7060b76604195440d06dd2f614a398c6c43f1803893c4c8888bedecdf998367cf992301a25f24c263f5d36bbfc6fe8b839cad293b3617c1d2c60a814bda0359e3f717fa80fc7324af8827d438c88642754b39b10d18cf5bf42f11177a0bc6b"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_9(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9b0275d861117553ecd3c4d7cfe762f88df22c4c4190dac8"),
		nonce:           decodeHexString(c, "e0be5872818e2dd765261d58"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cfc0b07082d514425b17ce3cb334ec62bc1b3be0be58ca4b"),
			decodeHexString(c, "d3c70ab5ff7a364a9e6dc75132ac67e0d373fa2df301afb5"),
		},
		expected: decodeHexString(c, "09fb41bcceb016e754795e1cce582f0cae91d7bb50245975eb75274819e1e4dcdfbc5e2f13fd26b9a9f9e945cd807ffec4e275681ea7bd33eae13efd8a01edbe02562e77b44b6312f416c3dd0be64f2bae0ba4b9bb36fc3a44841d21d8b3571c0ef644d88cf3cc3c851b256a15f4d716"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_10(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1981c3f9ca58fd10e8377a8d0eb3cf02102aab6f7a033af3"),
		nonce:           decodeHexString(c, "135533d9fd850e29ecb8dc9b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f9978ba41df22894ad5f3849c1bdf21f7bbc0128c782e79b"),
			decodeHexString(c, "b4d57de5e18d393273ee9f3ef9736599c6d639f437239219"),
		},
		expected: decodeHexString(c, "fee23db2fcc71624fb39f573e33a1490efc7230c27e9278188251634f9c045bcb26e79ece6a173491475ae44a957c4269570f5469234ca8b6873cc973c8d97178c58cec658a352bad0d4c6001cae5664258db59ad76eb6304d166267eafb46f4dd536a914fa6d1ac58317e7c557d4653"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_11(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "c10d4e521350f7cd1853576d03c4bece3e58c8c740859e4e"),
		nonce:           decodeHexString(c, "16979499ec1365fc073736a3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "78b245520153baacc66846e7a83a2a925f892d4c2ee63c0f"),
			decodeHexString(c, "c8ca7a33de5991d44d7ef7da2d3368cc2cdb93895c394d41"),
		},
		expected: decodeHexString(c, "f92c15f5833800b28dba2d134d4dcfc41abf72f5a700469551e8ccb83bdb0772d14d6b26ba6978169e3ddbe5f214d57930dfcad719bf10d306749246d2624bedd4a18d327b8ae6bee67cf0bfb5f649824bbd0440f042146b95a83e5845ced69a55ba055d5dfc7183c3bb28d61312d274"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_12(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7608b5617785995a1f7144ee5229e4f9c138e418bcc3b5e0"),
		nonce:           decodeHexString(c, "61a422e8cf875f58650e996d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "961c2d33039e60a2871e1f5b82097f6b1cb03836dba5f440"),
			decodeHexString(c, "b18cb52d3858ac5bf59f216a28c0ad49f3dc88c67b5870e0"),
		},
		expected: decodeHexString(c, "4b0313ae873ce5ebf08aec160416492e4c4c797a5017061ea42aefa0685ab19b74a7af11f019b9fb63072b797f7ea3354efd32c4abd1e866405a319ed2fa13fc81019d61326e70e503141b9c77b4879a45e9f36f101dbfff4359147282ef814888fee81640def25f551cee41d12609aa"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_13(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "fef7a43fea2ff1a0f624086985e535778d7a73dbc47bc23e"),
		nonce:           decodeHexString(c, "9da92edd5d2f273cdbbc0251"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "836731a57497a69e31f8db4f729774ad65f31d968dbc55a8"),
			decodeHexString(c, "bcca96d808ba98bb50e90afe58fc88e95dc14c3e90c56004"),
		},
		expected: decodeHexString(c, "4f2c64ecd146689064fbf4fcffce2a2ab3910e72ec4faec277f7b9e9ed510381312b01f21650e175ebe9c45c11e977276f13be015243a0cd16a191abbac6462ba96e4e4a1120b28083da933419e8c8f03099906eb1ee012ae291104c6530f51b5e32e6631cab8ef5aad68c0045255ba9"),
	})
}

func (s *drbgSuite) TestHMACGenerate17_SHA224_14(c *C) {
	s.testHMACGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "00197c70b2f0d3e98e4b387ec42a65c4106a1689ab5de611"),
		nonce:           decodeHexString(c, "01ee76f4b5e530e7efeaf964"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "03015311cddd0961ec7a74cb84d835c058a69b964f18a1c1"),
			decodeHexString(c, "5e0d99e0e7c57769a43ea771c467fb5e2df6d06dae035fd6"),
		},
		expected: decodeHexString(c, "72e8ca7666e440ac6a84ab6f7be7e00a536d77315b119b49e5544bf3ead564bd06740f09f6e20564542e0d597ac15a43b5fb5a0239a3362bc3a9efe1ce358ddd9d4f30b72e12ed9d78340c66b194beb4b12e973213931b9cfd0ccbdf540d2c36ce074e2beac7a4ddac59e06e4c7178d3"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate19_SHA224_0(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e4547261c9dda6bafe9fddf435a80ebc96354c7c2c8847c5"),
		nonce:           decodeHexString(c, "d26c6e73a967bfc4ebaf8613"),
		personalization: decodeHexString(c, "42849dc8eec611eaa49252067fa60d7d7267d711dc35b576"),
		additionalInput: [2][]byte{
			decodeHexString(c, "815f50fc233f157f96ad0627c355bce407b269dca91af661"),
			decodeHexString(c, "775a1c9da6f58d4eb95b27935ecc01dde31ff17ce2e4e65d"),
		},
		expected: decodeHexString(c, "25adb777523a80a6dbb6ac1fd08e02bfc4b4686cec5efe3ae9aa2d4469eae8c9c3693fdc8e0fc107720b7789ef7331e23fe3799412ec86857ffbba515a5af4d91013b2f17669421c822005b4747942790a11a24c4974f27d54de69727b0ed507b6a48a9d6c53f93e2f3d33df73dd643f"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_1(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "06d677001d9b3c97fda4d09778aee3de131b4123696b109f"),
		nonce:           decodeHexString(c, "81bb6b0d7fbcab3c5842bb83"),
		personalization: decodeHexString(c, "f99638d2d4365b662cd83ab4e6a7bbb624e6c72b7b38e81b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "20b7d56f6222bafeeeee59dbca1933d8086218891f3a9bfe"),
			decodeHexString(c, "9de4f2847fe239cb1a3df4b8ff64c25d7b0870f3c9ebe3a3"),
		},
		expected: decodeHexString(c, "e18ff19837ce21e68944659321311b8584dd515ed8a6a1f2b0ac06e69009c3d0cf0489af876201efad962cfd1ba54f540b94131d788d3fea797c4bc079593bc7932baa70abb145a355741a98c584f0fa3298b8310b01e1a6debf5359d7d02b1a6c663100acb56975450bec20e91b736b"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_2(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "abd38c0465cdfe018f36ffbb7a0ee51d67675ab4f0f1d1e9"),
		nonce:           decodeHexString(c, "3418bb4cdf6499a371af4d3a"),
		personalization: decodeHexString(c, "9a07d5571d841e3c1a9eb3fb48cde3b3e080e1c2e0db6a6d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a392f79022aebbec0c82b981293627d139dfb5232eb490b4"),
			decodeHexString(c, "f5ce1f6b1e6715c49bea42ff439fdecd9b3b7f2e578133cc"),
		},
		expected: decodeHexString(c, "885c54ad25992fc38260498d6f4d8c73d6159af5f7efef06174da03afcd8384cb28690fd9ded1d26e2dff74aee4dd0c47a0d99c6fc1ec8d8faccbdcf6fdb12a528564ad0d8131bcf5222d7e6c69c52da1acba01b721c98ac5a33725111f12f6d8100009d7cc9efb7ad8d7d95ea4e620d"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_3(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b52620e58e0b52b8eed0d6a6c5f4ff6c1483c61fc41dacf7"),
		nonce:           decodeHexString(c, "2bf475b37d068d061d1edcea"),
		personalization: decodeHexString(c, "ef0d233de00d24622b7d4ff4215aa720787fe80aaeb65d7a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "81b735acd3dcb13e65231c2d980fb40ca850370581f230d2"),
			decodeHexString(c, "b2302d024d92cdaed4b12f79b0aeb20c98b2321710fefab2"),
		},
		expected: decodeHexString(c, "ae94204670196baf740768f97b3a095134b384afea667fd90a77a16c8ae390a732ff49a3073a27db0f7a2c8ad5d7cb527d334a37abf0472f292a20f2a28e667d7c9e9f7b8fbdd177f36bf92d66223aee3f712b6c9b064e07ab96f6a77613ea55008fb4f8fbcb2f1ccbb0da75316c1faa"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_4(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2592a5ed86ff64b9b4c1fbb81222d1bfbc53f3a639571ecc"),
		nonce:           decodeHexString(c, "356084058b8855237da15c50"),
		personalization: decodeHexString(c, "a626c51ec99e72431485d2ba027ed9cabcae7b86116abe4f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c430876552d28776570923c6b74e42c3210f01104006bf11"),
			decodeHexString(c, "fe2ebc239690a4eb18a0b5e75d08831cc2eb07c982c63973"),
		},
		expected: decodeHexString(c, "005045ade7cc15467b5ea784649d9804540a842ffba4db8d44df4f44c69480bd4fe965b645aed09d62190daeb2693a2192aec3d71453a8218e4700201ab922ac35d241d95150b47cc7a051897be4d958f2da5c2ebbfceb1c550cb67b32ff83ce4fd845fd826a0d2469b506f5158765fa"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_5(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "376785f5ff8a82ceb0aaeb010533cc1089059ec583c302b1"),
		nonce:           decodeHexString(c, "4bc47e2cb8c2711839ce7f68"),
		personalization: decodeHexString(c, "6d345e248339e893f75696c039ac47e5678696fd489a393c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b0f3fa1131c3fdd5c7fd2de93931e45a66fa030422ac65db"),
			decodeHexString(c, "c66341e3f9fb82e3ba85f229fcb7d34457e4a6ba8396b548"),
		},
		expected: decodeHexString(c, "b92d17e1be94b0385a8cc3e16189811fef7b284a1b0b6b2520fde79af7826c745e746486a70cd8dd9930b163da75f7eea7c216e758d9ed6c745dcd7bde19bb9382c1f7c37cd15b703b884d7d452c255b25048a836844c5ff28aaacf733a52c28904b36e1b51729d7aed81d601c0872dd"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_6(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2cc2557582c5a90cd2ad0c4a5578eb0bbc9bde41b126e46d"),
		nonce:           decodeHexString(c, "8e9c3563341ba238414eb628"),
		personalization: decodeHexString(c, "9d2fbb9153e3ffefae0770c79de10db069a5ff9f50e31787"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2e54e32539e27ef76ac1eeae2e30c2385647652e20903b39"),
			decodeHexString(c, "1f4e01255908c3c8049521f8972c01ede7dc76c425c59640"),
		},
		expected: decodeHexString(c, "7d6ccdfab33f322898c470be02d8257e0e952dd10f407b3a8eaeeba47c541d968d79eca29e15541c1505fe4f19a41797c9ca2280c06261fe9d0c58bab65d16f5794b57566b8795c38c7b43d4761c8fd107beb95147a0fe61ae8dc31e25eb2957e44c0463ca7c1b589ea587f0cae1428c"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_7(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e670f896326b76034e43cd85f6f6f11fe6582d3471a8eb88"),
		nonce:           decodeHexString(c, "d37a2302de010aac0e556860"),
		personalization: decodeHexString(c, "5e218091abee1960ef81f4d5a80415e388bd0cc79bed70cf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7cf84b9ff30dbd0f608fb21646d7c5b542fba50adb38d5df"),
			decodeHexString(c, "c1c4aabe7616a4c97a4dbdadb08a9b63c6e10cef8d463fd8"),
		},
		expected: decodeHexString(c, "d8fbd557fccf31829b5ee11b05d0353e725bff15fdaac94d21ce95d40eff55edd852b264b515ec6384e2d28d014e47a2df0d4f56a4ec79309b06affc62915e231d62d02bfc60220c72b7ca7ba5671f882839b791ef534e707a04e5274c1011f7941fe1075a5d06a47af9fb2f65c1f211"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_8(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0576bb2d4c663b781193509251e2f76b0a8bb792e7944960"),
		nonce:           decodeHexString(c, "0c2c154feb70cf33ca942508"),
		personalization: decodeHexString(c, "ad15e4fce9f4dea43c12ff9f9d50c963b335a01332541154"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c8a4d6ab96cebf9d02b5663dcb0e0db23699623455cd4b5"),
			decodeHexString(c, "43d2d3a8d023fa1785ce4781a15eb20ad787685a47da08f0"),
		},
		expected: decodeHexString(c, "a68e648cb07da2eb795a8c898c8631e565f33c2fe9c35e686d6f85fef145446cb79bb6d17bdc8224bfe437468a9630ed03c517caf1226c278ae510c869d67d50b6bf1cb378a34035041f290d8dbc123650ab4fbe5cf6074ed0ba90e45d9a8ae08566ea3d3a00ee3741c8ec8f56dcc78c"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_9(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f597ce05b9a5b1cf3847bbd4171e5085384cc256f77ac615"),
		nonce:           decodeHexString(c, "73b435726cbd538b93de9f55"),
		personalization: decodeHexString(c, "573cf859f8fea05f16c6d03cb4e524b91e917f39eeeb1d68"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2a842454870c3f7936f8036b453d219557ca341f261d2519"),
			decodeHexString(c, "7afd8cc269899acd88f5c55af29fb0c4ce678a0d8ebf924f"),
		},
		expected: decodeHexString(c, "8162c16c1ce3d5c6b7c96f0281f4220569a882277935752b86e7d3f54646b276cb77ed96da73799911fca3d19d34c1f0b21068a472afcb77410412eff2abd03c753a009ce02b0e995477546366020294eff0ef0da66f31a413313e2774ca04f09a4d5076e0e85ca97d5bb6faac4c0c27"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_10(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "d5b5374fe143035c4fea41667bc8bc7d46000998cc82ab32"),
		nonce:           decodeHexString(c, "a0040c705e01f9b354e8f16e"),
		personalization: decodeHexString(c, "ed8bb219e67515874c5b9e3f6ae6e4dfa9c42d1e69204e8b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "70f03fe6e78cc34ec1678b2708fcd8ae3300183ea15ccfc7"),
			decodeHexString(c, "9c641d7e73d1a2b819e113747d74a979b74c444ed36b7391"),
		},
		expected: decodeHexString(c, "d50df8e3e17c0f5e19673ba2097d1d0c4cf7a9def7465a5b91ac8d49ae1b6a821fe9efde841ec9064555c0e2d6cdfa41f1089f22a5c27090c5a136660d1af586a1e131a853f19bc3c8f4c79aa09e39c2f22b4456c667ec907e2a4124218665e7cce50399ae1e19ba9c2399f470444839"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_11(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "74d7c8c9b170e59e4f128c8df1955838df5c8071a5e85439"),
		nonce:           decodeHexString(c, "d71e785c68b37e10efb39c9a"),
		personalization: decodeHexString(c, "be3d54203a1078d051519137774d5d851e81be026155eb78"),
		additionalInput: [2][]byte{
			decodeHexString(c, "23f7b6758d79de580ed3eb995fc173da74939837aa8d9eb4"),
			decodeHexString(c, "6f0d5a333ddea0d38362df0dc3ebaa2be2fe5825ddb0ce84"),
		},
		expected: decodeHexString(c, "4462fc32110b25b3797c5cafaad830e8a4346d9270fed98b30f1345a7a8dde19bf5365d6f3788e7f715feb2762af263839c8c8188908c61120743d977d71c51f6324d887bbda380fc07eff09a31c2332e7b1aa1692c59c3379db95fc21cf711c004c4d385fe14f48f2f2a31bcce6aaec"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_12(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "eaf27c3f69279fd523c0c3a1da5fc4f01ed64c27ffcfe3c1"),
		nonce:           decodeHexString(c, "c596482f5baae1434e8c687c"),
		personalization: decodeHexString(c, "b038829fc95dcba8645ce40a306491c893f48139ae30a071"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fbbf7abb8cc2612eeea6d9463efd55c47245e01713332bd6"),
			decodeHexString(c, "ccd7e81f529de1ff4e65fc63d34c262ffde7ee49e6707197"),
		},
		expected: decodeHexString(c, "96dfb7445057633b2f0deb69135d10d0a2dc53faa9cded55ddfb8edc63f5424f8fec7627597a30328177dde7963f76f9e5412b5b440256c6a3f0c7c7fa02ca49e19ea176abac013696e9d529f65e51d4a7348e42dd254bbf19d9632d6c875b8ecd7a4139f1bf020a159d2a30af8d645f"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_13(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "319cbf2b11b37c831c654b6cec2570dc6d7abeeab185272a"),
		nonce:           decodeHexString(c, "518eaef30faa5acf5c8b254d"),
		personalization: decodeHexString(c, "9effa141f7466b659eaa50c32c8e683c2640f54027ab6aa5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "63b3acc237588cdf41c0d4bef16c4890cf3d458fcf1de8ea"),
			decodeHexString(c, "573d6a7960aeccc3280a8aee4d72e587e9d196b7b270e329"),
		},
		expected: decodeHexString(c, "8a568086fdd9f01206a5aaee34d253bbc9339112d3170699b9a1392e97062d5d0f16240114dc1789269217c5b4b2974895b20903890f7dacfef46fa4a4d02891c70425ab3b42f53d72f852faf3713ac7b8207dc453279f4df345091b8bfeb54983095c2d190358293ba507bdfdc39b24"),
	})
}

func (s *drbgSuite) TestHMACGenerate19_SHA224_14(c *C) {
	s.testHMACGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "56f3f5b08da10ead0c986dd2ae5553e4b2eeeb47ad5d2219"),
		nonce:           decodeHexString(c, "7b12b89b4a871c51c0d85554"),
		personalization: decodeHexString(c, "96c8630a1f4187fb0794601cf51e7e333e71756a0421ff43"),
		additionalInput: [2][]byte{
			decodeHexString(c, "875e5bc9548917a82b6dc95200d92bf4218dba7ab316a5fe"),
			decodeHexString(c, "4d3f5678b00d47bb9d0936486de60407eaf1282fda99f595"),
		},
		expected: decodeHexString(c, "90969961ef9283b9e600aead7985455e692db817165189665f498f219b1e5f277e586b237851305d5205548b565faeb02bb7b5f477c80ba94b0563e24d9309d2957a675848140f5601f698459db5899b20dda68f000ccb18dcd39dfae49955b8478fd50bb59d772045beb338622efa5a"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate21_SHA224_0(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "8ad37bdd28f6b39cd2d62cbb226cb52c7c9e4e7158e74354"),
		nonce:           decodeHexString(c, "8a537aa573111a710ebedb9f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "66abc2c8559314d27f080a2b608b220c1cc3c581cada3a92"),
			decodeHexString(c, "fb193d70991547bdbc0b4b0e753412176ce727ead9bc3a6b"),
		},
		expected: decodeHexString(c, "91a8a12810058b6a9b1e5f86753b257f6e14afd7415765458fbe131bb17a55401062c6a1253dd40c5a6df5c79bdedcd205e584eca3bdb62608976b8caa2f57ea3a6305a84d8018340ef410f1cd13c214e7c80c5da348eca06d37469758fba4a322ba7c9ba791e037067f01f4bd7d741a"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_1(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "71556baf97112569f7ce185bde939046d7c0da75256c6838"),
		nonce:           decodeHexString(c, "70f7798dcf87c5dd469188a5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b2d8b249be357d29ecfa8846130408ba92e4c375e2a18341"),
			decodeHexString(c, "bdb135172136b8e495620fa1bf00b6dc1096743f654e0a1e"),
		},
		expected: decodeHexString(c, "b5df532fc5640df7ec27b1064cf9fd82999e9e13594c76e7b37b4879272deb5d25650ffb91f03e4207a52460a51f46810669732abba63689969726ed48b5fc911eaf2da52b4d731d3c5703fa41c83752d5121328f7bafed472bd484d13308809a80e0998d6c3504ab5b935c67e303e97"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_2(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "bace0437423f99453d4bab253b7385f25cac5529a74a55d2"),
		nonce:           decodeHexString(c, "e0070add2bfec0af44a5ab92"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ad0931a66c8eccb069b18794d871ad801709b10fcac63333"),
			decodeHexString(c, "25be43136f84f69506d946b7b8cbfc14c137d65daac9f6a7"),
		},
		expected: decodeHexString(c, "cb15d0960a48246f38fec77e0bacf22461cd337ae77418742c3a5f6f745f73d9608b52b2c64b5d24f736278655d45cb975b03e8698e74e08b52f402a1828114a9256cb22c55bb21445da8c354aa8001caf14167daf4dc6093f9aded313ad6433af48a8291e9f9d529f32825a77717c54"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_3(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "98acac10c00a8a20d80234f05ed900420e092f1a52a66a3f"),
		nonce:           decodeHexString(c, "75a0856c873ceabcc3289025"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "39ef8410458ab56c92dc0a3bb4fb55ab2b6366cbd10232dd"),
			decodeHexString(c, "3cb5cab71f8c1059e6e58ac5135ae9411a2b22e578dee61d"),
		},
		expected: decodeHexString(c, "34d345bd8c0f32713ffac93e2ad3df5c50134876284ee3d6002a6a69dd66a903b7f05ef52c582e34259680e80b15f459bd0da3848db49422223e072ed542ac2b0d172e71b170ddcc77c355eea7e8a00789501f09ae3ea928b76bfc8329a6ac66023dcbcfb82be6ecae29472f83e2e5f2"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_4(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ee5ef00aafb26dfdbad0943029a5b82e7844d6e838252ff0"),
		nonce:           decodeHexString(c, "d32ddb64875d956b1141d891"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "17642083b7135890eb32fc0d75cf3db618e84ab12b9964cc"),
			decodeHexString(c, "8bf2232106450da94adfa30d7d6f51c712845a50ea33fe39"),
		},
		expected: decodeHexString(c, "ab35022268031ab65ce726095b2b311d1fe744e4229d6ab03cd79eac3fd93099ba00d0021a95f40ac86a46fda4041c27b0ead485ef4d91a8b3fcfab4031f762a6746516161b0f998194a4a5ca902e905e79e67b17cc70be2f8e077290a575a7504f55c47bae81dd732e036aed18f6e00"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_5(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0ddfeac713fb4e00565c0315aaa80b54b09f8ebf8f94cdbc"),
		nonce:           decodeHexString(c, "dec892f0d33775e66743b9b4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "984b87667149b02521d1fefe9238bb843f9a9392af304b19"),
			decodeHexString(c, "6d269fb9d218e1e932bf7a8a064b9252c8e8bd15e91928e7"),
		},
		expected: decodeHexString(c, "d8a6470420e87e87eea6508e48953268ec481f70047214c3c1049be0fd0d41d04a8fd8b25751297f6bd2a3ff74cae96bf75666e179671055443c0d487edd76f3a7dbe70bc430ded72718853496dbcc57d6dd3685593aedd2c14fb70203e9bd84ec7531de1451c95fd2bbd4bb1065cdf0"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_6(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2c0cdd5597ec0580c57fbb70a86432a736ad44a8e0ae8f22"),
		nonce:           decodeHexString(c, "9857f254a4bd2b819b617fac"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "bc662e9e8bd5c069172b688b39f74f368c44554c09fb2c12"),
			decodeHexString(c, "0b95de4012b602c98c1767a0f0a11b4c85df71e691d7bdf7"),
		},
		expected: decodeHexString(c, "96adc9cf7562b8fd344eeccbb91c73441f7691a9c58e7b61160f93cc142fd440b038f48831da2b6343b40ca70c620cbd6d3c5509cae8ca3be87380af58d1d271abbccb56c2ff883ab445f30914271e25b88098c412a64c15956d0ad7bab12ccff80e0a97331af5c21cd6b0018e63cf17"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_7(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "96275ad546f4706febfb4e983c56a27d742edf3f92e7177c"),
		nonce:           decodeHexString(c, "d7534695bb16adc11621cbce"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4abed05763ae67b4173e31708bef17f4b0bc0a75a6f8bf1e"),
			decodeHexString(c, "478b6a8aef8f40de30c0b0c320140a739c914d5976540153"),
		},
		expected: decodeHexString(c, "34ff8a4cd818b7f870895416ba60711775b10b090602717bacd8ccb94f2b751e0b2a364c9fd66ea1bdc4d57f5b3ceb3eb30512d31321b48ac41c2abc30025272904a934a3187128c95f224821db1ec657901bcba19c75b4b64906c9c12c45fc80b4694e3a94e580fdce95c9cd3254bfc"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_8(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "fd72ec0a165678f3ae47b074b1ae1b056b1682b7cfbc1c68"),
		nonce:           decodeHexString(c, "cc7af6fb09185c0c92e90db7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d9da5d76ad4ed06cbf2f827455ebd12383f870d13b7434d3"),
			decodeHexString(c, "67a85292e710ac97c19f89daa4b0c0315bfbbe71ae8e99c9"),
		},
		expected: decodeHexString(c, "ee2b927b0d53e70544475aebf23f5bf2547f5a4f013fb68b56349c76bbd26983e9c662daf6280b9fd01f979dbf2e68bdc17e17c866618b93fe0f6e05d9de6d4a97783cb6516f6338345c7153e0fef538163e1622b07c377e4ccfb0b9428cf62df2e2869ea5e94d4e1f04d81c3666329b"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_9(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "15f6299979025dd6dfdd87fe2883f449446ae9a8b013dc52"),
		nonce:           decodeHexString(c, "40e2360188f8f02055fb965d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ce54fd58debee248473a1ba98917542adfa9523c71ebba82"),
			decodeHexString(c, "1ee2c747db56b8388399fff174b35accabad494918dc9a3d"),
		},
		expected: decodeHexString(c, "2caf6ba1df44f8c5525ec6b81c22e8c66926a65342069dffb8d1dfc8a39939b5667d2d24d8c715ca7cb41f83eac1263efc6ca8fd8bf8ff2387e716f154a8832f9fab9d2e3174cc1e7cc6bc06b583b75bae5a93fe063e18866d0f2cd2a418ad4b06d98ed330d5c10cf8eb0a7d2d013df5"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_10(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "73fa0c8c227664d091a6e809173b1a7fdb502dd8de877bc1"),
		nonce:           decodeHexString(c, "7d5ab4dad7976c0fe9ffaf13"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c88d5f61e9b23d6c440195fae62c4dc992be1323c7a77c1d"),
			decodeHexString(c, "7918b3c108b6b21301625499611da496c1f6abb8b6bce9d0"),
		},
		expected: decodeHexString(c, "a0c58c212296636b7e1134aea8c9cf71fb2ff33a1266ddc8b635791a00b50ea8d9b2fb912614a3866bd0557767a23d85fa7b71b1164d2bb3b36e2b97f5ddf94a30ce29da682e5575b9bf0deed7c780349c5eeb7fb39c00a73f97dcccad748d7a98e445efa1091ae7d911dad929fc0645"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_11(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "5f6b6db4db0f5d9aa8e8f7bf5dc07bb188ba16c104979a3c"),
		nonce:           decodeHexString(c, "a183ff25816a11805f761c62"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7abd7bad51e1ade5b2da0b536c8d589c682df09ecd634c5d"),
			decodeHexString(c, "03a31694a8e68ba1463551380717db35f43702135c74ffdc"),
		},
		expected: decodeHexString(c, "5bd753bfd322db90ceda38f2e7e914766be456b6d774d9952448ed6ae79cc6e5490a42896fe95cce1cbafdc18c43065e35492affc776318b3e1cb7371afe9e3f98d09c0a3ef5a8ca8c893ebb0055605d3025a0bac535fa3945b0e302f7c4889c4f67c943032a387e06557155d62de880"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_12(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0247ab3bf3e64cd450b605e07b9ca806bdf6bcdc7e5be087"),
		nonce:           decodeHexString(c, "d5908c90f49903077d5ca9df"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "822829af2bc971c062e0e72e122331f67523c4fda4e6b59f"),
			decodeHexString(c, "b74dab0782913c9f6c191a4b5c8e5ff4c533d2897d9f4ff2"),
		},
		expected: decodeHexString(c, "70a729135b2098c38aacdd074845aa66e7d8b971da5fa03d519f51a09c19848aa1d9cedebb0388eb3c2cf1ea34eabfd2cc3f96bb7d4b7f057c8daae2a8dbd81f9936eb001fc54554d4b0093a7412c370dabf0f884d6efc62826f6f50b8966445753406ae0d12f5f018243781ce4e0e46"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_13(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "154e09ce03eb313b6b37a50273f61fd829c987495f848e3c"),
		nonce:           decodeHexString(c, "6baa744eb875635fbecd1043"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c64900dd98479781a1ed32a2c3bf2de48408648ff8bbe7c2"),
			decodeHexString(c, "aa40b7eb8381ac8a70dbf84ca9e68f526d3ff10c4aa9be79"),
		},
		expected: decodeHexString(c, "5fbbd2c5224f8ccc954869b141abbe26cf0e90d02f19d8a5a54a4fcd4a62eba01071e0970c89857f884ab1d018ee0d31bb88ddaaf9aa59d2c7b65de619b0d7b4760336fa1e926aa5697a5be474ad42017f3484a40d3b1aefaeae523f9384e58ba9924dece6685c76c05920992787acfb"),
	})
}

func (s *drbgSuite) TestHMACGenerate21_SHA224_14(c *C) {
	s.testHMACGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "34bc96e55d3b0f3fb83b2755b7e58363113da2fa0dca7dd5"),
		nonce:           decodeHexString(c, "d6db4281d219135dec4b01c8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5c15fa9dc77d6fec5f7a4a3e4a315c05de2b5e46efe54934"),
			decodeHexString(c, "fb65ede490ee01a1c100ad5e23a20f91b45adf1ddc15c590"),
		},
		expected: decodeHexString(c, "98cb3191831dc79334e8e37d5246600f822aaa40964b91f345b9df90929db1b7bdea96dae9aeb88d05fade5ae6c29aa8eeec7fdc96e654c5ea41ea01e3104ca4d287bb03005feab0bd1f85e556bb6bc46a2227b14fd94f9e6cfd0341cfce951851feb967968d6cc818f364345b715bbf"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate23_SHA224_0(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a454d24cd8ab7aff528fd2a4df6313c760aa40a5fe23b0aa"),
		nonce:           decodeHexString(c, "bad23d7e66ef65668d11dcd4"),
		personalization: decodeHexString(c, "6c09c1ed75318b7e621547cd9d84d98cb27a18a4144469bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aaf4b7b16eba92693dfe6203260243ff531262230791c4d5"),
			decodeHexString(c, "d7fe7447c154387c582e913a82505ba381fff66008f13d5a"),
		},
		expected: decodeHexString(c, "0b20f3849a3f0324b477f3f925bf4739c544419c225e2d5b46f4d1b625fcfed15bcbadb2661c012f2c66dd13de1aa52298473cb026c316b1c808baf72889145b1e2927048f72d7e4e8dba1a7250edfa66179b9abd4283e823fe371269971c1ace40f90b6493a6e73670b7e5503f46c89"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_1(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3bc7f1773fe1191695b3fd9350589433ca2c617951bbefe5"),
		nonce:           decodeHexString(c, "3d4fce3431bdd8e06f5c5182"),
		personalization: decodeHexString(c, "39606af9aa0c1c455ae72393a36c55726111f5560b4af998"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8b461996671bf413d4b898ae968777624b174aef9dc8cad4"),
			decodeHexString(c, "087fe5dcf0a0403fdc15746950f20e393e73db916e964dfe"),
		},
		expected: decodeHexString(c, "f189481e192a67998847dfbaeba1e71517aa11b22f1d9cdd65d3e62ac44bd3a6a344c1ad4d4628c12d9fa72b29c61f8ca8e3eef37d1e4cde51d7905d6314b39e9bf513b24cd24068dc57db263480ecc7eb528de332d7c21d6cb43c7efd3a8caf48a4260968c1e33366587a64de8e254a"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_2(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "4412a6bb0840a10ea6f1fc9543226f7f26c0cbc7965a9979"),
		nonce:           decodeHexString(c, "d52f7a302a957fc4c4fd6706"),
		personalization: decodeHexString(c, "064f8a9c4276339d22f31db30a00cc781bd1c0340f2721ab"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e88ae1d4a3245eadab582b21c1522d8a3d93faca3823cd44"),
			decodeHexString(c, "4fd482fb3641e626ade6d9d94a18303c6b1a7ea629dff0ef"),
		},
		expected: decodeHexString(c, "a29b0cfe188977ca00ff72993bbf1d7cc4446d6781ae091bb32a8deebf1f546c2571968447a85ed52c019bc0fe4ab0b18b93170b295cd897200bd3f5321f51b09e7607aebac79e2342dade99a4f422949aa97872a07f317cd9d1482ef397c6354ff2019dab5f915234aec6721f556e69"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_3(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f8200b1a9d49e0a7320c05d14fa77f3528077b043b2d0f6f"),
		nonce:           decodeHexString(c, "f83a3d3f55e9496d4914bc22"),
		personalization: decodeHexString(c, "ae356cf25b715ec1fb158f51b21c934c22eb5495858ec019"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d25558e3ed1135f26b78ec98fea2c9d62e8f76dde73de67"),
			decodeHexString(c, "4aae0d3a2f693cbd913ba68dfc3f5cda385a07662b65ec94"),
		},
		expected: decodeHexString(c, "edef6c0324f5f1c360fd0eebf6ea8906b7d378510fbce36ae5cabed186eee6efb4443dfc6b84d5a5cda22bdd24eda444073a148b66587e5951f40ea58d947d474adc7584f5b6a34ce94b6113ca71319f7f83723a0acc57e638930cff1d72fdce1eea4f8cee25bb77815553872f10fd83"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_4(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0da057cc5f06459395c6ea651ca7baefe8887d2896a836d3"),
		nonce:           decodeHexString(c, "742f6ff826f86b169283be9d"),
		personalization: decodeHexString(c, "823532fb5b1f75a967483715f56546e254366cc774f233bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d8260f314d9d515936d765ffe21a959751a893efca455d06"),
			decodeHexString(c, "a5615ad8f003973b9a7605eab80439c8aa2fea56386aa396"),
		},
		expected: decodeHexString(c, "71f5efaa35338feaeb52bd12b7961214adec8bb9c30b751453ae12f4b706b21de5c0c0701d4f5ef0cc2763fd10c10f2a856403f6c28b78ca62cb7dbfa19b7eab7351e92727382e339c7a7c44578dc0f3bbf4475fcc1d17a7bc2f6de97acd7dbade74f317923af035219d85cf2b3c3087"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_5(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2f55b2b823ac366f4d06dfce6d081dbb3a00ac466a2bb77d"),
		nonce:           decodeHexString(c, "00642c8032c0e44418ca14bf"),
		personalization: decodeHexString(c, "6a8cd0ebbcae6ee434e37c586f7d7983d3d57ee6750503a3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c94083c6bf2799c97144f4a8240957c4da177054d56f1b7d"),
			decodeHexString(c, "2eb6793d47dbfe0de54ada5afe34e8f61584f5bd75094ed5"),
		},
		expected: decodeHexString(c, "50d6b4737a9e5365cb35ac37ee157f2dbfeda1bf05cd1b6be50dfea46290f8e178215949f5f1e3b6cbd9b4fa47384a9fd58571ed2e664bee4577b6333721a72007ad563e4cd9096ae6e61a016a6910b1c832c23277730ccf246c284861ddf4c3722cc9e2872040660088c97f71c1e039"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_6(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "c703a60ccebafa633b920b5de2a154b9fa4940973f3562c6"),
		nonce:           decodeHexString(c, "32b3afdc67a7092a61f13e16"),
		personalization: decodeHexString(c, "5a975900ea7ad8e778d24c6c347d09a58e8d084033010ffb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6275f07d22aa29f0fb4b78f545320f1a7ecab71140fa425a"),
			decodeHexString(c, "bba4afb2b69201234eacace27ee6d77a5920cbc509da66d0"),
		},
		expected: decodeHexString(c, "779dbebdec3601f11322ea9d0857c88974f2c8ddb77e2444b46b31a7f65d3b949462bdda4aac94f689d44467b049c718b93a8451a9068dccb75f7ea9c6c60726299b5794c4746840dcb770eb3e45347dafab6980e6839c55b6f35ef87ae1e0915dd8e843bdf3f0fe38b5ce66d7bf38fb"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_7(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "eef0b72f2b96523a8dce8f19fd4f2a7d041615f9dc2d30bf"),
		nonce:           decodeHexString(c, "019647a36f43d7d36183dacd"),
		personalization: decodeHexString(c, "6387a9efd6df19065a93cc64fbfb7e3e26a8966f0fcbabf7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "76d848401dabae20bc1504c2a44c950c8ee01f76df2b57ca"),
			decodeHexString(c, "ae05a4147ed24eb84c90506310d0a231e1fa9a2fc618c503"),
		},
		expected: decodeHexString(c, "2f95615371c773aa030fd255ad19cedf4ce6d50fe4e6d231c82e687792b35a4a10a48e4d88918baffb03bfdf137553db576b0afc99d4a370a2fbb2925f1110e72ee3b5960543af4c1141d303381650d29aaf024040cd70503fce0ea41794d8e67ba7615b0ae28a0614e26d33b063d9f7"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_8(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "68442c7db00b0d360a86709d1bdbde023724730bbbc2eaf1"),
		nonce:           decodeHexString(c, "e3e3b777747fd8bd4690a9da"),
		personalization: decodeHexString(c, "184cab9e9779a367e1fa5888d6038ce5f6702a998465e9ba"),
		additionalInput: [2][]byte{
			decodeHexString(c, "442ba6a8567f3002d7c7f94398f23aa7b3b0647f116d9c7c"),
			decodeHexString(c, "2d830926a4cb5683a308593db5d6034f8bc94f3bdbd88056"),
		},
		expected: decodeHexString(c, "d8257fecef134d22025eb884a8b93e67a24227a62ba8cf6a4a412317cc27d7e2c6291a42df02a82511853ada9e4b75f2f8beafbb4c788e607fd9f988e8e3feca807c35141df39ba2d692ca182c5e40861880bd6d8648a8d65722bd65d87e14d7449e0d70927ef25929a03a915c4fd806"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_9(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "328b4809643931688c48b0737969554c5a29752d8493603f"),
		nonce:           decodeHexString(c, "9010cc0138e491197b28e87f"),
		personalization: decodeHexString(c, "3451fa995bd9e975535abd0354cb4056f97c6b785057f3b7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4eadc6391b639be2b0a556e159a17b5731b1469766758183"),
			decodeHexString(c, "afe849042ccd9b7d24a01996a9a0a3bf5b8b723ba36b213f"),
		},
		expected: decodeHexString(c, "f6f1baa1eb00e5cace4c83296f4bc87f4214f3ae9f635d882f3d2ce7e759c04055d90728181eed28fedfad593ebb8ddc2212a8f24da13684e751f6845fec92596a4ca85c1197746c9063781498640ca152ca90f309e78c834c98814a6918033d1528983bb8b8bdb7485a3d6797d24773"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_10(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "6087021a7d6524764fc44223dc108961f90529b8c08f991a"),
		nonce:           decodeHexString(c, "a532653ea4e091eb7ebafd2a"),
		personalization: decodeHexString(c, "513cfd915f4bc8fd35c90bbfc7ed2f67b21f0c73a430a402"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f0fdeb937d463ee039ae72dc536efc7946ded185abd47962"),
			decodeHexString(c, "2e85f0a2c540af36f3803e4c90bf88118ef7df7368250345"),
		},
		expected: decodeHexString(c, "6431c3c5a0e0adbf88a5ef1d7a618d1b10763d0dfe11dbba8058047630d30c0c40e45c116f88ba352f47d051d6ed1c6b55fdcd3ce1699e89bda7a3c29c209da9eacc7ecbb783799bd6c17d975f0cd40e1a812fdf12d46a7a4df879ee7661f3799d794c635664a466dd00a3217cdbef59"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_11(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a20e88ca7f57ca76295114c7a7521e38a427a9fb5b7a137f"),
		nonce:           decodeHexString(c, "ca81453c651679646daf9e0b"),
		personalization: decodeHexString(c, "23b423fac0d765ece85f1a9282f8e97c5727205ffe667dcc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8e64128bbd64c06fd983272721b0069a7656874910cdaef4"),
			decodeHexString(c, "cfd615a8abe010af9b11ee2d9ff99b15558992626b15431d"),
		},
		expected: decodeHexString(c, "390a35d348edf975dfcf2b06327e436145435fe5491dba467a0012e74172b029063ba96bc5d3f0df9ca6759ed275126ad09b5a999723a9a25f3496b0cb2a3795287da0edac6b07ceb1123d43de721ac10ae4353915d41c3b153a7a8a9acedef18eeb3f4093485a44e43cd0c51a435be3"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_12(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "5701627b7979c249837577eb75abf823984f5cd0a4c400a4"),
		nonce:           decodeHexString(c, "1e02e2426046c34959b1f23a"),
		personalization: decodeHexString(c, "4bee7c103ae40e5ad80a6ed9c8585d291c49fb40c294b31a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "04bc2574d5beaf8711a127a6fc66115beda575d76b206d62"),
			decodeHexString(c, "83f45f0ddd859bcee9ae599758a0b7cf9713221f9b3f7826"),
		},
		expected: decodeHexString(c, "bda8062291bc4432ea63712f305396ec06e8ad5606781710e2a8b043030c91810b06bddc53ab24b41e273232c7755a13e255f22e1e0f55d9ba62b845957bf7c9d7765b9051066ec2aa5032ebc2e627c34723b5f9245e3c88d90f28948c91bbee6a5889d4aef514d4c91803cf87092b2b"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_13(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "affafc143621917b595694ecf1b9c6b7be988dd4e48db4a8"),
		nonce:           decodeHexString(c, "c9bb6a309658de582eda2c99"),
		personalization: decodeHexString(c, "f6e8a7d60dc77065820cfc97ce0f2f033bf2dcaf199a88ef"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c19e97bb79c8508750186932c6fb6573e4770c611cf57830"),
			decodeHexString(c, "0ecf65a8035adb6346b9f942a4e2170c30a47d36326712eb"),
		},
		expected: decodeHexString(c, "f539cc2e2d0ae7d822edce1cc54fdef805c39f5820ce61eeb47342dafe02f383fb68c6f9e591b41107da8b27ad92b66d85ba0ad02772e199f7a8685a6ca591087cc71c7ed383b0fbcd53f63ddd5ebc7886a4d46568aea167d44e6e3b9d9fd2f831e55c2d6b4a807154b8cac6ac4f18b6"),
	})
}

func (s *drbgSuite) TestHMACGenerate23_SHA224_14(c *C) {
	s.testHMACGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0142a6db5e49eb931eb3d1dda211b959e46a6c5df36fbf72"),
		nonce:           decodeHexString(c, "c77bac27755936b4026d7cc1"),
		personalization: decodeHexString(c, "a1de24491d19189e21e332d2f57981f00124f5b8b177f588"),
		additionalInput: [2][]byte{
			decodeHexString(c, "82f895626afb606f335f5f050f0fdf3b45275e0b451774f2"),
			decodeHexString(c, "d423d43240cb6461402a7755f247573f24fab496e00b2e5d"),
		},
		expected: decodeHexString(c, "b32c753900d4a0a0650d35d0fc918b3aa5f253d4381598ed475147f32c8b002bc08678e45bed1b9b519cb9729972886f85e581c75d3c2c9fd6ced929be29aa3befcd1d3fabefec590ca55612c1a0409446a01398d0e4775a548d118a32f29b0dc29530329d2a7656e5d3ef66db2b9726"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate25_SHA224_0(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "04fe18c01c70eb0779aa73572144d0b81954768a73e70ef6"),
		nonce:           decodeHexString(c, "d8d2773dcc931ec0348bf07b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "52d9163da92b7c4fee39e39f8d310623e16ed1864e284de8"),
			decodeHexString(c, "adf9b40f7b95d919a3fa3d8d3322f305413db70045f19406"),
		},
		expected: decodeHexString(c, "4dbd5d3e1a0cbabe3a5d6c275215e2de672436ec7215b628b4af5d4992c9fe32ccf75e812c3ead43717f553b38950ac35e68e057fb140d3e977e25eb9613b52537349b2f922a90ad9e92c67b2d3116322d9cbfd554dbf011272b0d3d9b4c1efa9c87d249e1b2e5ce152b46cdb19b8af9"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_1(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a6a2043c9d5a35edd3a87c3ef76d680fd4e0792f0d0d1029"),
		nonce:           decodeHexString(c, "a74e9ce171fdcf713695ac77"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9ce76390991b8c56a252c3e9355adfd0dc21f642701c431e"),
			decodeHexString(c, "5b08193168e52f4565eba98f798df4ca8170fbcc47b158f9"),
		},
		expected: decodeHexString(c, "7fefda34735500595b8bba1652d5d86ed5426707efb50631de3cedc2417f44879a641f1165fca2395577ab62a4efd3ebac3820cecaf83428ed882eddc6ad577ae0e4d29cc712e504cd015232180ce9d0b062dc554688f25bcd5e3b79e9b906a11a0ffe122c8928410f0639cc1dfe699b"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_2(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3ceef6b6a4ca6aef15044374a5a2258f482f0d41c933a162"),
		nonce:           decodeHexString(c, "e9820df285f44ebd5c0a7458"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "87f498a2c94e4a8591555a966d85aee0a186027de0334eac"),
			decodeHexString(c, "3ec1f65ee04953e563ea5ab65ca89bd2d8337fac2a93774d"),
		},
		expected: decodeHexString(c, "9a9b0a9f6fc51233e18cc47e2002c463bf6ece89d739071852e1b2d532bfcd7779e88d84d22e0506b57a5c032dc89d26eb4840a48ddf3a65dc5bc31383cc2c638379749cc33c826b1cbba5cf425361314db2204c47d3dc0d38b6c017fb733445b95730ad7bc557484ff29833198f64ad"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_3(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "c25aaa8d76c66f0ce021a388a6dc8bc475aefbc2e18ea001"),
		nonce:           decodeHexString(c, "4e22fcd37f19f936e097dcf6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "44dd1356503c99dffe7d8cf211643c0d629f7ad1d593656d"),
			decodeHexString(c, "68509fc262f191ea95208c76c9b84f9ed182a168490fb1c9"),
		},
		expected: decodeHexString(c, "8b7775c0632da15ab6c8c56203b87765625204ecae760f01ac19431ee4a58fa458ee565e5ef54d834bceab6a67d0831466e7c15e63da2adb6bdb16e469dd9f460308df80476d32e2ece0677361f07f3241f2ee93e39310a60cdad7fdecb4cae022e48bd2fed69d7937e4b200cfad478a"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_4(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "aa6a6c7083031e4e4e67af56f2e9287734b1f4112088f696"),
		nonce:           decodeHexString(c, "4e9e1b17f3756c23370c6d00"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "dbb5237e3d8184b077a159f8498adec1da07205f1df5a927"),
			decodeHexString(c, "ca99c2672b20e6aa37aa2d8db5650ebb2dee685614f7d43a"),
		},
		expected: decodeHexString(c, "de90ba7686bd82f034daab63f4b0ae636775a36d6b83715655f055647d365c3e5dbe6ddede8d05dabc74a5f04214399c606c26213a5167dd0060bf71fc8d7660addf442ac11546f482602b66a883011a39b23925ccfa882f2fc4af178109d056d0ca962083a2c10e5442f86976a9e828"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_5(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0114a3d59ec9e8d2ab2ef6ac509a6ad739ca4aed1ee2d515"),
		nonce:           decodeHexString(c, "027d64d479bff5c27b100bfe"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "392a993b8e5f6d1f1dd0ab0e8a88d13cfec95c785fa0b384"),
			decodeHexString(c, "555d0b602dcbea92b5653467b0d96cc9adf792e7555e826e"),
		},
		expected: decodeHexString(c, "3e9a92f64afe5caf818e2df55085c7f11e87457007bd3feb5ce47d299ee9eb0688f08a1590d4f3b02f9655f683b743ecba6b601054e0f59ae68d713a17b8491387fde3d09a2c121175aa3b0647cc7af467918b876437c8bff8c1fd44e81fa968d907e1823eb31ba6acac0cbed087f7a5"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_6(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "d45cc7d8ef81027104b1e477607310cab779a6e756524905"),
		nonce:           decodeHexString(c, "ffc1d1c455dfbb64cfc72486"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "081da5764e197d2231d8408467001d9fc62af0864aa3b585"),
			decodeHexString(c, "1ceb8e1ba42123046c5e985e440e2d3defa794ce8d02cbcf"),
		},
		expected: decodeHexString(c, "ee691cf740efef2619c839c0df42d54446f2d718ab1d24ab9e12d740b2d3138543141bed82442e509436e6f424cd00042b8eaae417ee84badb11fea087297d44bc4cd05cdd22cedb1b5b8e336e0bca8ce00712d573d480a81144dd19c08a71c8f5ff4fffee8b157566cf146280ad93b7"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_7(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "394316fe580f0777e846b4b9b0f320353c6279f337d52c22"),
		nonce:           decodeHexString(c, "096fa0305f4c34bfd499e6e7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "286c0e78e078e116649cda0a60cce145eb73f0ea2157a505"),
			decodeHexString(c, "62211e071dd9ca0b74bc31976bb0278e1e3147581f2222b5"),
		},
		expected: decodeHexString(c, "07561a1c877000f1a5821e01fc5b4085fe12f23d6be447068aa955153bc2994ca036b8e4fcab23ab2d61296c76c53350b88b3ac0431fb30123e5cc36fdbc90aa377ea143b0c615c39c6ab1e5d1ac26a2a381fdbbb66d319095ad2a620eff824343dba67fbc83e1e2ce0725e9915f26b4"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_8(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1c08eb8091f6699c50fb280daa9ad51779f8a1f436281747"),
		nonce:           decodeHexString(c, "a84fca5456c589c805c06f66"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "efcb121a2d96a8b238b16e3a9e3994e54a929ebeaa22fd3d"),
			decodeHexString(c, "7b794fb66048297ed44d089ae7811578ab93efaae5d0c9f5"),
		},
		expected: decodeHexString(c, "37d83fc06dea430f2a3b20397191dab5cb6845fb519dcf4a558ff6678c271dafa3ccbafb803facef82cf5f2529b5276214bc5ea0b9a1542c72fe50d97c4ad106a246363176126093af34752d148d88d9671411a34ea06fb61da15e320a3c5643fa2fa54bc56b4a5aceb0475af112946b"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_9(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1ba96258c4e4306aa3600b9a8f0c521109a46d08dd1a8375"),
		nonce:           decodeHexString(c, "5ac982b29fb102947c51de9a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9f0d1c1cfab6ed13f74b814f63919b71fcdf10d1df05ae38"),
			decodeHexString(c, "72070d604caee6225a8c907717d359dc2d02a848ddb7eeb7"),
		},
		expected: decodeHexString(c, "b08abb3405ad9594952c4cec6165f9375c9827c1cb8c58e9c79eb6b944a9c5e363db9dda5dd7b3f7c6035cccdd614dfbaa8c548560c06f4393722da3fd6ae06b483931fb508c5f95202aeeb839d94338ac17c2ef0ca82664b00621edbe9be46c9815381a5ec54a484ac11a0a88c0d21d"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_10(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "d7bdc1ebf496da1eff58e5186a1d7a035e76a8ff2f83cf0b"),
		nonce:           decodeHexString(c, "d54a573539d9c188ce5dd91f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1d7f360c6ad4d4ae2a7aba058132a0ba932ff13fee459285"),
			decodeHexString(c, "563368ba97764aa6dfcf57ef31eb913b025f5c9c4f9f56fd"),
		},
		expected: decodeHexString(c, "23db14b9e262aaac695bb33c48812582fcd8ae9b26bfc5e92c247c33343a778d0a1de9655df624959795a042160b46d920bc9bfbfa42c9e0d03311753cfc26e9b391e196391ac399f9bb31c03ebd7ad2c422d8dd37707d3281abe9e9485dcaf08555fafc8b304b46bcd567e88b3a03c9"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_11(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "93d14e6200b3ed2a8d4a7226490da3ba6936a2f4fcba1c70"),
		nonce:           decodeHexString(c, "2bf76ffb27bbbb020953bae0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "facc4663ff63ae7776765043497bb0dda1884f9aee4f81c9"),
			decodeHexString(c, "55bee081a8d3e334c1b3e33a6d0a0eba93048d908b2bbb4e"),
		},
		expected: decodeHexString(c, "159d0613e4fa05800c320f3ce188d40440f367ce7a71e3ce2b14e7a5e5a6a106bcfa46184533dc6a5aef114765845f06b2b53152ff370d1b4da09898e25000a3659452ffac0ee6efc6b0a14aa88aa5fece158c53df5778da435e850cb31c7b18372d7358b2a0d3db7c606f9d0d03f884"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_12(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "8caf36ee5a6e0c2bf1ed2666ac4d7e94cef284ac243568a3"),
		nonce:           decodeHexString(c, "1be6e893542305eed4574b77"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b3afa95380eb50ab1f8942148a9254373c7f07f1347b3c73"),
			decodeHexString(c, "dce3c8a1e10a064876d120bbf354e3cbaab455f3ddcb3a71"),
		},
		expected: decodeHexString(c, "b4cf8f0b89d6f93aaec9fffa072a04f817dec9228df08f424c22e431cb45c3836ecf5ae80982b36c4b7d7a03798344066fb4922663c6eec0771adebc5aa20abd84490733831e7b707c73778a395e7af07943cf73354736c06098a9180eba242b8b2043964c189dee9f1fb4e233eb8b3a"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_13(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1fdba6009c876e2ebd04a907f38842468d9165406be44133"),
		nonce:           decodeHexString(c, "6293d81c807811a26ae25782"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "65806ae51630678cf1a7fa6f1091849b7678324443347dea"),
			decodeHexString(c, "5747fdaf1d4be67e6edf9321030bb328458b62ade8a491df"),
		},
		expected: decodeHexString(c, "aa6f56f627f3a5de4f2beba08590cfc8e89ed39b87194743049b8cd66c640c7d66ec20750341776a75956d718d454e58f87c2b402bde4487d2bfdf17e25a57484d66d95dae534e3e92cf298bec64e6b772df235b2b653dbfb549256f9fc556fcceae6d9f671f524352c834d9ff997eb3"),
	})
}

func (s *drbgSuite) TestHMACGenerate25_SHA224_14(c *C) {
	s.testHMACGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e2370bba6e4af0791a98c2a2a5d73b2f1951bd0bb0b1a5b9"),
		nonce:           decodeHexString(c, "601da7b3cf9856a79eb24723"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "857ce19dd6e8a45be185875f1a98911062045553e8d28ac2"),
			decodeHexString(c, "b5f1998f0fa38145edb86ae4d569ef4dc2e0aac0a815d3b1"),
		},
		expected: decodeHexString(c, "8f0d978b24bae2a0665beaddfa61e8896ed7976432bc4f7c444699e30b8da1ecbab8990bab9d0d72ef6f6b0b27ede12dc171a43a14092d57e3999cee71b1356da5f29b17fec227ca2a4887bd990fa33e1e01c8a9f900ffbeb300cc5ce9d7d2e25a44fafc07e34acd61d425e0d36fb0f4"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate27_SHA224_0(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "022a4c6703920a5689df3afb8334e81baecb4fb8f3c6191f"),
		nonce:           decodeHexString(c, "8e686ec6b19acc2f5e669f3f"),
		personalization: decodeHexString(c, "a1722895c6cfe54ff7b171298f9ba76a0e2b5ed99fdf683a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9f9b8a01381aa5d3723dd9c40c76b597e36eebacdc1e7e42"),
			decodeHexString(c, "2ec442860656682e7f186aea817cdebea3bf887326cb955e"),
		},
		expected: decodeHexString(c, "cb73479eb95c8a22459a9537cb835f68d57102103ee369c8ad78d6a90f1476c420892ccb336a214dbb209a5347e427a5d680ff2181bc709f1039f8183ccb102cd275d179a807c99936832972ce652712b0fc2f3ca16c1dd941f797c1e1d81ea0792e126f4ef29726fd73e8d685cc7628"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_1(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "5cb8edf12ef46abc59dfea601102d778e076e68ad5dbe4a4"),
		nonce:           decodeHexString(c, "265792a997e7acd615426258"),
		personalization: decodeHexString(c, "360f42fbc785e003e4c242f1a97eacd4d1de88614f89ccb6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1121e26ddc2ef9a7a69d44cb380e8a91c4fb1f935ee59215"),
			decodeHexString(c, "cada711ac36e8ecaefa4528fde8796771e17e7cfd767c003"),
		},
		expected: decodeHexString(c, "049e621331992cffee43fe70d1838b392687bab762f14a76786daf5dc8d6ca0b2af3f048c3bf9b2af49c89c9c7748e0fde8da42ee8d820e0d705c9c70a3c296a182454ef116b50c458cca219032e7c5928315aa401ef0afc3cf679a62aa0c031de0af094c022ee95650f7d9a69c303b9"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_2(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "50162c1feea7ab594626a8fe9711c86745106ae7e14f378c"),
		nonce:           decodeHexString(c, "631def7bff27c0e3054071a4"),
		personalization: decodeHexString(c, "eb1560537c45a751136dca5c1672b006524234aae8da0302"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7ba520e5e707043967cea95168828f0a918d05e46db7838a"),
			decodeHexString(c, "69d548527c7f36226d339e64fe66746b0341f2c7c2a5b1d3"),
		},
		expected: decodeHexString(c, "d670c6c28adfbdfd8d5e55ccbcd2421098b3369078a9222080e737b8f6b9c0875316010f3417f9eb1e009fb9942dbd39fd7b504473063f4aeae5feae49843fcdbf15ce04cf2b0d367d925470b0051630c19ba65b2c55db39be08fe1c272f343fa95e51096e09fc20f255a8a4e8cd580e"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_3(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9aecda215824e5d271680ef252af5224024301ec79950591"),
		nonce:           decodeHexString(c, "6318b640058df9f89218001e"),
		personalization: decodeHexString(c, "11a33b3a3c7ded4accdf7b5b8b1b10653710abd111ce4db6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "06e4f817a340e346d084d7705de6c3c5af500dd65f65385e"),
			decodeHexString(c, "f3e26425719bd4574f29198a60d7a685bcc15e82d2be5c57"),
		},
		expected: decodeHexString(c, "ccce37199cf030ee149b04e66852ff5187942174854b41e64617c53793d679c9820855d022e0620603db0bf1a39da25c9b4ed5e6545784c0518dd0b8471090ee7d0d7f8a02d4c084291b57b82cec5d1633257a98b1bb3d4dae76405c989eeadfb32303725086d7a51b9c7ff19f274511"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_4(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b1b4f960a8229eb924b963d27b476e18592084a1dcfdd21a"),
		nonce:           decodeHexString(c, "373bc05e7b0b9a30ddba9e27"),
		personalization: decodeHexString(c, "20f41ca210bf19798181c3b9ab6e699929cc5e75eb9ef710"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b116d567417ffa5881b45abae9bdd2f99436bcab8dd7592"),
			decodeHexString(c, "6ba879343166cf4c3770e3d521afc957ed6c6af1624c21fa"),
		},
		expected: decodeHexString(c, "9eb9e267c76f449c22f9d2de68f4741d4676d269eadf60b9a8762c8e60131375b456b530bf2b4adac3976453af4e7edc6d3f50237a2774346f0c57c9ebb50979bb5147a114d55a45f375abd4bdacab53f9b5566af7aefe6e262fa1c2919b978ddc71385ad3aab88289e81dc796135ad0"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_5(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "79019616b51e0cdb2853b6037469ec5c4041c754847b90a1"),
		nonce:           decodeHexString(c, "ec784efa9dfe6971c1cc8e55"),
		personalization: decodeHexString(c, "7d395c2892559b4ae1b48dafc9e5c5d3c0ada4ce5face41a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "17c03ca3bb1c022a7d5542384eb533cd6c0348642d73fac3"),
			decodeHexString(c, "88d1ec5ae9dbf834c2702d369c2d1e9898e46b0b6304b31c"),
		},
		expected: decodeHexString(c, "15df85c25744fc8d7e7454f57dd09894bd31677e310ea83cf698521eb9874648225b804467e6538d99b36a3d9b9c83ee17fbc74502edaa1f7a81018226ca884868fb60239004b0923effa4f1e26b1345fd8bcc90d4c2ab6c7ec50142e493cf49d659cf90ecd54150dc0fd9703a292680"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_6(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "070a0106f92374d62f299758e69ae583f842ec72af44d970"),
		nonce:           decodeHexString(c, "0f093c2db27472a83e260826"),
		personalization: decodeHexString(c, "28f13ad3dec908373d08b33d3bde86e0a54812617ce6c09f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c7fc449d3f11377c71d9166c04ed1b0071857ef0d9fe8fe7"),
			decodeHexString(c, "9f6f91519e9a7c6843237797f1d227c5e9cf56a67898f3f8"),
		},
		expected: decodeHexString(c, "419852b29cd03c1f38d5fc09bf71f45587f2efae5edf856d1c99b66c83cc7f630b9317ee2ae9659ae1958d5dfded5ebba0a8a030e7d30b4028ab95d0b2e531a86c618cca87d0275389f9a0274312fd9425e5dee6f09def20b733bba07f07b8ea08f68d88d8ba3926a485494153fa4c61"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_7(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "64dfd94b910f10e4195ebc69e9681ce3ca4dfee16692aca3"),
		nonce:           decodeHexString(c, "631f4b1026996f8cfcdcf575"),
		personalization: decodeHexString(c, "076162ff8bb0a469c61af3dffd4f74df8cbd5b708e08730b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3fac3ecc0c79a92dc0d4a1cbb3a9a83d16245eee47ff0efd"),
			decodeHexString(c, "6b341ca2ef428b54a1ba9ba6fff4187884225b8c8c281c3e"),
		},
		expected: decodeHexString(c, "2c2fb0c6a281525c0261a32b5e786574b4e4b5d6f0d56c3fd25211722f4459dcedd912beb885429ab1041f8b372c343fd85937e18be07b0b50d376a431be83cfb6d17b05a9a8051247ce9a72010b563e7855116da31406fdbedcbb673b939b19facdbe0eeb2e8a9e8ba674e4a8a6d3da"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_8(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3d99701d332b175c838564569dcd34b939b26bc5115d38b3"),
		nonce:           decodeHexString(c, "f996619e6da316ff30654a11"),
		personalization: decodeHexString(c, "624fa1183b896862b3a91d97d3d41725a0aafaab37cee49a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7cce65dffcf965ee145980387129bd583ea14924c6a8b485"),
			decodeHexString(c, "32a96ba7c738919bc70ddaf7e56ede000581745cd2d03cec"),
		},
		expected: decodeHexString(c, "710222ee9e0842e124b28c181e4516251d6f9b056153f6e99317ae923fbbd7edfecceb88f6972367f9d0b37895f8aa3b770e27bddc880cfaa684ecfecab130358589cb39580df3d02a5a6314bcff18b42189f05f18118f48a28ef6d97311cd37b7982dcfbfd23d098208cc04c726e8fc"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_9(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "09d68ab04034c996e0e5e8777650d7e2a92275d7b53a5a59"),
		nonce:           decodeHexString(c, "f0f7e8cd33d58b343e80f51d"),
		personalization: decodeHexString(c, "f7bf58d397bcd6bcea308aec59efa4eba816e78bfc6e6e00"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0bc458e7a535e904327963615229f32e1e4d161ee5a169ef"),
			decodeHexString(c, "57f2ba3ca160046f4be60a9a06435f6563df283aeb2ca20c"),
		},
		expected: decodeHexString(c, "0691a9cc63f0f085333555830149f4cbd38c533c5f19f6da8e7cdfead5985d72995f4dfcbc2d0591e22272ea82d3771a2c0f0917ffda91615f1473675ccf8327128672853e2fba30d87ddfc35294031ff4407c3461fdb2285c08c13ab197f8cbe262a8def84832cb12d156bfe812bfd0"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_10(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7c2563d00e707f404d1b64671cda1d682a8b0e016915c5fa"),
		nonce:           decodeHexString(c, "6cb720fe416b4936f6a558df"),
		personalization: decodeHexString(c, "79a7332689b27c25d555a4da362247da22cfc4b050891b4e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b078de49137002c94594754fcd5e87d37dfb3ed443e0a534"),
			decodeHexString(c, "980a9816f5054a51a6d36dcc57638fb328be2511642c2041"),
		},
		expected: decodeHexString(c, "5da237db4ab10c582af1a414895e1123db3332641213fe2b98b6bc0fbd0bc5223d4bf9279e3c9d29cc3cfe87f2690d19f1ef1c59c81a362c1279231be9c4bc11aeec2b3850278c2de9811b450e60dc630303196bf6396f1a56ff9c253ba73af07aedcca761571e9e705d3eed8c07a77e"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_11(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "fa5e2962dd0b9865309ac777b82f71908b8b26e7d64a9d58"),
		nonce:           decodeHexString(c, "7ac03535459ad4c37a4dd6a1"),
		personalization: decodeHexString(c, "7ee7f75c5406360d50a484e0236e2144011701740238f7c3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "25cca4922fac43959104249cad6b5c70c703c760ac81350d"),
			decodeHexString(c, "5fcca95cca560af454b26f7790c9753a448fda278b4fb650"),
		},
		expected: decodeHexString(c, "230c6111b9e211f39f54d8d4a8c1bf0a01263654f13e8dfdcf1e7d4724e7f3232c5fa1c246eee098621d6068a794ed5579cc8c32340efb49da83c0d649ff508ce963c0ecfba1a17af432e35d95b153470fa0633ec48f7476b47a1be6f3c432209e1fab9f544cf6ce56d3dc58aae26c82"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_12(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "057fd61e010f1654f6de8e2630c9125a829089ee9cb75e08"),
		nonce:           decodeHexString(c, "f302d50c96452760b2300db7"),
		personalization: decodeHexString(c, "ef35cdba4133e492226f777c6549582b946a55c7f33a801a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a2bad98d0ef95eda7854814d4125dde5cbceda380e000513"),
			decodeHexString(c, "65c7fad6b33db5314b2a5677e08f2b82fd5b32c82dfb87d1"),
		},
		expected: decodeHexString(c, "b62867a85e60a8e56910f86cae706f601e8af19e774fbdb1fbe6fad540bba5cef4b6ed3dc30d6f1431d9b39800112c271ff96a3cacd596cb246deea7a19a70d026254ea4a741b6fab456538da412cb0de7de93d67cbeabcfcbc8cd7ae83cd97dbaa6f77be17e79be36e563fabbdacd77"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_13(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "988cbc2e52b0a36eab9706c7489fae942d2ab0f22eaf0305"),
		nonce:           decodeHexString(c, "9d1ef6c55654a18bf23a208d"),
		personalization: decodeHexString(c, "58b59b66d938016543dd33df1ca9297f9d88fb77ed6c482a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c225736dbe448c61ea7160fe46c93b1ea1ee1e8b6ca4b3ba"),
			decodeHexString(c, "4f641f932289a3a71df6fccc3ed27103eebbf6e350c58d9c"),
		},
		expected: decodeHexString(c, "482b711fffd2002377d900ae25a0feae2e5e6e8e4461bd894b68a9ca9dbaaac40df905585a7e1b5da1bcddaafb71f1fc2091b9c690442f32d7aac8299cc9e982d596a160844c9294424b68772da017b2e136a40db3cd6b6261c6b57061dda5e98730803026f35c9ef2b20f230f9aa48e"),
	})
}

func (s *drbgSuite) TestHMACGenerate27_SHA224_14(c *C) {
	s.testHMACGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a1c84e56a24acad0287f56a89ef64c0f2e954e368394eda0"),
		nonce:           decodeHexString(c, "80a078b026818b775885dea9"),
		personalization: decodeHexString(c, "9b2df6661739c99a27e4a063a838be615b4cb5b4afd118ed"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c9aac7bd9f15385facc344dedcfa754bc9f4f30277a3555a"),
			decodeHexString(c, "42de701acf5622b30e7672bf7115043a9912c1758c1b316f"),
		},
		expected: decodeHexString(c, "972ccd5aa60966bac39aa9c891c7c513244efbfe3446fde6806cee991851f1e4b3d4a4a0c04b57242deb4f53d27040879562fc5b32621b46a642f3c84063c5195faf9b78ed92145821ae554d58325b03d60e11461adaa8ac87876559e1cbe47f7b5c33a8311294b0e54a44c97d4d2c9d"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate29_SHA224_0(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "57ed9a49fba2571876acf0dd2bc02b89c5580ce818441551"),
		nonce:           decodeHexString(c, "488bb9f803f1fe8f5bd3fdb0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "af56a27f7cb757182919b32bbe8e04476e89458122244fb6"),
			decodeHexString(c, "a4e6fb9e9849521942f6ebf0dd8be54ac527834681732820"),
		},
		expected: decodeHexString(c, "027bd4ba165cd02c702b29a091a3a41704209da5ca6eb8289abbb6d7d7b6ee3590111c17971f7c527dd193ccee331c4e35e466f7af854fbc6d1af36c9a2e1f402c83a8baa1c481dc7702fdadd846760d5d9748c7747e6222822d322656b0787e4b0d1505d4212f302aa296588b2eee33"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_1(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f97eaf2cea50200708716bd2b231896ba0844b4e371efa72"),
		nonce:           decodeHexString(c, "f10beae03ad82e7bf049837b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e5fff751d7a3d606ffe1e0f2d9afe25c8d91b5d830dc6971"),
			decodeHexString(c, "8f0606eeace7453bde86feb1f75de6ac185261bd892d333e"),
		},
		expected: decodeHexString(c, "a9256a7271dafc6509dd7f384469a76aba8d2f4fc72ab4da2e3925c744f96e3625e954dd27ab4050b535cdb8cf91da0811fc8b19386e850ca4ec545e3a13aca725a3af6592de9ec99c1d427d25ac044dc29b041abebe511011f6facf447355c1af072f01b4cde8509f446f2e12b91619"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_2(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "8cd5d75231ca8e4792c83d7fce6f88cf08f5ca6e5993ae84"),
		nonce:           decodeHexString(c, "d14a6b389365c5cdad41f80a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "502cdc2c3644d478d1600da8f1c5e8bb63b63baea6de1a09"),
			decodeHexString(c, "36fcb7bcaee267608d3a8184f5c0851c7ba1d8324bb7718f"),
		},
		expected: decodeHexString(c, "b7712adf83aff24bfec8f752160fcef6c2a0b91778932c86b799dd18c1d9ddb6234c16667438f98b7ab9ab56072ef02d1beed2dc7a31a4ae75c9ff0ee8791e1783ebf121e3178dd9bb67648097bccb7225aff421369ffd96eb124fffecd03c9d2f7a435755dd3e11f5aa4d95beb9a665"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_3(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7a8a818fb69ac1eacf63b19967e49f0b7547775f5223d248"),
		nonce:           decodeHexString(c, "8d02f1ff4e39f5f282702b71"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e21c1f74db73d31df275ce1c8052fc3976abcffb47aa5fc2"),
			decodeHexString(c, "4f5047dad6802910e7b2d6ec22002508c611456bc758cf92"),
		},
		expected: decodeHexString(c, "04074a749d03cb6849ae7125cc4ac98f635b283732e22a4807b0681e558f471d9757e97cd33739b49fa3634cee0a6f7475c9e4d180a576406ae1112e8e711f581743a8b8db681867afe238a61b3ed6a941e64dba255151de2ffc30febb11a5c0bf042b672948cc5b78a58af48e7655ee"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_4(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "144128dfd03a9e5710c7a87e0612d5676d85e6e698cc955d"),
		nonce:           decodeHexString(c, "8815d69679f4af3360839f63"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f46a0b8d495a26093620d31d048be723c3cd362f0822960f"),
			decodeHexString(c, "1606abb94a27dabba952e0528cff03c53052d70988321b2a"),
		},
		expected: decodeHexString(c, "d9516de14de47c0497a615f8a2f24638464e275ff098f412f73fc76ebb856f8c38fc4ffd028882ae7a6b93f3dedcb2ff427bb37572bcf1f85975cf15da7a791def2ebb1522b96c85e2ccfdcfbdad10fb82ffd8bc255f822eb0b483d2b00ac4c61c6eae2b9fc0ccaa2599393bf9f7b762"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_5(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e7f51ad21fbdf706d26bd2103890d8ee5827545468a48c51"),
		nonce:           decodeHexString(c, "f86f36d35d2d9a1690634c55"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ff6052c815247cc6414c0c1786462a3e8604d7dc73a7cef0"),
			decodeHexString(c, "096ee77eb9ab1394e5cc1f9b9a98974256432a211dca9e51"),
		},
		expected: decodeHexString(c, "c61380c7f75081b8a3d5782a5fdd92b82a9967cd278b79153c478f73e9b88b9a6c669f02ef0e6ded7a3e4a43db39cd68cf4129c5cd8c4eab9776d90617d51cda2cf26f4884c1218552f2087b67af531c1b7f3aef5dcaa22c7bb5162ff999d81fc69e1964561ad3a07b9fa6844ed49b13"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_6(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "6e3134d888f819cf669d8c92861346b2463511e7cf7f62ad"),
		nonce:           decodeHexString(c, "4438ea59fa6152be195106ea"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e5dedd87e5e29bb24ac2e61cc5c65148fe3df609de3f342f"),
			decodeHexString(c, "1d11f10e5fc673406a399fdf9189cbcb6751617baf4ad5cc"),
		},
		expected: decodeHexString(c, "da1d8418abbad9dededcc9332fd405e649b7238def5313c7b9a6287eda75df3fde1851ad1f4ea99e0e80958373c6c365a19ac3679e15cc07f704a925c76fc78405ad78bc2d193dff60ba57f4e2d715b3be2d7f11102751f300b7200b31e5221b489b6f736fe042e283b5cac173b9451f"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_7(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "d90dc1778098c574e2fbc186b203cb8cc017ce8cbd313749"),
		nonce:           decodeHexString(c, "caefb6f0b71739bfa7aec315"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "925444c097b593a33d53d08a29b5cbcf785642c43a6ec875"),
			decodeHexString(c, "eb838df62496cd815efcec2293d131fc6b77855998721613"),
		},
		expected: decodeHexString(c, "8dc7b7567de8ff7a1a375a4c8c621dbf3ea360e63e081c66a7a86cebce2d88cee483657217b21d023e44fb1252c8c83de4a74249e00879d60c3a357bf1c13dd9a1a167c5f1c012db386646751e4c35675c4bea2bac2a7eee550cd8e759295e523279c3eb88a85e63c85e509c029152ad"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_8(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "eba72f4fd8f29999f93d0407cc412760137dd5f483bc985f"),
		nonce:           decodeHexString(c, "c9820bb038d062b396aaf824"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "89bf37e6a1b5500144f29798eb72f1dd4a976c855cb41c3f"),
			decodeHexString(c, "717a3811f9e7d687a02b90fabff2c7e947d344f43e49ed2e"),
		},
		expected: decodeHexString(c, "6bf825e0be465be76cac3d7c94c908cf9a880a955da7b0c217a1aeb3e1460e5003b5d8a815defbf8f6a896f9395b201a9bce861409e99123227da146aa1d864773481f63aba0c19e6070428ba6a5c05cb235929abf65bfb4a478643744e4afa6aa1530459f21c9cead4843cc9a330d02"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_9(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "56e2c5f09d263e60d797c30945d92df3aefa0d8ce29a273e"),
		nonce:           decodeHexString(c, "91127569f164e04c1427b2d0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d6a0db341d30ef5988c9e6fa7b444f661aca4ff963e94645"),
			decodeHexString(c, "43d236a9d17fb6cff6d492eb1c82d2606f9c622b1618bebe"),
		},
		expected: decodeHexString(c, "2bda1094866b868bf8b100b3ca7a3ca043533a665ac4b1c63d13dc198d79fbc1d919729e6427a692d5b15108ed6401235ae286fce4c2c531337d378bc4a631388471ea83dc027eedfce1ce8311891636525d0104a8d76eb9df8e47b8c64c1eda0c773d8840dbc19ff51bcdc416e77002"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_10(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "8aa38e5726c98f290dd015d9087132c5e16dc98eea740ff8"),
		nonce:           decodeHexString(c, "ffa02fd0693919009200b02f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "67d976b2adb1d83e950442d729411924abdc3fbb761c7cf7"),
			decodeHexString(c, "c2d44be44bd4a4440d459ba25d767777edad914427825873"),
		},
		expected: decodeHexString(c, "8d19b2a51412ee64a32a2233657e16715cfcfd2704c4a037c4e30efb0ee7f0c191a8239779b58d5779c342dd44462682cb06db8a09380ec188b7039b1a20441f6c505b65d4f92e31e0bdb3bed1305f1e3b4fb45fe97e68579f140fbaec6c6102058c4ac7f35b562602dfe5cdce2d3cc7"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_11(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f1b8973320e94d0f142f26c497bcff03e934b02abf151a13"),
		nonce:           decodeHexString(c, "3defcaf4a83b45bda6d73251"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3e6c1264d8d62e3dca2e4dc3fa7407f42c68db0b81df6763"),
			decodeHexString(c, "d4195a1edde9ea61da98cdc2615fbba972f281c9987a29a8"),
		},
		expected: decodeHexString(c, "c2a184935fd1b02602a1b68b5046d894a5ad5d66535afc55ed1b10a8e716e7b777410c30517b294250d3cd8a1846bed1d097ae60a6c837210fdca052be42d6c4e4cb5b3ca6ed4f9e69861661d3346eedd9515afe7916edfe7ad9b5cf1dec4aee962d4547039d53e5e32a16463f7d7fe9"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_12(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "de70f82db3356421f41b6658e0f9a7a3cac77de47b7350f6"),
		nonce:           decodeHexString(c, "815776b7591f0d222259030b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5a98a404604feec43818b62a5a917054915f02b2744fb942"),
			decodeHexString(c, "42f5e90130281ef9d547da757bbaa496d15b574e170b54df"),
		},
		expected: decodeHexString(c, "0534e51c3cb4b7a4c2936899d4be18b300e6aa28f6c7e8690f6647f8fa089e97c66dae0b37a4cc03a3aa4e292037efbe2bcd14d4204610499faf43d40d44ec9f149d66fc58d9785aafc51156abf13f34015d8d189bfc0f1a06e44fd45a3a30251a9495a096c19fa01e0252065f820872"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_13(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3c46f1ba7201b00b9780490818edefb0de90c4f92729e064"),
		nonce:           decodeHexString(c, "57e98935fd7b1d57925632bb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1b305372315f9c2c97b9f55dc955e400fc192a179bc48d59"),
			decodeHexString(c, "3f62ad9fb61380cece220ee03739a7b060f8fe64e35db483"),
		},
		expected: decodeHexString(c, "092c0b0a9291f782fabd28b82137294d2ccb3198bdaad49b2ea34b8abcf0f5618db6baed9b821eb9fc3598ff44b57b2a0ec113f3110a36066e964f2b403135cb248dbe127625e5ee3252abe5fd2c2168fbb16436986b984f46683b68ca23bd847dd5b9d6ba875df7a92d367e00895268"),
	})
}

func (s *drbgSuite) TestHMACGenerate29_SHA224_14(c *C) {
	s.testHMACGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9a92ccdb098bf070241207bd861d895a196d7ec4931c5528"),
		nonce:           decodeHexString(c, "aace9acf257721de5c9ea06c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "49a758a4e0a8ce69aa2e5f9b7940c6fbcbfc4fdc91165e4d"),
			decodeHexString(c, "9c8ebc02c3d92d33112a15747b6367b8d6db3447cb9be2af"),
		},
		expected: decodeHexString(c, "70cf10825dab6c1abcc1532a1b2bccd96f0638d02eedb40a7ebf97093f5d0295b6bc74d9e48290ab39260d684effcb401427a4ca62b971e5a31f06c14a9f8e3851c3e79dfe129ecf8a8e185ee58667e2b692474a0d5f0a39f9d794adf1cd71c1266563dde24dc944661acbf849fe69fa"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate31_SHA224_0(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "6e4d2940460dfbd41e1c73042d21f62d633592c44e83edce"),
		nonce:           decodeHexString(c, "365a5cc795f7dab209136655"),
		personalization: decodeHexString(c, "c851f06ff7019f42a82ae6676bd40564d4f9bbdddb80a195"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1eea9031fb42e7a502836aa6137f05d493333d6b6e3cb863"),
			decodeHexString(c, "b234cda369720bcfe49d09acf7d90f8a8d468d5f3fbd95f8"),
		},
		expected: decodeHexString(c, "2be579cb4182fe2a6581da62357cf15d210a13c0319a19547f908ba85f4323822c877a1ab4a2db438adfb53a77ba61b56b392feaa48d3a4026fcdd4f9122da04c36844a5390f0896b637240529e8338760f50ac6a5c97e69730dc70193e9e2a587c7d0c8f60b9c3c5ca1d2a1835ccd4f"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_1(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e350ff0d2dfc7287bceeb35890a8c15d38dde52b619ad874"),
		nonce:           decodeHexString(c, "276d551d78fb5fd9ca975733"),
		personalization: decodeHexString(c, "26082fcd908f3abe2aa84d994ededf8644074f4533b0c30d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "82deda3adf693b1fe188fee404172fe7f04e7e5006710cc6"),
			decodeHexString(c, "30c1b7ad057fc6aa6d88b8458b108fea96fb0fbfdd40f77d"),
		},
		expected: decodeHexString(c, "0503dc0006ccb729fa9ed9c8f126504d7b61a42a3451cbb6f5b0df877af083083f1a0caeb07d770c96be4a98fdac5dad75c2bb6ff3eef5a76268b4080b3b52666cc476170b17b96610da63dbcc8183d966fa1cb608f393f87c09ef37a0976fa88fbc2171f82631964d17722091259a8c"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_2(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9e43d636e8546d2b308d1b8d63b8a2b4b48d792d74f75d78"),
		nonce:           decodeHexString(c, "04d72917fb0cdb3b04685aef"),
		personalization: decodeHexString(c, "0ebab05bca590442a477decdf924b72ab69a29fca394db21"),
		additionalInput: [2][]byte{
			decodeHexString(c, "83ff05444ed46476bd7edb540943c2d7d6da1ccbff1be85f"),
			decodeHexString(c, "026ac29b358bd73ec4e4fd25c2ed282dd355716082136d65"),
		},
		expected: decodeHexString(c, "f4c39d38ec72d5bc8055f2987a7f9027d0a208ec54aa80db92aaac6c5c95984f34c6d546be242c4705bb61a1e9c52b45cb7aa3aa4ac9d9fc20fb37d3ae3a826761035e6becb79275126e1b85470824a1bb8857b4d54255783e80ed6dee3aa9e0417717ddfe694b79da325c53a66f4027"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_3(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e7dbc930f11c47cad1c811b43f1edb1d101c2754de24bf9d"),
		nonce:           decodeHexString(c, "5b3bdfbbf1e8cf7f14acb1b3"),
		personalization: decodeHexString(c, "4355af238b6c7bb775c5330f78c17462348ebd258d0257bd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5825bbee0a7289c7e1d4849f0a5c4876946daaf0a2c5828a"),
			decodeHexString(c, "d769c70dd273146606de46a518af3a8313a23b1d13efba62"),
		},
		expected: decodeHexString(c, "e2ad257cb76b72edcaa0be8bd98cb768ed88387a30acc5210ac62ffe4d655f3c1b12da9d43104a0c09c48a6410baf9744ce26291f2f66668532438cf6fd21b5fa2caf9314f452f8d0170cafadf450a8916f3f95a65997c439fc1aca0329df2793e04f3ff53e57df913329c74a2e078d0"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_4(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7252fc8ed77209be35d42b771f5007bff64ca5fa84f8eb95"),
		nonce:           decodeHexString(c, "cf279739cd16cccb67acd2bf"),
		personalization: decodeHexString(c, "dc303e18ca804ab2b496bb45cf7ca9c524302d086adb3548"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2ee0a4d9eee2a4ca197e5a43de6b8ab2f29838b980cb0a42"),
			decodeHexString(c, "2d522785f489fa25913a5760f92551f3218c2591a8ba99a8"),
		},
		expected: decodeHexString(c, "065453e6406da76a74064afdb6427145bfb7af78f727006fcf98935a7bd49e7abbdbb971e3003790b3813f702b9c7d2126afa2842e592bc3ae97da02d0ee65ec7388d3937d10367e46abb204dbaf132746c14146fd1795d4390edd9e861b595a7b059426a049fc554928b4e28b9cdca3"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_5(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f3b4ea208a73b1e7cd50a69eabbc0e87c9199ead23fded93"),
		nonce:           decodeHexString(c, "0de6252b958c13f09658d31a"),
		personalization: decodeHexString(c, "a1486d7937f1b1689d2cdeeffe889efff4b083e31cf32cf6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "eba813f6d050984235906af01b1ef86347a8bb4ec013949a"),
			decodeHexString(c, "94d64a4be47b0b817889033911a058f7d35486359b09831c"),
		},
		expected: decodeHexString(c, "1dcb678bdc3fce11c7a1298fc1d5ddbb3d338280b1e8f0b769e6e2373880cd3219fa51d103ef5ab1b00027b9d82a5da47aa1cf6dbd8aff93a7835bb99ca3bf9989ac6f7f25051b6a6fc3991df95cb24c2f1011296f2793ec08a84d50d2ac9db92c0e17c13c96db3433c28b3990165a18"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_6(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "67ca2dc211e366b804a09507909e414173c5969809b6891e"),
		nonce:           decodeHexString(c, "9e02c896c54dac88bb7d203d"),
		personalization: decodeHexString(c, "2621394152ebf2b2cdad3589bce8fc6f1e1e368fdebaf33d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4db685115fc893e24a913f2b68a8c01ec21bcd7910f67fd1"),
			decodeHexString(c, "1a4114929206b34d25883c88c1ab7d6aaac1a8e2143a959a"),
		},
		expected: decodeHexString(c, "77c5b6ebdd3801e3f53344e19ef48e06e7a1be24a553c48687e943928154494c07fe4439732629115324e7d0443afd360c0578e3917a66a2534f52576662b0b7494e7620d24ec00491e79aec4f1ee1f847ddc115399504a0ab0e51213ee4c4189273d5f8969246d3f0d823e00d665ae5"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_7(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0f00a5e8745b3a1b4f94cf750984b096d6b009b7803b7c2d"),
		nonce:           decodeHexString(c, "533a354ffe79aa47264946f4"),
		personalization: decodeHexString(c, "9111a440fdf9bf9d35112665be775f911c03bdaa88d91319"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6f2421cc1eaa8337bb3cd46e1258ce746a36f23f3fb828b2"),
			decodeHexString(c, "93a6e1b05e44cb09d5ba34731f9db7d813083cddb0143016"),
		},
		expected: decodeHexString(c, "11f174162271d85eee49cbc2abfd21ccf5767d3d7c496d8ec4d05e953576948dc5d5607a92c950dbcce1cf9bee799d21fd80a79699c5f8d48d45541184da907ea8e558df51b2841f2bc6b3cbe21b408b2efa67ea46cca6b6f8d0a0004953c542127d0aeda2c30cb9846b261f07efd5c2"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_8(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "27bee9d9c7dcf0706048a9ff4e89a8a543a6176e1165f018"),
		nonce:           decodeHexString(c, "b290f7fc0eca4967fd8b9b91"),
		personalization: decodeHexString(c, "b827439cd5b23ee1d2a59b74338f5630ee8fce0d872e1c66"),
		additionalInput: [2][]byte{
			decodeHexString(c, "222157e5488f3b73773f424a243c879184fa178f35c01ddc"),
			decodeHexString(c, "ba1c25441c4c07bafea1c0a33f9a80d5dd121bc6e56fd3c0"),
		},
		expected: decodeHexString(c, "25977ef6eef6e05db9f7fb78512d43890bb85be9567e268439cd9a296ed863c9f7cdcb9153fc0e35c5d3c135f2cb38c5247cf7fc69f1def95e4319644578492b8f10c5158e3eedeea23037d1f2043858daf7e508cf72125965f406ae8e646b663ea4173a8bbaf8bfeea829bf0d157a26"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_9(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2834539e3fa297082059e7b26ebee3ff38fe12756f044da1"),
		nonce:           decodeHexString(c, "fdf297a9bde8d2c507df4b77"),
		personalization: decodeHexString(c, "3c6602a01cae08d5eaf6847394e10112f72b723c49e47701"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1b987eb9b82aedd4c2ae942335c13c75d6389d6f4159f7cc"),
			decodeHexString(c, "fc7ab0489cc9ebd563b262bea427b82c2da2eb754c7a0b56"),
		},
		expected: decodeHexString(c, "03a8c8966c47075bc7d9c6859c8891b9face30d09b6f7e5c4e108391db5c271ec55fd4f3d91a9e7172bf352232c5e4f92816f13457a7ae09d1bfb1fa2c34fd229cea72707d6b74190ebb4bb1d1d076a08506d25d123257c42cca749eb613d430729daa2c8a9461495d86a6539a222e00"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_10(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "95e91b1792b10fe833b644f5235c6b90791242570e67666c"),
		nonce:           decodeHexString(c, "529b02bccff35643134915a2"),
		personalization: decodeHexString(c, "109b4317810b510ca5b318416d103b334f156c6670a16d98"),
		additionalInput: [2][]byte{
			decodeHexString(c, "db2dc2227a211da34c58b977e6ab45877e641751287f5fc5"),
			decodeHexString(c, "8c85677eb8b70cd69ab5f8ad7bc26025e5971d13caf92508"),
		},
		expected: decodeHexString(c, "757643093c0956fb4e3ea5e90a0ca0ddbe1fcba6a5de312701900a1d9e34c8bee72a2029e8a5a59d25ed2105ef36dfa58fbf91dee667d31d9981d1e3bbaadd1c5a4abf40cf7e232d344bcd44d74efe79e6b23155211197c3b6cba26f4e145948ab1b8be0d999188184a0f3a275c1dce0"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_11(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1a5884a115d4ecb53f95b044ff1e46039d9e4293f0992f4c"),
		nonce:           decodeHexString(c, "7bbf646f678a09e762649a7b"),
		personalization: decodeHexString(c, "441995088e01a80ab65449a091c053b4e0c1e48d27c88db5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1ec6df1a1516e666de0d83c53ca726b19823ea77459ade8f"),
			decodeHexString(c, "c3131ab7a7ad85fa9cdae86f34a79584c19a9099416d3e43"),
		},
		expected: decodeHexString(c, "620c8ea5139338b809d6f2f5f6420e39efa2624600d4a577457365c72e7b87dcd891e7b4e73fb1c27c423511a70374b73425f25b2c86ee760ff86bb49a43b3f984a501627a0f6b751077134652ab19951073f249b3151e572ab8d65801f4a5aa88289dccf5b9933f73a8c847f7b3a86c"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_12(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2547200c9ef949a3d50326e987162f40f7dbaa5f8d21612e"),
		nonce:           decodeHexString(c, "abd90db2b48a25d576b9e773"),
		personalization: decodeHexString(c, "23c858d23feb4778c66d1e7109acca9080e9a0b08210bd49"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4e57767fde19a96ee237bbc7e28f48c4fdd048ad735d218b"),
			decodeHexString(c, "0a380d485a4c3accffa0d08304cf502530bbe3dca1099326"),
		},
		expected: decodeHexString(c, "e56547912d6a028e59577fdeb26c5e69243cac13a3798b21c79749607ecd255e4aa403cdd51d0d717aa8902716f7fdcb1fa0f3c382651578e5a6c6bd568a6e9ecec6de7df5f7888ca9a007ccf48dbceaf27061a8e66e65a15158c26336e311d6f5eb496781c014bdc8420dbda6661ffe"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_13(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "46c98e4b13b41118b76f59e336c71589c93bdb09fa9b2828"),
		nonce:           decodeHexString(c, "fe9b134a2fd031d93d0c3084"),
		personalization: decodeHexString(c, "2b4e017f69170a987effc607b71a360e5d9ad3a7bb3583ff"),
		additionalInput: [2][]byte{
			decodeHexString(c, "968512e2d6612878b68e2716e7fff3d43965c8a2c7f33c7e"),
			decodeHexString(c, "d229b9445b5f07c690ea1b0e4d7fdd740d464ce501ebf47b"),
		},
		expected: decodeHexString(c, "1a685f050da9ad94dbeb7bb94a73c42475d914ea4b3a04b23bd816c88ef50a123a361c6b1ee5a318bba7665f37566e764a5054c18014e5ffe2aa72aa34c5f41cb49e75cfa1440af9156576dcf181d95c83af8b042ea74c12a3cc6d8ca63a8fe1f71cae17ccc8768bbd2c3bee147ab460"),
	})
}

func (s *drbgSuite) TestHMACGenerate31_SHA224_14(c *C) {
	s.testHMACGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "73546ddd5480d1f70142ad1def9b254f04b7970d056bd160"),
		nonce:           decodeHexString(c, "08779f86558a964cd8ad3b06"),
		personalization: decodeHexString(c, "e0475a33b78746e89b835a353fb294ca4c2c9d2ef861a6be"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a58757b98280d90e84d6cf4e2fa89c01a9e6aad22d6cff0d"),
			decodeHexString(c, "a3f5de1ec6d0ccd39fa153899f0c1a414106a2aa182acf31"),
		},
		expected: decodeHexString(c, "b1797707f1217d81c8463b44957df350dd139073b056c50d1c912fa111f9cb488bfb7d2ec6faebd078171cd6b71171ae33698ff96c7225d7fd36ddcfeb2630464974d12b3e03877bc73ce1a2f89aea7ff7ddc8ac85708b35dd94d3972875e2d3e7237ec33871e99301202b52e2ff89db"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate33_SHA256_0(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d3cc4d1acf3dde0c4bd2290d262337042dc632948223d3a2eaab87da44295fbd"),
		nonce:           decodeHexString(c, "0109b0e729f457328aa18569a9224921"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c311848183c9a212a26f27f8c6647e40375e466a0857cc39c4e47575d53f1f6"),
			decodeHexString(c, "fcb9abd19ccfbccef88c9c39bfb3dd7b1c12266c9808992e305bc3cff566e4e4"),
		},
		expected: decodeHexString(c, "9c7b758b212cd0fcecd5daa489821712e3cdea4467b560ef5ddc24ab47749a1f1ffdbbb118f4e62fcfca3371b8fbfc5b0646b83e06bfbbab5fac30ea09ea2bc76f1ea568c9be0444b2cc90517b20ca825f2d0eccd88e7175538b85d90ab390183ca6395535d34473af6b5a5b88f5a59ee7561573337ea819da0dcc3573a22974"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_1(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f97a3cfd91faa046b9e61b9493d436c4931f604b22f1081521b3419151e8ff06"),
		nonce:           decodeHexString(c, "11f3a7d43595357d58120bd1e2dd8aed"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "517289afe444a0fe5ed1a41dbbb5eb17150079bdd31e29cf2ff30034d8268e3b"),
			decodeHexString(c, "88028d29ef80b4e6f0fe12f91d7449fe75062682e89c571440c0c9b52c42a6e0"),
		},
		expected: decodeHexString(c, "c6871cff0824fe55ea7689a52229886730450e5d362da5bf590dcf9acd67fed4cb32107df5d03969a66b1f6494fdf5d63d5b4d0d34ea7399a07d0116126d0d518c7c55ba46e12f62efc8fe28a51c9d428e6d371d7397ab319fc73ded4722e5b4f30004032a6128df5e7497ecf82ca7b0a50e867ef6728a4f509a8c859087039c"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_2(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0f2f23d64f481cabec7abb01db3aabf125c3173a044b9bf26844300b69dcac8b"),
		nonce:           decodeHexString(c, "9a5ae13232b43aa19cfe8d7958b4b590"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ec4c7a62acab73385f567da10e892ff395a0929f959231a5628188ce0c26e818"),
			decodeHexString(c, "6b97b8c6b6bb8935e676c410c17caa8042aa3145f856d0a32b641e4ae5298648"),
		},
		expected: decodeHexString(c, "7480a361058bd9afa3db82c9d7586e42269102013f6ec5c269b6d05f17987847748684766b44918fd4b65e1648622fc0e0954178b0279dfc9fa99b66c6f53e51c4860131e9e0644287a4afe4ca8e480417e070db68008a97c3397e4b320b5d1a1d7e1d18a95cfedd7d1e74997052bf649d132deb9ec53aae7dafdab55e6dae93"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_3(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "53c56660c78481be9c63284e005fcc14fbc7fb27732c9bf1366d01a426765a31"),
		nonce:           decodeHexString(c, "dc7a14d0eb5b0b3534e717a0b3c64614"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3aa848706ecb877f5bedf4ffc332d57c22e08747a47e75cff6f0fd1316861c95"),
			decodeHexString(c, "9a401afa739b8f752fddacd291e0b854f5eff4a55b515e20cb319852189d3722"),
		},
		expected: decodeHexString(c, "5c0eb420e0bf41ce9323e815310e4e8303cd677a8a8b023f31f0d79f0ca15aeb636099a369fd074d69889865eac1b72ab3cbfebdb8cf460b00072802e2ec648b1349a5303be4ccaadd729f1a9ea17482fd026aaeb93f1602bc1404b9853adde40d6c34b844cf148bc088941ecfc1642c8c0b9778e45f3b07e06e21ee2c9e0300"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_4(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f63c804404902db334c54bb298fc271a21d7acd9f770278e089775710bf4fdd7"),
		nonce:           decodeHexString(c, "3e45009ea9cb2a36ba1aa4bf39178200"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d165a13dc8cc43f3f0952c3f5d3de4136954d983683d4a3e6d2dc4c89bf23423"),
			decodeHexString(c, "75106bc86d0336df85097f6af8e80e2da59046a03fa65b06706b8bbc7ffc6785"),
		},
		expected: decodeHexString(c, "6363139bba32c22a0f5cd23ca6d437b5669b7d432f786b8af445471bee0b2d24c9d5f2f93717cbe00d1f010cc3b9c515fc9f7336d53d4d26ba5c0d76a90186663c8582eb739c7b6578a3328bf68dc2cec2cd89b3a90201f6993adcc854df0f5c6974d0f5570765a15fe03dbce28942dd2fd16ba2027e68abac83926969349af8"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_5(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "2aaca9147da66c176615726b69e3e851cc3537f5f279fe7344233d8e44cfc99d"),
		nonce:           decodeHexString(c, "4e171f080af9a6081bee9f183ac9e340"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d75a2a6eb66c3833e50f5ec3d2e434cf791448d618026d0c360806d120ded669"),
			decodeHexString(c, "b643b74c15b37612e6577ed7ca2a4c67a78d560af9eb50a4108fca742e87b8d6"),
		},
		expected: decodeHexString(c, "501dcdc977f4ba856f24eaa4968b374bebb3166b280334cb510232c31ebffde10fa47b7840ef3fe3b77725c2272d3a1d4219baf23e0290c622271edcced58838cf428f0517425d2e19e0d8c89377eecfc378245f283236fafa466c914b99672ceafab369e8889a0c866d8bd639db9fb797254262c6fd44cfa9045ad6340a60ef"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_6(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a2e4cd48a5cf918d6f55942d95fcb4e8465cdc4f77b7c52b6fae5b16a25ca306"),
		nonce:           decodeHexString(c, "bef036716440db6e6d333d9d760b7ca8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "bfa591c7287f3f931168f95e38869441d1f9a11035ad8ea625bb61b9ea17591c"),
			decodeHexString(c, "c00c735463bca215adc372cb892b05e939bf669583341c06d4e31d0e5b363a37"),
		},
		expected: decodeHexString(c, "e7d136af69926a5421d4266ee0420fd729f2a4f7c295d3c966bdfa05268180b508b8a2852d1b3a06fd2ab3e13c54005123ef319f42d0c6d3a575e6e7e1496cb28aacadbcf83740fba8f35fcee04bb2ed8a51db3d3362b01094a62fb57e33c99a432f29fce6676cffbbcc05107e794e75e44a02d5e6d9d748c5fbff00a0178d65"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_7(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "95a67771cba69011a79776e713145d309edae56fad5fd6d41d83eaff89df6e5e"),
		nonce:           decodeHexString(c, "be5b5164e31ecc51ba6f7c3c5199eb33"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "065f693b229a7c4fd373cd15b3807552dd9bf98c5485cef361949d4e7d774b53"),
			decodeHexString(c, "9afb62406f0e812c4f156d58b19a656c904813c1b4a45a0029ae7f50731f8014"),
		},
		expected: decodeHexString(c, "f61b61a6e79a41183e8ed6647899d2dc85cdaf5c3abf5c7f3bf37685946dc28f4923dc842f2d4326bd6ce0d50a84cb3ba869d72a36e246910eba6512ba36cd7ed3a5437c9245b00a344308c792b668b458d3c3e16dee2fbec41867da31084d46d8ec168de2148ef64fc5b72069abf5a6ada1ead2b7146bb793ff1c9c3690fa56"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_8(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a459e1815cbca4514ec8094d5ab2414a557ba6fe10e613c345338d0521e4bf90"),
		nonce:           decodeHexString(c, "62221392e2552e76cd0d36df6e6068eb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0a3642b02b23b3ef62c701a63401124022f5b896de86dab6e6c7451497aa1dcc"),
			decodeHexString(c, "c80514865901371c45ba92d9f95d50bb7c9dd1768cb3dfbc45b968da94965c6e"),
		},
		expected: decodeHexString(c, "464e6977b8adaef307c9623e41c357013249c9ffd77f405f3925cebb69f151ce8fbb6a277164002aee7858fc224f6499042aa1e6322deee9a5d133c31d640e12a7487c731ba03ad866a24675badb1d79220c40be689f79c2a0be93cb4dada3e0eac4ab140cb91998b6f11953e68f2319b050c40f71c34de9905ae41b2de1c2f6"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_9(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "252c2cad613e002478162861880979ee4e323025eebb6fb2e0aa9f200e28e0a1"),
		nonce:           decodeHexString(c, "d001bc9a8f2c8c242e4369df0c191989"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9bcfc61cb2bc000034bb3db980eb47c76fb5ecdd40553eff113368d639b947fd"),
			decodeHexString(c, "8b0565c767c2610ee0014582e9fbecb96e173005b60e9581503a6dca5637a26e"),
		},
		expected: decodeHexString(c, "e96c15fe8a60692b0a7d67171e0195ff6e1c87aab844221e71700d1bbee75feea695f6a740c9760bbe0e812ecf4061d8f0955bc0195e18c4fd1516ebca50ba6a6db86881737dbab8321707675479b87611db6af2c97ea361a5484555ead454defb1a64335de964fc803d40f3a6f057893d2afc25725754f4f00abc51920743dc"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_10(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8be0ca6adc8b3870c9d69d6021bc1f1d8eb9e649073d35ee6c5aa0b7e56ad8a5"),
		nonce:           decodeHexString(c, "9d1265f7d51fdb65377f1e6edd6ae0e4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "da86167ac997c406bb7979f423986a84ec6614d6caa7afc10aff0699a9b2cf7f"),
			decodeHexString(c, "e4baa3c555950b53e2bfdba480cb4c94b59381bac1e33947e0c22e838a9534cf"),
		},
		expected: decodeHexString(c, "64384ecc4ea6b458efc227ca697eac5510092265520c0a0d8a0ccf9ed3ca9d58074671188c6a7ad16d0b050cdc072c125d7298d3a31d9f044a9ee40da0089a84fea28cc7f05f1716db952fad29a0e779635cb7a912a959be67be2f0a4170aace2981802e2ff6467e5b46f0ffbff3b42ba5935fd553c82482ac266acf1cd247d7"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_11(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d43a75b6adf26d60322284cb12ac38327792442aa8f040f60a2f331b33ac4a8f"),
		nonce:           decodeHexString(c, "0682f8b091f811afacaacaec9b04d279"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7fd3b8f512940da7de5d80199d9a7b42670c04a945775a3dba869546cbb9bc65"),
			decodeHexString(c, "2575db20bc7aafc2a90a5dabab760db851d754777bc9f05616af1858b24ff3da"),
		},
		expected: decodeHexString(c, "0da7a8dc73c163014bf0841913d3067806456bbca6d5de92b85534c6545467313648d71ef17c923d090dc92cff8d4d1a9a2bb63e001dc2e8ab1a597999be3d6cf70ff63fee9985801395fbd4f4990430c4259fcae4fa1fcd73dc3187ccc102d04af7c07532885e5a226fc42809c48f22eecf4f6ab996ae4fcb144786957d9f41"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_12(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "64352f236af5d32067a529a8fd05ba00a338c9de306371a0b00c36e610a48d18"),
		nonce:           decodeHexString(c, "df99ed2c7608c870624b962a5dc68acd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "da416335e7aaf60cf3d06fb438735ce796aad09034f8969c8f8c3f81e32fef24"),
			decodeHexString(c, "a28c07c21a2297311adf172c19e83ca0a87731bdffb80548978d2d1cd82cf8a3"),
		},
		expected: decodeHexString(c, "132b9f25868729e3853d3c51f99a3b5fae6d4204bea70890daf62e042b776a526c8fb831b80a6d5d3f153237df1fd39b6fd9137963f5516d9cdd4e3f9195c46e9972c15d3edc6606e3368bde1594977fb88d0ca6e6f5f3d057ccadc7d7dab77dfc42658a1e972aa446b20d418286386a52dfc1c714d2ac548713268b0b709729"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_13(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "282f4d2e05a2cd30e9087f5633089389449f04bac11df718c90bb351cd3653a5"),
		nonce:           decodeHexString(c, "90a7daf3c0de9ea286081efc4a684dfb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2630b4ccc7271cc379cb580b0aaede3d3aa8c1c7ba002cf791f0752c3d739007"),
			decodeHexString(c, "c31d69de499f1017be44e3d4fa77ecebc6a9b9934749fcf136f267b29115d2cc"),
		},
		expected: decodeHexString(c, "c899094520e0197c37b91dd50778e20a5b950decfb308d39f1db709447ae48f6101d9abe63a783fbb830eec1d359a5f61a2013728966d349213ee96382614aa4135058a967627183810c6622a2158cababe3b8ab99169c89e362108bf5955b4ffc47440f87e4bad0d36bc738e737e072e64d8842e7619f1be0af1141f05afe2d"),
	})
}

func (s *drbgSuite) TestHMACGenerate33_SHA256_14(c *C) {
	s.testHMACGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "13c752b9e745ce77bbc7c0dbda982313d3fe66f903e83ebd8dbe4ff0c11380e9"),
		nonce:           decodeHexString(c, "f1a533095d6174164bd7c82532464ae7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4f53db89b9ba7fc00767bc751fb8f3c103fe0f76acd6d5c7891ab15b2b7cf67c"),
			decodeHexString(c, "582c2a7d34679088cca6bd28723c99aac07db46c332dc0153d1673256903b446"),
		},
		expected: decodeHexString(c, "6311f4c0c4cd1f86bd48349abb9eb930d4f63df5e5f7217d1d1b91a71d8a6938b0ad2b3e897bd7e3d8703db125fab30e03464fad41e5ddf5bf9aeeb5161b244468cfb26a9d956931a5412c97d64188b0da1bd907819c686f39af82e91cfeef0cbffb5d1e229e383bed26d06412988640706815a6e820796876f416653e464961"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate35_SHA256_0(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5d3286bc53a258a53ba781e2c4dcd79a790e43bbe0e89fb3eed39086be34174b"),
		nonce:           decodeHexString(c, "c5422294b7318952ace7055ab7570abf"),
		personalization: decodeHexString(c, "2dba094d008e150d51c4135bb2f03dcde9cbf3468a12908a1b025c120c985b9d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "793a7ef8f6f0482beac542bb785c10f8b7b406a4de92667ab168ecc2cf7573c6"),
			decodeHexString(c, "2238cdb4e23d629fe0c2a83dd8d5144ce1a6229ef41dabe2a99ff722e510b530"),
		},
		expected: decodeHexString(c, "d04678198ae7e1aeb435b45291458ffde0891560748b43330eaf866b5a6385e74c6fa5a5a44bdb284d436e98d244018d6acedcdfa2e9f499d8089e4db86ae89a6ab2d19cb705e2f048f97fb597f04106a1fa6a1416ad3d859118e079a0c319eb95686f4cbcce3b5101c7a0b010ef029c4ef6d06cdfac97efb9773891688c37cf"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_1(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c2a566a9a1817b15c5c3b778177ac87c24e797be0a845f11c2fe399dd37732f2"),
		nonce:           decodeHexString(c, "cb1894eb2b97b3c56e628329516f86ec"),
		personalization: decodeHexString(c, "13ce4d8dd2db9796f94156c8e8f0769b0aa1c82c1323b61536603bca37c9ee29"),
		additionalInput: [2][]byte{
			decodeHexString(c, "413dd83fe56835abd478cb9693d67635901c40239a266462d3133b83e49c820b"),
			decodeHexString(c, "d5c4a71f9d6d95a1bedf0bd2247c277d1f84a4e57a4a8825b82a2d097de63ef1"),
		},
		expected: decodeHexString(c, "b3a3698d777699a0dd9fa3f0a9fa57832d3cefac5df24437c6d73a0fe41040f1729038aef1e926352ea59de120bfb7b073183a34106efed6278ff8ad844ba0448115dfddf3319a82de6bb11d80bd871a9acd35c73645e1270fb9fe4fa88ec0e465409ea0cba809fe2f45e04943a2e396bbb7dd2f4e0795303524cc9cc5ea54a1"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_2(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a33288a96f41dd54b945e060c8bd0c094f1e28267cc1dcbba52063c1a9d54c4d"),
		nonce:           decodeHexString(c, "36918c977e1a7276a2bb475591c367b7"),
		personalization: decodeHexString(c, "6aa528c940962638dc2201738850fd1fe6f5d0eb9f687ff1af39d9c7b36830d9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "37ee633a635e43af59abdb1762c7ea45bfe060ec1d9077ecd2a43a658673f3c7"),
			decodeHexString(c, "2eb96f2e28fa9f674bb03ade703b8f791ee5356e2ee85c7ed5bda96325256c61"),
		},
		expected: decodeHexString(c, "db2f91932767eb846961ce5321c7003431870508e8c6f8d432ca1f9cee5cdc1aed6e0f133d317eb6990c4b3b0a360cdfb5b43a6e712bd46bca04c414868fab22c6a49c4b89c812697c3a7fbfc8ddf10c8aa5ebf13a09fd114eb2a02a07f69786f3ce7fd30231f22779bc8db103b13fa546dbc45a89a86275281172761683d384"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_3(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5f37b6e47e1776e735adc03d4b999879477ff4a206231924033d94c0114f911b"),
		nonce:           decodeHexString(c, "7d12d62c79c9f6234ae0314156947459"),
		personalization: decodeHexString(c, "92d4d9fab5f8bf5119f2663a9df7334f50dcde74fb9d7732f7eba56501e60d54"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c9aef0d7a9ba7345d08b6d5b5ce5645c7495b8685e6b93846ffcf470f5abd40d"),
			decodeHexString(c, "50d9d1f5074f7d9f1a24a9c63aa47b94da5ba78db1b0f18e4d4fe45c6875813c"),
		},
		expected: decodeHexString(c, "20d942bbd7d98700faa37e94d53bf74f2d6bd1d8c95c0b88d842c4857797d59e7c8788aeeac29740122f208f703bf35dc32b0035db0648384feb6aa17a3274bc09b2d2b746c5a06fd82f4469fb86131a49482cb7be7d9b4b95042394cfb18b13f333ec0fe5c227bf1d8f33ecb2e42e358b6c3e034cb585331bd1d27f638029b9"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_4(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "2311c5afd64c584484b2729e84db80c0b4063fe9ca7edc83350488d7e67264a0"),
		nonce:           decodeHexString(c, "6a6dfd975a0dc7b72df1f107c4b3b3a6"),
		personalization: decodeHexString(c, "2abd870ec5fe26ed14dfa57a3309f920131b70580c3639af2645cd1af93db1b1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c6e532a3b25653b6002aed5269cc2118749306e736bde039d4d569d4f967773f"),
			decodeHexString(c, "5e7d26c4da769c373092b2b4f72b109fe34bdb7d169ea38f78ebae5df4a15759"),
		},
		expected: decodeHexString(c, "cacaeb1b4ac2305d8714eb50cbe1c67c5a2c0bbc7938fdfdcafef7c85fc40becbf777a4cfb6f14c6eee320943a493d2b0a744a6eb3c256ee9a3763037437df9adce3e2260f0c35e958af0edb5a81debd8bdaf2b8bb2b98b9186e5a222a21609ff58df4cbe1d4898d10d6e7c46f31f5cb1041bfd83a5fb27d5c56c961e91403fc"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_5(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "362ece9d330e1172a8f9e50258476d0c79c3ee50346524ba12d970ee3a6ef8c5"),
		nonce:           decodeHexString(c, "cf11bcb4d9d51311ceacfca8705e833f"),
		personalization: decodeHexString(c, "abb5a8edde02e526449284ecc31bc713383df3ed085f752e3b6a32f305861eed"),
		additionalInput: [2][]byte{
			decodeHexString(c, "746302ab1f4a86b17546bea762e929360f2e95c7788a63545a264ef997c8c65e"),
			decodeHexString(c, "b907c5b2a8833a48e56e819228ce9a050b41b3309f5ca37bed720311d92b33af"),
		},
		expected: decodeHexString(c, "73c7131a558350590053580873ef956ff952f2aa6ff1bea452e013d1bc2afddea2311756dbe756e63ba6258480c48f3f6c1319b5f572f67ca530af09e39413d1d432bea8f89206619618cb0e7c88e9f2033639d0eb0efc20616b64f940da99b88231984c3fb23f19e890576f555fde394dbd4351f17a7ffd5c369379001bda03"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_6(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "cf614bc29946bc0095f415e8bdeda10aab05392f9cc9187a86ea6ec95ee422e1"),
		nonce:           decodeHexString(c, "77fb5ec22dc0432cc13f4693e2e3bd9a"),
		personalization: decodeHexString(c, "e4ce77914ffbc5fddf1fb51edfafdc196109139b84c741354135ec8d314c7c43"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e1e83ee1205acaf6164dc287aec08e5b32789e5be818078db39e53cad589db51"),
			decodeHexString(c, "4e20c0226d5e1e7e805679f03f72452b5bea2d0ba41e0c12329bf60eb3016dd1"),
		},
		expected: decodeHexString(c, "838fdf1418a746aa52ae4005d90c3fd301f648c5770ffef2a9f3912e37a93850cc4b8bfcce910aead0cb75958823b1a62e283901c5e4a3980e4ea36257458e2e4953555819b8852a26489b1d74821f80c9908469b43f124ff7ea62497c36159a47353098a1b9ec32e54800d6704371cc37f357ad74aacc203e9b6db97f94d0c4"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_7(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a8da1d3e233f393fd44d204c200202f7d01896e72c5ac652940cfd15b5d4b0bd"),
		nonce:           decodeHexString(c, "0a112b4cb0890af0a495e0f49fcf6874"),
		personalization: decodeHexString(c, "d2e32799bc822b8d033299bdf63dc35774f7649e935d25be5b10512c430d1bda"),
		additionalInput: [2][]byte{
			decodeHexString(c, "920a82d76fcd2cd106ada64bba232b7b2344f3afe6b1d1d20ee8795144571009"),
			decodeHexString(c, "eeaac5878275372025f8231febed64db6a11273c3c00d625fc80a95f18ad7d3f"),
		},
		expected: decodeHexString(c, "5f6dae489b53d89027b2cc333c700f090152d77b3eaf01d47f56ce6eca9893ef877b4cb560fab0fbdb34e3d1c6cd8480b33c053d2661a10aa531df4961b97d659c7492584236582b3fe701055efa59c328194cd1e07fcffd910d9ee01b7b9e8c8fda7f7ac01a8e203b8b26eb8078a9b9a5021562c44af24089e3ef84c1d5a6bd"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_8(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a77b1ed4ecaa650374e1052c405f1d88881c25c87d13dbe1334d8c1a847fa76b"),
		nonce:           decodeHexString(c, "05c143e2f145db216fe7be9ed23635d0"),
		personalization: decodeHexString(c, "b5c750968ff09ed251d4a1c05342ac843db5246b19045728a634fa4f6e752e54"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ff5937bcd01a363696bf8e40adc8e4ab3e56dbf7e7d09451c99e538785fe6697"),
			decodeHexString(c, "4acb34eea8266badcf8f6557a0eecf3eb4d7a295c876d6175598cb66a388efb8"),
		},
		expected: decodeHexString(c, "ec13eadfcc84e77d2a2efa1a2cd8b1355587cb27feb3d19d75b37f0446333ddb8236e751c63b7a6e595ec24a25051a696dbe8c062dd8896d1446db228a2f10e8094ee07e7ee648ed6bebb2f5ec5aae24c9c640665c28355cc11c116795ecc070790f7fdfc4398900311b6695d5da0175091ed1828d2731085bfb4a20bd86cce0"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_9(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "491686c781e83eb4e21d9989e8d718100b0d21a2c56295888baef1a65f219651"),
		nonce:           decodeHexString(c, "499085296d21065feabf3106101c8d6f"),
		personalization: decodeHexString(c, "d208a72f9ae34f0817669fb04f49239dd31700f3dc9a93db8d75fb79f9b686c1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9ffc61893a293a864008fdd56d3292600d9e2ec8a1ea8f34ac5931e968905a23"),
			decodeHexString(c, "4ff3a397dfdae0912032a302a5e7a07dceca8d9013a21545689319b7c024cd07"),
		},
		expected: decodeHexString(c, "3c258ebf2203fca3b322ad1b016e21c7f5c148425f81e4fb0a0e462dce9dfa569c37a006527768297a5b68461b08912642a341b88c85597e30e7561206886098c4e2d861f11513f0ffdbbc78d3a2dd60c105abbb33c5e05ae27081b690fb8b3610917aa9bf1a4ad74481b5ff8334f14e5ad6a6a1eb2259476078076fb7e3a992"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_10(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "36a5267eeeb5a1a7d46de0f8f9281f73cd9611f01198fdaa78c5315205e5a177"),
		nonce:           decodeHexString(c, "b66b5337970df36219321badacc624eb"),
		personalization: decodeHexString(c, "c2a7b164949da102bece44a423197682ff97627d1fe9654266b8527f64e5b386"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a977e2d8637b019c74063d163bb25387dc56f4eb40e502cefc5ae6ad26a6abdc"),
			decodeHexString(c, "c5c9819557b1e7d8a86fa8c60be42993edc3ef539c13d9a51fb64b0de06e145e"),
		},
		expected: decodeHexString(c, "b471711a4fc7ab7247e65d2c2fe49a50169187187b7978cd2fdb0f8318be3ec55fc68ed4577ad9b42cbb57100b5d35ac86c244c4c93a5b28c1a11c2dfe905d608ec7804dec5bb15cf8d79695534d5e13a6a7e18a887ec9cf184da0cbbc6267f3a952a769403bafcdbb559401be0d8b3300ea7258b4026fc892175efd55ba1a67"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_11(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a76b0366df89e4073a6b6b9c04da1d6817ce26f1c4825cad4097bdf4d7b9445e"),
		nonce:           decodeHexString(c, "773d3cc3290176773847869be528d1a4"),
		personalization: decodeHexString(c, "1bfd3bcfb9287a5ad055d1b2b8615fa81c94ac24bc1c219a0f8de58789e0404a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "edd879fa56f21d93029da875b683ce50f6fdc4c0da41da051d000eed2afefefa"),
			decodeHexString(c, "f528ffd29160039260133ed9654589ce60e39e7f667c34f82cda65ddcf5fff14"),
		},
		expected: decodeHexString(c, "39d1ff8848e74dd2cdc6b818ad69823878062116fdf1679942f892c7e191be1c4b6ea268ecdff001b22af0d510f30c2c25b90fc34927f46e3f45d36b0e1848b3a5d54c36c7c65ee7287d325dfbb51b56a438feb6650ce13df88bf06b87ac4a35d2a199ea888629fb0d83f82f0ea160dc79ed220d8ef195b9e80c542f60c2d320"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_12(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "46571e1df43e5e141235e2a9ec85bb0faf1dc0566031e14d41a2fbd0315653ec"),
		nonce:           decodeHexString(c, "b60ef6a3347967519aabeaf748e4e991"),
		personalization: decodeHexString(c, "759fd8593e3688b23c4a003b655311770d670789878570eb3b155a8e6c2d8c45"),
		additionalInput: [2][]byte{
			decodeHexString(c, "033128460b449e1accb0e9c54508759ddc2538bc64b51e6277553f0c60a02723"),
			decodeHexString(c, "a5e4a717240bdeac18a0c0e231a11dc04a47d7550f342fa9a7a5ff334eb9327d"),
		},
		expected: decodeHexString(c, "9d222df1d530ea7f8f2297a0c79d637da570b48042ecddded75956bba0f0e70b271ffa3c9a53bada6ee1b8a4203c22bfde82a5e2eb1b150f54c6483458569422c1a34a8997d42cc09750167a78bf52a0bd158397af9f83caabe689185c099bf0a9a4853dd3cf8b8e89efebb6a27dba873e65e9927741b22968f2875789b44e01"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_13(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d63980e63bbe4ac08d2ac5646bf085b82c75995e3fdfc23bb9cc734cd85ca7d2"),
		nonce:           decodeHexString(c, "d33ed1dcae13fb634ba08272d6697590"),
		personalization: decodeHexString(c, "acd0da070072a5340c4f5f4395568e1a36374e074196ae87f3692ee40487e1df"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f567677b5e12e26f3544be3da9314c88fc475bf84804a89a51f12b191392c02b"),
			decodeHexString(c, "c01cc7873e93c86e2bfb8fc984cfc2eab5cc58eeef018fedb5cba5aedd386156"),
		},
		expected: decodeHexString(c, "b133446f633bcb40724bbf9fa187c39a44b9c094a0a0d40e98977e5466dc2c9adf62a5f4551eeb6406a14658de8a0ed7487c3bf6277e811101284a941745ce16176acc875f1435e14161772fa84609e8123c53dd03cbb868030835c0d11d8d6aa04a1b6f908248b028997737f54735ec4ed7a81fc868199ffb61a779d9340334"),
	})
}

func (s *drbgSuite) TestHMACGenerate35_SHA256_14(c *C) {
	s.testHMACGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3d99f9b7ac3a2fbe9cf15d960bf41f5588fc4db1e0d2a5c9c0fe9059f03593fb"),
		nonce:           decodeHexString(c, "411f504bb63a9b3afa7ffa1357bb48be"),
		personalization: decodeHexString(c, "0bb5ebd55981a25ba69164da49fa92f2871fd3fc65eb30d0f0d0b8d798a4f8f2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "288e948a551284eb3cb23e26299955c2fb8f063c132a92683c1615ecaed80f30"),
			decodeHexString(c, "d975b22f79e34acf5db25a2a167ef60a10682dd9964e15533d75f7fa9efc5dcb"),
		},
		expected: decodeHexString(c, "ee8d707eea9bc7080d58768c8c64a991606bb808600cafab834db8bc884f866941b4a7eb8d0334d876c0f1151bccc7ce8970593dad0c1809075ce6dbca54c4d4667227331eeac97f83ccb76901762f153c5e8562a8ccf12c8a1f2f480ec6f1975ac097a49770219107d4edea54fb5ee23a8403874929d073d7ef0526a647011a"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate37_SHA256_0(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8ee1df3d864bca351263fa00489d73d4a14c92f022a7cc2473695f4aa28ac496"),
		nonce:           decodeHexString(c, "7772269c9b6fa377349729a2a20bc1a6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e60fd2e75dd0693ab0cdd0bebcf39be34aa2eef17f186e40c97426e91ddc3fbc"),
			decodeHexString(c, "45daae78c6ff1b619460be949b6c6d02e1daddccd6839a38d5f631ac704886bd"),
		},
		expected: decodeHexString(c, "0d44fc2c64abf7e2deb1d4796e244afcd2cbcf543b52c5756b7395eef49480da5a0dc060d7d6b0b5beb6655ed67d13e903e8731b482fff8bb8abd96323a5b4e6b342b1d665fcba0fdd146d41afe3c413fdfb90883170afa62a1fe81d0dd2ad87b2b7db73ef15c5cbdaad876e3f279a0702f6f19a5f523615557aedf62e347d5a"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_1(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5045965f5a7792807b5000b5ddd7fb4505731c8a54fdfaa50b15cc0f8bb554d4"),
		nonce:           decodeHexString(c, "f647bf05ef60f0026786cc892d995d3c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0135cb725e9d586f9915d2957c2314db77dc87a29da5706e79ebeca8aec414f8"),
			decodeHexString(c, "a9dc7482c99a81f802e9cf5e1e010aaa897ef6cb87136a4fb1d565b6a1e3ede6"),
		},
		expected: decodeHexString(c, "0096cda80775920aa62f9753f364c8d644fa398a6236b294e288ea9dedf18cffd0a44633bfa01da886b4ef9e35cfd4bd046162fdadd85952e16ee277456ed1ed4d2b1e6127b331070b275933005300af629af6e311bc58771cd79872eda4c8c1ff01bb6a649b864669f1f8ef3bd48def515ac543b71f791b228f63a83d72eded"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_2(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e1c86f1381aa66d04ef5ad4bf37d616a4f6643173d1255ce9d2d2b280e32b9f3"),
		nonce:           decodeHexString(c, "8d95c6f153a33d023f16a0223fb850b6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5a1ac82649fe40758175ea2190388ae4c3892a77b4b6b7d3ede659ed6412d85c"),
			decodeHexString(c, "f33df558c6c9ff6725f693dae66ae82732c9533ace7a205a76204a730bc703c6"),
		},
		expected: decodeHexString(c, "0396c538b6c78416194759be86aeec309e650fafda1a3dd3b42fd53bee870636643e74c8ad6e2dd66ed8c523773ae73c67307ad9a38ff8eafe17047a5065416ec7a7074e32ccd0614d835845d21ad8b730c3c45636e5e7076d0609d6f418f4288e543886cd873c115b173dab45cf5ed1ee571b130a5c16c5321442513adb06a3"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_3(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f6c342ee8c1ce21c48ef23b7fbb81f09db4a4ba40f9530ac91651d01157cd773"),
		nonce:           decodeHexString(c, "8e5be622de1332f4fc7809d223122793"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "786e9d9fc8a4e69d7debb4ccbf01ccd1cfc01eecbef81e33279f795f0d93704d"),
			decodeHexString(c, "85a54090284c779d8efa30136defd6ed23313591899cf45165e5e96965e2e9f9"),
		},
		expected: decodeHexString(c, "72d4e84f08ae57d9caab729e3023b470aeaeb6c8d46e850bb214e54a4dc6b657577b9328eea54fe3f4ae031a8b510d2f2155dcff10d0aa50f6d977c297bb3569c62c178c3cf6eeaffab9af262bbd6ede1d376bd79260b8cdc4e65c32861a08c4f6a2fbd77a21fb2e4cb01602c978464346e28020ddf06dac7bfa6c1425fefafd"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_4(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e2f4cf8d27ae6f3d13f623c86f9b89d6a4d2ec565a14cdb598cc398bee759e54"),
		nonce:           decodeHexString(c, "4c9ba98dc07febbbb0953e5255712933"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e87c78debf021b4109b9145e7aea28e37cba6dc0809c89565bf9e445ccfe7a6d"),
			decodeHexString(c, "ae6637919e509dcaa8b8988aa1a6d84748888d00880d2057d0aa3799f76ce85f"),
		},
		expected: decodeHexString(c, "5edd979d099429df7ba93da29fd559adf961a7fed541fd6618132a2cff323eded1e4729570a690204a49286da6f22744f45bc52dd7704277fa2583ebd79eec34b2fb9ee548ba150c2cd8245380363b6af02568848b2c4d363fab81d8a50ab7a93b7a4c5ba518717947affc2a8cc7115881687fbac9e243a6a44b72d0ce07bc45"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_5(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c71741d9deb8d267439ad9b02898c8c86bb7c1086a4f849599415ed0e0ed32af"),
		nonce:           decodeHexString(c, "cc01057e084bfb23c304f84b9fb74af2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e0ae8cf8decb7cd7ce0362f3cb9745684e3c545380ae4c106e6017a6b022153a"),
			decodeHexString(c, "691a785a96d36f47ab61a913990f8fa2c2ebd613f965585c328512e2b8875032"),
		},
		expected: decodeHexString(c, "7ba7195b9589ee57c78bdb3c0be0b73aa60cf6ddce6203d4b71290714c034c11477f39ee3035f2c2c67b82b259a12cfdd94b25f1c9ec003071c749f9f49d6bf533046b41df288ee8a9f2c0d5141008b38736c881df2015d471952e04c0b67b1998100186e772033ff0c8e9eafe5b16ae5833691dc261b87fd9394f494af7b91e"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_6(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "113117270694c3bc4e71ddf24b247d1444102b8e59a60a881e237cd608dad285"),
		nonce:           decodeHexString(c, "3d0d8bbfab7f44da510bdc2b3bd82011"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d77151e85c753fa98da13045d3336135919f9b935f63b0c2b2329d48211c08cf"),
			decodeHexString(c, "584f76c57a870b6a56ad16e1e352232790e95d84aa9e9d09ae90aaffbdfcc451"),
		},
		expected: decodeHexString(c, "04ccffc354bb0a1cfb278af71b9a42f178aa766e2bee8b462e18d8a1c9498ec661137e194bd165b7113fb258ff04b11fba53406ad44057f692446cc688faea61863c35e7e962d8dc48b6facd6d94838c64450b1f7ffd49239a70bfd8de7522cd62471d4c9717ae1a501a7c7449ec1b2a8c8cb95a7e3e59fab4ad9cb9bb7bb38d"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_7(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "dea80aa984bfab5870a28877c225fe071f087f82098a7678d4e20a7366a5ef32"),
		nonce:           decodeHexString(c, "b80f9014c996e080662d2508dd5aa4c0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b235f3e8666c052ad84806fb10049d17dd789e2c20772c8e6b626c5d18ce58e0"),
			decodeHexString(c, "958e83f41081db21e38aca7915ac89504f96e62e2eb5d307ab95729194135063"),
		},
		expected: decodeHexString(c, "f70d390f57706633d37e5d9a084856fb4bc15b979303869f3e1dcda73898df876667825e85b873ebe05d56113779df1f396e36e4de1710425cc05235401e08b1e55fb07775d2ba525110cd7bb6c810e57320b79e3498da92a913fa5e85ca0a3c779095d03dcd711af791f4495f0d82366124c08482ae01105fe0ad3a030efa7a"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_8(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c54de4b970faa4b67cb09d9f3ca85e95b4130ba12789aee27ac6c428a6eca4bc"),
		nonce:           decodeHexString(c, "85cf6aa08e0415b3e9c1f305bc5a2b0a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cc191b16b837e94f33e202ad65df8f69fe34ec204eec82cadc617c6df1af4089"),
			decodeHexString(c, "6622b70c3fea83c21863f154a08fb186bc5ed9f9fcfe214b727f60e77a07aa72"),
		},
		expected: decodeHexString(c, "1420839289f6be0af1ee01aa5644c85a58c7b9183062e2e40a2987aca2ec6c83dfe1fb3d3a578b644eff81ff5ee3722046681d1a5f81b72a05deca4747b4834e5fb2561027ea226db7b7eb7d8c7927219eae1b33509e94397a7ee756edbe28d203174d66db85911f81f381e15e3f4cb826dcb19af9ed214017c919a6e666cca6"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_9(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f2e16396676fa0d34d853ce0ea226c3871832a48df511c225f711efc3c46f58f"),
		nonce:           decodeHexString(c, "a8bc3b444cc8396f1a08022f63be4d05"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1edda2649c50714fbe61e15cf061c38460802230aedadbe3906b0923269e1149"),
			decodeHexString(c, "9e43abc3d3a481f09bccdaf457da96581bc7d4a65d8af5952eda35e9d01a847b"),
		},
		expected: decodeHexString(c, "bfa514a6126212691aef3a7329f9e1e636b80d376b15758ae489df619ff612ae9d208e8c5030ccf678ab8d4aa841580556d1f91128cfe8998e43880eecd6204dac4874e04b9a359eb2f73921e1b4f0361ac1bd6cfa357e29cec4ed35716c1366608273e295a6a5b97f811c1d7db675ad8573b59b8418771d6215e2c282b1907c"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_10(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "6a04d1a90b7666e632cf1d18dbb0a6c7c1d20aec7f9c7ea42fc947a149329cdd"),
		nonce:           decodeHexString(c, "79e323dd7bc28b2bbed53a80e200f903"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9856e5aad41e622f04f2934ab423aee79b649bc066bc9e70451cfc5e65d2d6b6"),
			decodeHexString(c, "a0a0aaf2201c2d12d803b3059d716c27da58041486d9ebe4e20dd1cca09859e1"),
		},
		expected: decodeHexString(c, "8ab2ca3d82615dc53c1eb64f16f369819661c04d0a8bb56dbe5848d154cb8c30aa771b466c916e691e1f5d7564783bfdcbe88b8608321b6b5992291a33b05ebc0e5124efc370a5973011fffffb9905dc92bb1ccefa617f9b033f32e62a842ba7fdecd6e0e49cb858e24eb82bffcbbf63fa834bde4ba80db32bc21bf339eb58f3"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_11(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a99cbd7d274c6d3115ac939ca67d52d0f43ab38fb354df110264eb7d462be1ad"),
		nonce:           decodeHexString(c, "9dfa25936d6a1952c9a2e0bf530610bc"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9f41713d7b6159022f093e3aace39fd3239033eb40f959be0e353388b23a8596"),
			decodeHexString(c, "e41b10f633dc719ccb209e6ad26ce3c4623dd6fa40e959fa7704280fc447dc90"),
		},
		expected: decodeHexString(c, "d7cc54165ee2d4fd1d89f9b025dba0bf6c3172aa7f756b6af2048ced3652e97c0241d0e8836b2d919ff43885362f53cd7569a51afa668b2dbb4dcaa23fffeee4dfa10f951c1ebddede97b8cdd5f207707030d16eaef87ae64a98df90fa3974d45ed6d604d3633a17ae90710a39e889eb62f448746a781e94f577f1085546d243"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_12(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4fd0335159cbf717b8c6f4520661cc746836b661719f975647872658d160d440"),
		nonce:           decodeHexString(c, "14b6fdb19e6be030009d189fa3155eec"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "fd94b41909b6e6bd5b966073411a54529abce0ca7b96d36d9d5ae0b252938f30"),
			decodeHexString(c, "c20650a1d9ded8e981335bed144373041be44c7c7b0c3681df5cf6a319c0cc0e"),
		},
		expected: decodeHexString(c, "1653ad31fafddc0c56f0609c11d3d97100dccaf0c6421ca552cdffaa9d50d3fe325162589c5c20824002ea9f69d2585f8c7d75f7032b60c6053507f1cabef8f498a6766d7b1d0c7c1137e3b9f8dd06590cd4132f1fae40537ec6685fd67b801830781fba5a395081dc41ac29248710ec279ff7dc07428986bb6b520b4e822602"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_13(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0a8bf98c5c06576c361fa8d2ad062fa285b449547cfd6b07683a9f1b7b5c9441"),
		nonce:           decodeHexString(c, "8198f6a486f6ace1ebefb650d4fb1cc4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "02ee68246e71cb327a402a7c93e681e23f34cfc32ffd215fae52723610a5c19b"),
			decodeHexString(c, "fe0d83222c1ff9dbfef2921a391206ad8474b0e04b7534eeedd3a05dfc299c9b"),
		},
		expected: decodeHexString(c, "9d222c7ac62a830f7deaa90394a73e0178f192c94e1781e8dc7588a9723f7d10939445e5d0529cecc8fc383bf9e5885eb6430706eedd7b99f918659d397387e9f71204df344230ad958c4a21aa206d2beaae2d45f1435c31d648536df00c8ef9b5f52b40700524e2728f510b2f6d8678339d23861999fc8ba2b96bd08bcf01cd"),
	})
}

func (s *drbgSuite) TestHMACGenerate37_SHA256_14(c *C) {
	s.testHMACGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "bf25cb51fd828de8f406d2ae16de1e4e9e4c46262518564e75cd7ae55a5cf04b"),
		nonce:           decodeHexString(c, "6203d68117aa20b980b6b515ffb030e2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "50687524beffed38fe27963340483886645153311dbd4d10d86e7d6b260e0c4b"),
			decodeHexString(c, "1e3ebe4a54c3092d540ad2898ec3be1af84a1d515c013632402ffdeede7caa8b"),
		},
		expected: decodeHexString(c, "007139a46072d9dbb6589b8ecf5f287d3aebb13b480ffcd6e95f0b2f916cd99e75f30a21971298257a80c17e9e41f8e0874dc9da8f6c18007a6e4cd5971df083ae62bb7b9f1bd4926f17e5574535f6009c0068b4ea3a50e2ba6c6aa6c7729fbe8ba58b4b795740ff6ae2f3d6fbe3e06828080cd1dcfb11771ec98ad9e0bac0b7"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate39_SHA256_0(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "191c4f0bb2853d9392dbab6defc8ca2eae6cb47d9a412d0490db7d08244cb70f"),
		nonce:           decodeHexString(c, "9044a8503b55ef8f40063fcf066994cb"),
		personalization: decodeHexString(c, "914fbe6c98771f1cec56223e4493505a31dcde5f9700a121be232c044f06a10f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b57d926494b263f4ffec0190e73ac6699e1e40f162b5a6098d3a53a18dcb68b0"),
			decodeHexString(c, "275e7cbb53ced5fb5f063ce257d36e8319b64c89fd728f78701cc8168fa4aaa7"),
		},
		expected: decodeHexString(c, "2cf8b9a153666c8655aaaec79a233d4d715117d62d2ebc1902faba663717b9653a40ad4776bf492706751188c2461487e47a6567370b4946e455bf5caefb14e5d8fac20d9c54bde3235e9406705fee3eaab9a1ac4da9497f98a457d1de4bbcefdbf8d72ecafe52e481d140a360fb1a3f5404f3a2f8a361a792bc0e5ff7430bbc"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_1(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "66952a80d175c4c1c9088df2651bf38cf458fa8f6bccadb72a7d28a5634ccf05"),
		nonce:           decodeHexString(c, "e1e98ef65bead7ba5a99fe28cf0b18bf"),
		personalization: decodeHexString(c, "6135d7e64f7fa25226b273e5f3ece934f67aa7c91e71c2d10206731d8cdbc789"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0e35d508e3a21cc189fee36d60f5b7f0307e404c0f8b33d9134a10fcd3bbcb08"),
			decodeHexString(c, "cbc3ad8d3f044ac8e1eeb6bcf34a698f18c4bcea3ab66b76db92f5ec6b378398"),
		},
		expected: decodeHexString(c, "9a2a6accdbc9e2257d7c3379d2d4c9b4814237b993cedbd71a3d1ecd36245edae35415a123ac50f6b8f9cc7ee9043caa37187a24a6e3f7864765f22031ed0f5d87707c4141589a1d837440cd3fe3ec810ce1dc590b0454c8f45ed1c5ae1aecc8cc7272710f396cf0861fbdcea112d03ec2644fd201e012095f6f08fb4a91e516"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_2(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "fd2028bda30cba426093d2a4daea714793fd994175a745665ae2a4f73b8c6f1d"),
		nonce:           decodeHexString(c, "48a7d049d27b573c93d8e1337de0f3d0"),
		personalization: decodeHexString(c, "00c8167deb963270bbc42587b70c040502e62c898d9ee5703b8d06df1b33aec7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7ca9b267490a8e529a7c7bac1fd524973983858056ab7edebdbbe21d10380432"),
			decodeHexString(c, "8bc8bbe8a26b6783611cc8ed2b758b9b892b0c3b8b8054927e5f5690f20350cf"),
		},
		expected: decodeHexString(c, "0e282478de0fc1b158bf477b58f9a28590f1a5898f0449d516252fd6bf0bdfc6523eaba4497a24d37f69845ca89d25ea727971a6ba46effdd3d2af71de84af3353f092f7ee6d68e51a5da3fce18a67b12914a99126eeef8052ff438898e8c52929bf87fabca66c890abe8b28956f51a85f21a5a1dbda62dfc806a85595a6d506"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_3(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "66e593c788a9489289b73ec3a9d763b251180a995b31ba5e330a86e698208604"),
		nonce:           decodeHexString(c, "25aadd63fd7863fa353a352adb7041bb"),
		personalization: decodeHexString(c, "dd994fb735c46a3173b2ccc874982c86e178c4c35b286f30940f64846ddb50a5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "65a8fdc7be63f403e56245b5221abb40471cf6b03c9a4c9914a8647fef34dedb"),
			decodeHexString(c, "929767a2ae876aececb1ae633f2edc928b16de16b2ba12755ced6a6addcdd95a"),
		},
		expected: decodeHexString(c, "ac67f75eab0da1c905637f87ae0c8d1acd197d26f474b4d6b6570da19d37b21ed394cc187687db391b8d9cf6046c6e4bf85f0f3d19af625b2a211bca589163d6df971ece248e10fea8ffd334fc6fd310fad256cc68323d6fe82783047b18b05f3acb46abb7eebccfa084c8f2e8eda74d25544a929eb8830cac9e34713874bb64"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_4(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "60254f58a67a400f417e849b3350f226dde79de73df115c32def3f3a0e5925a1"),
		nonce:           decodeHexString(c, "9c550f7d7adcdae3ed5bff7063a3df45"),
		personalization: decodeHexString(c, "67d1fa64675fc618b5ca7b98dc2fedfa52a426173048c06bc9a3e73c70e43299"),
		additionalInput: [2][]byte{
			decodeHexString(c, "750f64b0c9458bcbb991dc638802e0ec1ecdff6fb8537ea028cce9788fd1c07c"),
			decodeHexString(c, "45967cbeb58fdea27bc77b8313169279a233a6b24c559c07c8606a3f775f1009"),
		},
		expected: decodeHexString(c, "8c12dbba5021242725698329f5ceab818b523c8fd01c4644568495a3da06ca8d4b0c04d3219ed72020f271e465e66f1c001964aff3ac0a7156e604269fb278bbff1ba413ba2bbc88ce32c47ab085523e43473356c7892c174d18511a540111d5955421f4c090c1f6777dc2293e2f6b855be62e17b6bb6aff8a72c20f107e53a1"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_5(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9152351bd6ee422e7cc23905a84e9df973da9b9ef6be79270b25953b2ec81543"),
		nonce:           decodeHexString(c, "52c8f3b3c1d4ce7b2e4abafe7659fe3c"),
		personalization: decodeHexString(c, "ee6b13a50f5cd452ea6fae660d9601e7d016bca025ca02bf67b91427def585f7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c526fba80085c560436416d85a55ce289fa690693c789e3cbdaefd7733d3669e"),
			decodeHexString(c, "54b5609d580a3f8c8ece8e65c3d185185fe33de9f62dbdac5c76acbf31d4850b"),
		},
		expected: decodeHexString(c, "ae8091d02534162bc8db5c5f180234dd7f379a63c9ff8e0c6a36326beb161f889ee150f283456bd6a6d1b4337b1f988e744335bdc0fa1f29ada54abd1ee0c37c6bf9cac95965485a752fc2613f91d51eacf8ab44a6124624da5101ea1a9fd1b1d779905ed820e7ff2f848c8baef4c3e41c6f715eada4f05366bfd80a1b471fc2"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_6(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d02d4e9a40257703e5eff98648f7e533e41dca57a8eb78ea69d475e7a3b005e6"),
		nonce:           decodeHexString(c, "b6716a283689b9b53a75eb8bc260e0db"),
		personalization: decodeHexString(c, "4cfff605bcdfbc934d8af8d9aee2148983ea754d3eb8946a642c8efe3dcf5bb1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "da7d751dc4de039add6ae6191375636b6800c108edbfbbb1158ae1c2d491223d"),
			decodeHexString(c, "327497ac302dc8d156801e24fe93b3cdbd3ac805358dca693640b4dc0533c360"),
		},
		expected: decodeHexString(c, "e34f023e0daa7c3a1e556f1596594ea78ff023b6752e6362e6facf98299f2aea069b9a78ed1599cf49e29e6784bb6545b04977c7920502dc6187d63fa845ab4036a739c5c16d9efe699b7a3d016f2ec0898a837f056c63b3d4eb99bc2b4e1e5b02e55cce68d85bee1f841c6a922f052a3b1d41434f6bdb48927ed794d01850b2"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_7(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4a479b7274d73dd187c52864333aa73ab4d8552539cc1d451ce746f41118c0e8"),
		nonce:           decodeHexString(c, "da8b0333309c81271d860d00834f5667"),
		personalization: decodeHexString(c, "9106f9df83eb13f2c14b445e9a2026b5c6000b34afe2516249aa3012d5b595b7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1083a1771d4d035d9906245cf46e00bf07f9470f766033056501669cd9097fbf"),
			decodeHexString(c, "7b2572fa64aed4a0790311419363056539c93ebbb7732bb407fa43e33a55e0e5"),
		},
		expected: decodeHexString(c, "20f198b797555605e3c0607beada5e704f951f468d5ad9a2ba1a4283d688a4c26c85b6783eac4ad3ad284d6d0af75be668c027432a57dd7cefe76c8c1122e7c5ed7e72c3ccea44d5ea85e1831e1d27b461974cad2cb52f699c664d592819ddd0b90a0dd793a09468fbf7b3db64cc3819e6d9c46798f88428441980121df615c1"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_8(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "046c6e0caca05f66b7c7b0965c64429f1dd7d383b64d03d86ff0655bf41cf616"),
		nonce:           decodeHexString(c, "559d2dd8a47b0bd94e23d28c14126b5a"),
		personalization: decodeHexString(c, "7324a958348d97cb437a1799f097eb2be287558525b102f4921910ce671b0bbe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7fc8abf7349e5e735f72166142436591c0d4cf6379bceb2371750bcc616c2ef7"),
			decodeHexString(c, "0e6bf7c49078d25f2873e5304c38d232a99c5a5bcf5e76d87b156fa89b750b9a"),
		},
		expected: decodeHexString(c, "cc3dfb7dce2277cbf912cedc6b0543a9fa942fe23c1c7e755724e28d51038d12718bb0d417c731b8e733059b3031e5bdb7b478ae01fc5065ddba94f32d26e9cd524501242d3a99f18c6247f7316be5ae4a03fdd01514b55a22ac821bfdcb82c6b38bd8d5278995d021e0d81d40a35c6fc483ee08c93fb12a2ecb0073f34fa22c"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_9(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a026ab58eb641ab68dff0cddf3b2e07b5cfd9b5f03388d83779add9ad1d447f4"),
		nonce:           decodeHexString(c, "c830a9faf3c3c6b02031fd664633d12c"),
		personalization: decodeHexString(c, "d8840fd34420044938f1bb9258cd0d3404f2d12ed06547542087b1a5bcc21754"),
		additionalInput: [2][]byte{
			decodeHexString(c, "94c14a30b3900aeaf3a0064f8a9cf04dfa70242f3c6aa27428f33fb778e4cd2f"),
			decodeHexString(c, "f4e4c509c219e723a6170e761d7dfda0bb78ce74b953810864c13c3bb6d939d4"),
		},
		expected: decodeHexString(c, "569004db5e2d08287141a62483a3d7874ab668927fc87f4d864f4a92d5121fb47bcacfe09bf7f23fb181395e7d7d7e634ea221a7df5875f13ebde451c296f7c61b4ff5bdfcb2f013bce81df30c2c2f4f1e9f05a78ed90e86cc727765e4b25785ef3225757764fadf059ff3c7fc3e175e37daccd99122597eb92c4aaa6a27629a"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_10(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "22bf25fdaffeec3cf89b615f77d78a271779277ea9706b917eb4d9106bb1430a"),
		nonce:           decodeHexString(c, "4622f84512e9ae07ecdeafa56729bfe4"),
		personalization: decodeHexString(c, "2454a3b2aee313d76235c56af4de49cfccbfabe5befb3e39ea75c6c2aac564d6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "382fba6725b8dbc099f5bfef572723a69283af910df07346b72dc8238c8c7dcb"),
			decodeHexString(c, "98d591352b329d12eef10c23771d90ebade36f16d2b33957befb5e48d24602eb"),
		},
		expected: decodeHexString(c, "971f8a8b9357cbc521b7fde2c16a8f03958fc6470a794dfca80a0032ef9da7c757f955198620e8941094f3b3e3491ded94375ed262f7f42dfa74b671a15c157377fc319c293808c1932b52655484477d19cdbf23e1e90453722a1d61f9f83729c13f74dc1030e1dc5401430d1397381e33efb408a6d657ac297cbd59c61d8a72"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_11(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "ada68accc624c8c30c7c5a4d8442110ed7c45a8d6a645693f322d0b4a5beb2d9"),
		nonce:           decodeHexString(c, "e5f2972bfcfa1122282754fc7b3348cb"),
		personalization: decodeHexString(c, "87806a8c4bc013fa85f3cba02a75eaba5f815fb7ad681c98602dd13c91965281"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9adbd48f9bf04a815556017772d2b0a82a2558a16f2b5d9249931a3b8f17341b"),
			decodeHexString(c, "6296a548d31454e14bfc630b4f5fba7c0801f47b16ecb5850e870ac8e9c8ea77"),
		},
		expected: decodeHexString(c, "e5511c5a8cc82892315eae52d2f25930fa03433178ef6173cd4a4128ba9baaf264bd00fe8b1a5ff1d68ae9ccd83f092078c70605c585a4dd1391cfa211ab8fa8bc21c7cad7292b56e0f6185914ebe1b9241d7b51d78952b936455d1a93234b61b4ed47bc7a63d8314f841b16a600c4f375a06deb29f8471a2aa7f7ea8eb34205"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_12(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9779a105bc750feeeda774b832d74a045383b61969d264fccd3be63298295c36"),
		nonce:           decodeHexString(c, "c5415f6853a1b3bf8aa3e15efb452421"),
		personalization: decodeHexString(c, "39cab707205a5d4a4967cb9c5b96604723df6633e3b65600560717015e529ff5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ef1badc8726464042660724afd2a35b61342e215fc8b17549f8ed470a78489e8"),
			decodeHexString(c, "2d2d26f781c0d3393422afd14f90aa74036b0fa585e86c68e36749cf6510ff22"),
		},
		expected: decodeHexString(c, "be0dfb331ba8fa326bd7ecaf2768d3f9efb3a329e26db3dd3b56a1f817d36b240b22ec81ba0db533a98ecba3148de7f0c23ca4f719851208ca3f11cf2380cf757271066257763aa16b804dff1433a2eca3f5b85f0898191913ae2f35212663bea731c123fa8b9697b77cf70b31f559d9c5946e7a5d5ef1f568c4e9180755e13f"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_13(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "590566793eaf2b1deea85296d189a9b9709c42f072a4eed2836bd8e73b537940"),
		nonce:           decodeHexString(c, "c2ff757940d823c72f1fc5526e7c810a"),
		personalization: decodeHexString(c, "dab526476eca7b485bb17c3109e5dc98d24cf605954c39385a5f813cf3c0171b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "65d03afd4c553ed446abbed2a0dbd7c1bedef4c4d4de6dc41a59489e9fa8c61c"),
			decodeHexString(c, "8006e5f77ac2f0613d3b4cb7a7a2eca552a7b6751cf2c23d58391a5712c22da9"),
		},
		expected: decodeHexString(c, "637590a008a9b8d1dfaf6c95b015e57680bd611093e1c4b7dd102ac7a4918614dbee4c801447a91ba5bac589b30382b031d8c0106fb804b67fdccceb3ab45377e89422ed8b1859b8849eece53e29d4793b9a3af0a645173ce380afd99d5e4a8e922c7f6dd1ab3f5752fff2834ae8fa37ac6b221ff9e4e1d58241506180e0a325"),
	})
}

func (s *drbgSuite) TestHMACGenerate39_SHA256_14(c *C) {
	s.testHMACGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8ca489bdb9c34722db712d7d63207fe78bb6ab645bf7ff7c8ccd7acebe555368"),
		nonce:           decodeHexString(c, "2419a6bc6d2e57792264091585427677"),
		personalization: decodeHexString(c, "8f8642092eacad449117d08fbeb49d312f69e3b4658c2dc94c1c0e4d913aff71"),
		additionalInput: [2][]byte{
			decodeHexString(c, "95f6df9905b652de6d08399f61956acf943fe412bc71de60d6b69881f8814b90"),
			decodeHexString(c, "87b818568ed80f7c2e8f5b5d7be403f8badf9fa0e716aaf1d6409957b242aa07"),
		},
		expected: decodeHexString(c, "45b5182f313a26008bb4ab82f68a12e7c783c243ba1ac6d8bfaed44ddddb607f964ace9c3505d59ef5a3691143a4845491661a1dff8ac4de2e56b54e263ac3aef86966fd656b5a65d4f3b89731d50fa919663bd5691678ee5f8f499e84b1822bd0b91409b62cf98c176df7e812513f3252d25d15fe13ef9f253af477d16bcfcd"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate41_SHA256_0(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f3428ae375e688496eb2fb0cd772f429a2ca9a76c032d3c9463cb50e0b5890a3"),
		nonce:           decodeHexString(c, "4cb6959e2fca6e7d20d4fac254f8a7de"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0f5e71a5804e9405e4f8676aba4aacfa4e727e0815a80b90f581fcfba078f842"),
			decodeHexString(c, "7f80c2e83cb9ece1648b04730a6cae9b8f7cea3fd5e2372324100f9642d26f4b"),
		},
		expected: decodeHexString(c, "7df486701b3a8e168094531aca081818d619697bf6c52e65a507a8a100cfd3a12d6fee64707840af7d08ef76d5cc16485157887800bb1dd5193b99496dd5009c53050972ff006739f198d86f9815fd014e54d4dc0f99b364aa77b74ad98c33dc3d007229de7a9a131ea388fc838ac966fc52f4924382ec288fc80d20b046df3b"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_1(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "994a0a73b6df92186f4b1ca970cfe343729800f24047ffdc8927fc828bd522a6"),
		nonce:           decodeHexString(c, "9d85ca8f29bba4f1c01363542e183c31"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e9817932f8d67a67106bd4554c34a1a0a9e6a8daea41cfa17d94843c9b22bc33"),
			decodeHexString(c, "2fb1acc70dff1cfdc6e9d5f5aaf54d47ba35d65bf2a753a42031933dd4831c4f"),
		},
		expected: decodeHexString(c, "04820d0328afe9fdaa1090d8406b4da05d715cf7d109d548a8bbda5252fecd9444e1a5440f55590e3c4d9627f819a50f85f0718dc9e52a575a3b8299ae692fd85aa0012f73ac1df36425b1d3e4d2fb829c2d268492516f648968adce04670e94112dcda0a24a3b20f2afb719e0c29c0de3260a0fa4866bfee297acc9aa5f1578"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_2(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d4af86308ed748abe5d167b5e909beec78dba45b2bc843688ad306ce11b4e013"),
		nonce:           decodeHexString(c, "3c0463a033341482d9a801d48f5dae8e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b76e99c5cc24ca3ca6d3a2ae00929bcebe1d447e05402aabeb655fd5d0ec317"),
			decodeHexString(c, "9ef2a90d6a55b002a2315c7619102b22cc237f6f57ea1939558a0efdbe77862d"),
		},
		expected: decodeHexString(c, "3e459928d4dd84b7e260b4c61ceae1cd16cd4eefc0fef1ac60a470c6ee2d42c90212dea44a991e0c9958601374b8c189fef1ccef875ae6edc7ee8acbbb9fd8e16e7911a62055e07264494a236508c44006166df0ce858b0d7048acca802ee2f4cbe9d07a4185ee6e389364dadf33cc341412d6d95d6d56c937af61b3c8efefbf"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_3(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "04644f5f4409cf4cccdbdf82fe0c18f2bc402d20639789e7b6910ec8d29a314c"),
		nonce:           decodeHexString(c, "9697c728062baceabd2a07d88afca4d7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a0b73b5b1a0027e57b8b2b1a430eeab72eb714dc08d95077e001587cce1f82d6"),
			decodeHexString(c, "ac28cb0721f8487112a1530b09f2842f0b77381a7b48cc297f32e24363006c23"),
		},
		expected: decodeHexString(c, "602b4925c876c3eb47da8311da030f54354d168cc3afb980ecbce27ac4d87ce85f646e649c3b3e881efa63fd3525a5e27718bc2c29efd5c4a452747e49c9815750b4bf969b4b3e85ca131eb60596b7c32c7208b293bb62708368a079af6134d6dccf6a50cffda785798b9f80146b353727cedf9e6bb9e25a0217ec55ac1b5b9c"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_4(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "6a67d9773751e7a143ac8f5a99c633f7178fb241a2269cdbb3c0b32bc649d503"),
		nonce:           decodeHexString(c, "ff0ff303e0e567dd7ddd4b252eef9708"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "57257c55ca2fe1a8a50a20e635109abf7c5850067a520268efad2cb418193888"),
			decodeHexString(c, "92cb366adb81fa8c21b665a7c5fce7b6c9f26c3b21849a38b02e90bfacb5bb56"),
		},
		expected: decodeHexString(c, "6feb7f47c9d43ebc493adf05b8cb3fc21184e424a5b5276978d8ceb2517f872683a55e6f19cb03bbd52b75b7c532b0e9c07045f4e3f432219807a57c25e937475e2c40b4f488dda434693e122f6dddf3934aa1038bf7458cbcbfd53e8aa51ac84463d11460d860205f72fc1a1f11d9bb8b333a3d2d887388da5c4d3d99ca52d6"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_5(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "08aa05db8a9d5b1d61ccb8498dc7a5b6256f7cb07eb4b3d661de84e710dfd232"),
		nonce:           decodeHexString(c, "a0fcb7f1b7c499586d6b3c68240202fd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a80a861d9c93dcd4b3f9771f55d32737fbda4a7de39c0b7f12af1ef26167f49f"),
			decodeHexString(c, "650bc4f4e76c8c62532fd851d775b8ec0427eb7ee47d0fa811ae43b4b8e8be58"),
		},
		expected: decodeHexString(c, "6b4203d79b7c8e591668b0704356e32c67ad3914e1789e372f420ce6a08af752a45aaacfb8e6e1384c98528b00dbf10012c94e2df67b47ccbf8f346e7a5f8c6881bf50fea7abf6c87e27f9619e33a325c891691b735f92b4efcf47de939495e3f718b05bad728ba85d5ace789d6bfd149d472822524822a333c464a82a305b76"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_6(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "6ba11a9dd7d9d46bd77e95a199cd4cc34211cf3ef98b2a9b3338d06a9df80e65"),
		nonce:           decodeHexString(c, "6885b88743e571edcd7cb1c2062bc178"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "acb78b034b56232b6251c0ef300cff4eb74913409ad9d761084b038c6e84dda9"),
			decodeHexString(c, "961679305c08c76dfbb8f246a14814e69b0e6b1b814c52787b70b64a8ba669af"),
		},
		expected: decodeHexString(c, "159b2530a2ed2bf561ad577b2a86bb0fe69e78ad6dc533c1da61f8ce40f3610921f2cc36edaa07673869a36676bde3ae95886e057a372843716c18fbcf2b175414b443852544d83489bc2cea194131f47e3a222478450d2a332144ea5cab1c3ef06d3e86c8a901a8ce4ce822f0d6aad20c02377500d65839460588cf455a2313"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_7(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "1643caebba4994f361aa30ebb7bfbc05269b94bfe04460ec17198d34402c3e3e"),
		nonce:           decodeHexString(c, "57d6d8dac11901483be9edd9a142829b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e1984dfe543324ee3d01290deac012dd2cc8885defd80d50cc172eee873b2ff9"),
			decodeHexString(c, "5d67e46e7d6333ab3a2f0fe92e8c8e544106a1d707a3b1aa7a318de3feca27bd"),
		},
		expected: decodeHexString(c, "4b5068ba8aa425b779987af553e226168d30a8fb8c11e1f016fa11a0d481ced23d2d8d72dbd4f2371cafa7da2b6058a3b2f4b6d195b3e803015e49ae84ef4b1fb76f60009fe0a99363a99a4afa621f8d9dc88a8ac6c72421f458ee53fd555ed8175b169ccba11f37bf43402d4671b30e70a03bfbec40ee38aed7840415e82f4c"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_8(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "04f03b4059da6f27ee002be1293f9bb847e815725937a20a4b4ddc14cd205868"),
		nonce:           decodeHexString(c, "caa8372e9c756eee3e866e06cd1d8635"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7200badfd5e0b72a2a811b885c640dadc83934045abe6a75abcb4a32e4644295"),
			decodeHexString(c, "9da5ede4dd0f7a19a18fed57682962ed280a1cc5d1f4f31ce75709f85b28874a"),
		},
		expected: decodeHexString(c, "250c97b743594cb37645b07bf1b5cc2b647ad7e833ef409558ad6898773f1288cab24598e326bea0732cbc0ab50c7eab9f7d104a4efe726e25d04d43dea5ecbcfa1c03968a0e6b9ed38dfaeccf2aec4e7e86a99098e0d5166768af280b0dc7d70efd0a758af3dfd35fc8332edfb47c70d0d802e09ec5feff3d3dc5688f6d14ca"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_9(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d5fffc4f57c7b4e45a9b7bf5fef3553c4cc8dffe6e57d2efc0bc324f1900b7aa"),
		nonce:           decodeHexString(c, "2a29436352fda465c64c49680d0fa169"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0f4531bb7d1e47cfbe675c85a77361fdab2a8938dc546ce60a21535590a972fc"),
			decodeHexString(c, "147e0561311ee6787004c40028e9d00798fedd55b7a4cc68d67a9cc44537037b"),
		},
		expected: decodeHexString(c, "0a4261eb4f92e279c13c2a598f5f1652b42893147bb56379325bf135efd275599cab58b1f5e4aeb5d6f0887812cf129a08f7295d77257057c373043a63317466418b3a7531d7c021e46e9b1228e3de2768a97b2b13e4338854ff575725a6c668d43267e27f42f3227a618c815744419da141f4d190874cf45277ad4dca5af077"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_10(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b36567bfc7f655ca65d92b623ed689cd21cc6733dafe6b4d3fe2ad51dccca2ad"),
		nonce:           decodeHexString(c, "e06e4c4fa61ad7850a4effac4da4982d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4ebebee72c9b6f2bd24e8eba40296fda003c09664d12db55860d1f088f7c6402"),
			decodeHexString(c, "65cb123c58f4e38d0f81d9dcd60fd29903af2a67b11df7d23097108d70211a89"),
		},
		expected: decodeHexString(c, "4b487111edc0e1f9a4cb1afc9dcb610c8fe9d48848678bf8a96adc4c934d6111615b5fcc4c239087ce3fe54301aa1c648f3ded4eaaab4c04372f0d2082f726da8027657561ae4b2cc8d651d8099506a31b5a8638547966d69506638567ea10e795681152bcb4e9c167b77a01b9b44c41f3361d247654b295c770d427f445e363"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_11(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "bbefdf9f55f4255c7b51563a21eabd43b368c14e1a931a3ed599c393f4f0f884"),
		nonce:           decodeHexString(c, "91557e5e2d7e7d10288c9a6d3eeba345"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c8f142b5ae906928f263b32eacc42dfc09e4edf7661364c621206d3cb81d52a9"),
			decodeHexString(c, "8963c3defb02e45c4932f88d14861dd337b158f2816e19b2e8755b3a0b0aba6b"),
		},
		expected: decodeHexString(c, "44b7f0912606cb938008500512dd286d90dd12d4419405db5ded4e617fd249cb7c1224bb9c4d11515546065f5edc5bfe7fd2d8ffdcbedf22bc30049a2d7e550650a49dc65e7e941e6429728ae5081d2ba1061b404aba6b15f713694ac653497b8a52c7bb55a415547e964d4b487f8390b151f6c5e485f426757f0d739f4aa565"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_12(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "daf8f8a18cb7b0aeb4e9868352c1eeadb819411d7c06ae0c9687d76ed48b3ec1"),
		nonce:           decodeHexString(c, "489c0582257a88bde25f7f1328d16e27"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c824e701fa84122ca549f4cb07dc33efd7eb8f36a9adc449352a2d38cadc39a0"),
			decodeHexString(c, "2efc4ec1d7e1cc02e63d7396ebf91bb624d7c743d2acd5cca7c4cd8c82d26245"),
		},
		expected: decodeHexString(c, "62532b66b5233431874ced72210b676424bb9d4950a366e8c334c505fad419d20ad3b1996a3709ac4e165135c4c3198d3d7340d6c700658078d5182a7dd684d165fd095ae1001deef5d7eff9924ce975ae588e625b7799ef9ee437160129f54f4625761350628b56dc7a38cb04b0fbccd2fc67322228fc179d064e3599080a35"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_13(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9cdc0c9d7e25fe80cb61e3745989498511dc4e5de76833438941c947aca3b1f3"),
		nonce:           decodeHexString(c, "3b81cd9b6082ec5a3d222c14db62f65b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "90c13afc65a139b48374b02e91232223bd9ca319b9dd26e920d277c939e9ecfb"),
			decodeHexString(c, "a68dee224c30d58bb869b3d84aa77f7eab4d4d1e8130012a0d443f9be9a643ae"),
		},
		expected: decodeHexString(c, "c5920441447b8ca365787feb8ff92ffd18d7f28fe7a8c726172c95d642ff3d5b38c4a9f09e72b7c095e73d2ae7d01ca4d9719c318cc1311ea7cb2a40bc8a1d75e4890508bff48fe74da84e657779c94511d608154e48cd252907d4918a36f1f20ce52191cfd9c8f36d48d24b25b81636524b191b86349a5a4883bb078e4f8ef3"),
	})
}

func (s *drbgSuite) TestHMACGenerate41_SHA256_14(c *C) {
	s.testHMACGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "26c7b96f47802510f0a0ed22eccd26c39ae56638aaec9a52d90d1887297999c0"),
		nonce:           decodeHexString(c, "09ffbde5ef15ad645b4daf2b5bf8bbe6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2e51dbbfda8c92f2c838bd85ca5dfd7f35504fae1ad438431b61c2f0625d5201"),
			decodeHexString(c, "00f507a359585778988b6bb6b91f23d4ab29d2adbe632e4cd4646c8cd5f1b76a"),
		},
		expected: decodeHexString(c, "b7adbbf07414551464711ad9a718315b0587db2782d34179b70b4c0e323a91ad9de40933023e3a6be71cd50dc58953ad1bf66354bc45dcd9ea23682d487b43903a8f426182536e170af8b04460c586d8ca56e4c307ab7116d8130634dc9a58e1c3077bbddd6bd58c8a0fb9b18c4b839aacf5fcd711c611db120e6a605745e86a"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate43_SHA256_0(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "ea4da988e6c5f0685a587bcba36eabab586a87e2d724708078bb3766a80546ec"),
		nonce:           decodeHexString(c, "9221ed63f8003b6e95f7fc8043f5b01c"),
		personalization: decodeHexString(c, "93dc2c6b8499308ddf040ccf81464f482f09ea44be246f8c09181d488c28606d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "576cd452c79649d871d061bd8e1d7ffbac4687a72e25158c9e1dd87f7194f571"),
			decodeHexString(c, "c30f97e178b95ea29c60f9220bb23b15e9f0dcfacaedf1e825907327d732b0b6"),
		},
		expected: decodeHexString(c, "13ac0a60c6ff5a08f580bd1c039172fced4079a0dbe984242e7b0e113ef6694cece20e53162ec533d1fbef12eed5a10a8b12829188baa15dc52883c9a8317e9c084d3e075221035241ec050b0bd498e5e27fd97df86c22fbc5776d2edc273ca930c0a95877f4201378bcc3173556e9be46b0d55b340de69612c844166c10327f"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_1(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a850b5711449f79f3468e8bdf10df2bed8467546aba6229f257d8bc01b17c051"),
		nonce:           decodeHexString(c, "4ccf750d53e8c3c41dae2201da36a948"),
		personalization: decodeHexString(c, "b664f6ca0987d12db7074a892aa505369499f58fad3973416df415b87ddac56c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f63be9c8490da4996c7d551a9de46dcd1d1bbdf37ad5883749cace9d9f6d9db8"),
			decodeHexString(c, "752dd42b510678dbef74468c1a26558a67f271867b3bb8aaf45b98686ea70af5"),
		},
		expected: decodeHexString(c, "afbea8efd4d50447e1ece2fcb60846b72ea50cc0c46c5afebaa747afe45f03cd2070c9334ee42d10e358dfb378c898f0031f38f5cf5545916cb2dc0b318f491cf3a3d3393a87753b2512cd8163aea85ffe6082dec5ccaa6a6ef85a7b9733cc323ae8748b4c712c273336186e867504b3c7b2468c726fc77917c2280ca0791d1e"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_2(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4d49d3e490132f9330a3b8ed731790da8480f03299e3843920086dbd173ae72f"),
		nonce:           decodeHexString(c, "4d68d064a0baf5834c72bf66472e2f6a"),
		personalization: decodeHexString(c, "4487251a3bef7e408649f03618799af364a3b47f8f804f7d60c2d3b20c53f5ac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c3745c6eb7669599e2c89a7c6f1c295b5b7373057816a182fc78bc8ad7693a32"),
			decodeHexString(c, "dca71e4c0b76c68118f14cb026627420b27fca09e213db84298032013c285b62"),
		},
		expected: decodeHexString(c, "a93e832e4b542cdc70208e42039e5064201a2ecdc528f609bec2d2695c30c5dba25d43968ef5870d546fae739139f33bb1eb2d4d6b31bdd2d1c52e89aabb45548e1c2cbcded4f9c9069e31a08e5420b3197d9cd70ba625dae9ae41fac18b1886c442b4b5b15c7b64cf80074350bb2f02d62f88b5452133e9567966ae1a3c7331"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_3(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "604f43140ad6c4e8360395a1c5b98f7e86cb8ee78dbe5672c37f58ea24b07fe8"),
		nonce:           decodeHexString(c, "9344f2f41aee9a7741291f7b55d11e92"),
		personalization: decodeHexString(c, "bb981dd8e390829577a610589c401cd41ac4f03271c1987ad30422779599a01f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "48bc9ffc2a1d545180f01ffdbb638af85e532679dffa92b776697e8177c268d6"),
			decodeHexString(c, "4b373c488c7b79479ccc6a4c56a3c1eb1e97356f46c3aeb5bff61b8749fa372f"),
		},
		expected: decodeHexString(c, "767a4152683e8be55b2bbeec6f7a2dda214b7708dfb4eecd064d520e90da7682a89629f6da97e40e1f7c9e532011fa28f42396be604193f7f44221507a24991740c66258bf02f0f3d9431aec19aa76cf5ee2a5744b05c6dc343f1ed270a4b9ebd5326475362b852fe5b44694db8e4c47f847da927a09efd07c80595443fe66ce"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_4(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c90218e658ac6b41dfa4b2820a758c024b6e0cf9abe2b999aaa1e673d8ac81c7"),
		nonce:           decodeHexString(c, "5656251045f3f94c6911a0b238039587"),
		personalization: decodeHexString(c, "bf315bae9e0e691138a15547a692c774a5ffd96b08fae9408bc6ebf94f2dc32b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2e17034a7a3197f62151a691422d66cacd84e39b8626a922f09e6c1e77fe27d7"),
			decodeHexString(c, "dfc297a291dbc6c5dd17cb3b1dfb759a21f58f8333379c8db2bf0de97cca3ab5"),
		},
		expected: decodeHexString(c, "1a799a11b051c6a6fe6d921c41f64c56d0dd84f0c137edc770d37f9a1a787a1ad67d8f1c990776aae08af7c0b9179db8270940db11885b910a1ec502e2f5d66d6c314b7ee65f0ba4b177ff980480af28dfd3709e2d3cc6974ae4c11b9f97b9eefbf32301776422cbe3c9fcf24a19f2e2a3007946303f3700097d872e11febe26"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_5(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8554821e05a966e51cc86d3d0312a94f125f89fff56ab97e0f9db5c746d6f5bd"),
		nonce:           decodeHexString(c, "b208b9d94c4ce82c86b7e5ebbe769c0a"),
		personalization: decodeHexString(c, "4b0e5786ef6cbe46d759aa648613a922ae1c326d4cb8ce741bc1fa81b8f8ac8b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0cd90d16285fb69771d76e031eaabd5f7b9955f717aa00307c4c65dae4bead32"),
			decodeHexString(c, "f03bfff7cdac519ed1465e749177caeaef7308dff57ef41fbf1cd32b8d9b286a"),
		},
		expected: decodeHexString(c, "0dbd52be12081e08c12b4147393db622132ea3deceb140aadafe702252e967c340a4a13f27c72def4b4dd68a12cf9b6b8546226ab2c57b9941c010a572eea0fba9a8749b6e876278695aa73f68cf7a8c86bb52dcbab07cacf19e3b84d2f1c14eb51ae396b6ffac4c93bdb4a3c9e486f2641a37aa0493ed07c70ad3b505468190"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_6(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "021f275f7823b872012c18aa92acb01be5cfcc6d44a4b35cc24659f2e12183c3"),
		nonce:           decodeHexString(c, "ec63898f606538592702d5eca2e4ff4f"),
		personalization: decodeHexString(c, "7f94ad23ba6d54db3d587ef06bdb50dbd4354b33d3d9d03e26fb5117497847d5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "39902b10b045cd42a42286c12bae6f3bdf57f143060c8bea80ae961d46e275d4"),
			decodeHexString(c, "fcc239dfad229994fd6d3cf35e46fb14c1381c259086b41fe719312aeafd3eec"),
		},
		expected: decodeHexString(c, "7acfc3384ced24f616bceef72b052a99f5c2eee9d724b92ddd9a6c466e7df7faf060cc5acaff127a05b5dadad29f6eb8b79c1c07403f609a88a947c5e7d70de1021d19e33bfb68439ea106b434c756a4e687e2602e4407c712eaa4cda2154180128c3ad918b8a9eecc1fd7d52038f0496e38d1ccdedeba1c514c7169762e0038"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_7(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "477e1c8515f368946f5c8b6bb111516d4b756113f37dfe9fc3ecce2efd8b5dd2"),
		nonce:           decodeHexString(c, "a1a6e54762942a4a1dc0d58fa7895bff"),
		personalization: decodeHexString(c, "52dfdde18386885d2b2fc42f98d9d718ae54d31a5a090f8866c5fbaaba90156c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b10900a8968e7b8e117c22d9d97b1fa6c4df0f0a8884d620fcc99c64d351efd4"),
			decodeHexString(c, "72ddcac7064ddff0225f61685af77dbf0d3c73ee335f1cec00da8824a0e03f8e"),
		},
		expected: decodeHexString(c, "6cf275475f9258e86bc31b8c98fa4c69c602371afd32c2222697f2b60f4cf998d59e18ad7b14d44d0b90294b1f1539a912e0f17641b747b5661b5831dcb664ed643c2f4b66f46de05b5f5fa727c64986aebd7093792869e1a251088bb475d1eb6538c4021abbd39d0f774c6cbdb41917d83fa968d96e840faaeb8ed5c11e5206"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_8(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c02380281fc7b8a24e4b28b4e558106bb131efb72fc90cfa38f2c50b00162224"),
		nonce:           decodeHexString(c, "b73690893ac8350e9e2f27967be1a07c"),
		personalization: decodeHexString(c, "4f40a4f971f777ebc4417b6347cc3ccc434d8c7357fae77c16e730fd78b92f86"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8baa40a4eea9e71bdcb642881c6013db16410b6069670f80c60b6b1e8bed8b9c"),
			decodeHexString(c, "421bc6d1fbf940beae669199dd4e9adeb7ea76692f18dd616fb847e450ba83c4"),
		},
		expected: decodeHexString(c, "2b601faccc83c5c023c8a64de29d9065ae372de49405c6283c7cdcd70baa8c5ffd4a072615f2c476b5382b785453bdf1f494dbcb9a678e2046693ea0afb33a63f5febfeb40785daad8e9306bcca89a1399a47ffe883871f55cf0b2b86f375f0bb844234f9ddff66645037b0c8771843aa3b83193d1381faabf013a9a6b34cc05"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_9(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "44c9d13606484d13512a243105405dd124bb31aa2dce7c924acccf7d309f1b09"),
		nonce:           decodeHexString(c, "d8ab01b10063d71c93e3b49244960b0f"),
		personalization: decodeHexString(c, "60a7fbd174c0b4f92fdc3469e1130ab6dcd6dc5a74228a82646ffa0349a60749"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f8515192bce0fea888b7c58d70d37082a3abbebdc7070430336acb4217eac9b1"),
			decodeHexString(c, "068740da4e58c1797760a6790b53822057da817b8ccb99ab77ce49a570352828"),
		},
		expected: decodeHexString(c, "dea55eeec42a4dd2a881c7bdf6059621e2f1ed611b5cd716a7a0e03349c0e74fe71488e2fb272a8a56425ce4d971dc0cab2cab5e8a1e7e855aa33681dfb63b5a30d0f1844deea2ea60ccd5a351fbf1c94acaaae7feb995ce036262b344b0ce964cdad5e3c1cbb9282febc6a298c597ee4bae512861232897200d7116ed10661d"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_10(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3d7b9004662fd21fedbf04b917c6e349c1bcd86e320e87556204bde436ef1c85"),
		nonce:           decodeHexString(c, "7d4fbb77f14977030ed74ff43ad6d6f2"),
		personalization: decodeHexString(c, "d421c84dd0807921503eadbdcf326a4ce0808f342f941e24076a9446d34eb712"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bd7dfc2285ca27999f9fdf7428d59ee77b935cf7412882ec0006cc61f36f01e0"),
			decodeHexString(c, "eda136626ec38aa374b434fdd986e90025ca470fa45e0f4748375806b8dbd38b"),
		},
		expected: decodeHexString(c, "dcf27906dbff8f710a2092d9ace4ffecb9f1d1d4cb104f1d3be76b17ca18aff4db574d1053e2e3437aadb1ad3159547a77b69e4b708bbfe60942e6c2d4efe2ea1bf8150ba61c159e9de88b6b9175390df2381f58b938b83b8f71b115ddcd5471180e4dbce79e815baa6b0a4a3e137c5488b231ae396ad170fda7fbb44bab99fe"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_11(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9a937114e00f83915386b3e66701ce6b1ec7fcde6c302d7383b1218121e38a3b"),
		nonce:           decodeHexString(c, "e24546426e524e670af2188c5360be16"),
		personalization: decodeHexString(c, "ba876365a4a86fdb0af9069c733d4a9a962de2ef2d04b4cc1ac2a50fdff70dd1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bdf92fce03cd2691bc9224c9047890bd0977759189d193cf36f3e7e99e230dbe"),
			decodeHexString(c, "df6aa525733889f65a4a2debc2f08576c22750c4722cdf820b691ec101fdfc5e"),
		},
		expected: decodeHexString(c, "02dec2be8df5d686f391373da54fd1dff7720cd39d2e3eccd85db0d4986cd316cbe0e843f4cde7a90c123dbba566880f009d04e29b51defe3cf30b12d10b8de01b3d86cdce4a16b1142f8e4aa132a18b7225be7be818a14b894608dd9e6476c87b558f3ddae530af49dc16d530e92391b00b828db9b6e49b68258a0e0cca4fef"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_12(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "76560236e3c6c548ba1fc39efc8d952f911e46a297bfb666681e836e5a5baebf"),
		nonce:           decodeHexString(c, "006cef471ce415d5ea83a95c31009194"),
		personalization: decodeHexString(c, "01f0711a8e1164cb97692552849c2a1c9443006f5d22ff2d080f083eb1020c1a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6796a8fe3f9414c5e495b732bd7c4b60208ecb7b318f1d14fb0a197d6a21c6e6"),
			decodeHexString(c, "e949913f3b2f545db51d38d512a0fff24a19d6fb6a2842ede621e357c8c80164"),
		},
		expected: decodeHexString(c, "65addfdd398662599e452ff5e5e690deb62ea73b9d453ff2ca3d164f85677e0beb6ab9dcd7ee9ffa3293d7f0375bc97c87d509e650702dbea33f43961ceb49adc2ecc85d165d53e734c65bffdebcb9d881bd98f8b339c530b267f31e2f28574ba69b5ee3e91cc898dcb9492903bcdb7d08169d007b5a30b14b641d69fd9aaef8"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_13(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "7e47e637a043f06e574fe6a718267f0bb5e16bb8e342c7a2e6b2d76ef9f10299"),
		nonce:           decodeHexString(c, "a7564f36c172bec0d2fb2760a7edde1e"),
		personalization: decodeHexString(c, "825e34284577c8b62a5606a9046200238c78ce32e11869ffbc83825e1989cc97"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8ccc4e243c650f3e56bf49e8858ba5f36e0f5dda3aec49bd624b6ca7e832980b"),
			decodeHexString(c, "a2f614aa755f50b7777c354f97ab6ebb9376fe008f10923dff3bd4da6848aacc"),
		},
		expected: decodeHexString(c, "bdf43d744a41c83b45977a4edd5e701dbb913191db52c023cd4be9b03d6971561547a77021926d9f6aca5924e633b7c5503197d47dbf6d412fc28f176f53c5a50d792ecb8cc7cbb5713057bdf17d492daab67c6cb001edc86def7570d356ff83b37f643ff427aecd01133b81d43f6a15e95c4a1b04cfdb614a1724b75f73be70"),
	})
}

func (s *drbgSuite) TestHMACGenerate43_SHA256_14(c *C) {
	s.testHMACGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "517f160ab174f63da837f9ebe5545396f7e78a4171a73a76c6c2244b0715fdf3"),
		nonce:           decodeHexString(c, "b02adc63c0c8790454a6a9d01664dd51"),
		personalization: decodeHexString(c, "f21e5f51f5e119e17a5ba061fe5aad0628c3789f4df3c0d7025b43a5fb155481"),
		additionalInput: [2][]byte{
			decodeHexString(c, "38684dfa6edbd61e464e49f7d01932802a5a5d824db6b1df6087e84a8ecd49bd"),
			decodeHexString(c, "4949b08a12656c497cc6760791982c0d4e674b0f8a14be730a91689ee77e981a"),
		},
		expected: decodeHexString(c, "fda39bf8dc1aa785422281dec946bad99d5ead17cac55d47bdb9bd0a80a72f3c611f92bcf29e3e45475426a7a9f139b755f332cf75035b047697f4131c9bbc9ee825ede9a743b14f02dea122194405864aa2b538ed5cdf40ecf81e02bed1556ce0e7974548f050b084b8f3626c0fb2c7272d42cdcb039af4c7d957e285b53b5b"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate45_SHA256_0(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5643776352534d25cffa8f62c071dda1cf6635008aca89aaaa574b564536e3bf"),
		nonce:           decodeHexString(c, "f79149ab6cf92a106931e51f0541c689"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "125edfcaa0cfa26f2d3ade21f3c7b273e0c4a9211b5b6c9ffafcef4ed1cc9112"),
			decodeHexString(c, "c1fc75f96f393df228685e1ae71539b7d7db0de05887bbdf6236e465b0014458"),
		},
		expected: decodeHexString(c, "52e2a447da5e55d0116aa47e1dafa35aeacdf777c70c3bd6291af7e5a600c5190541669e344f5d2094e014149132743bd8d18c8938399cbb3ac9b99978b4e92f96d3c3a9b4c6ec90bd9eb45d1ccb7935488e490feeaf23b44c6d9d8d99f953dfb67e3897cd03050cf4d85c8c3f124a4c8b90e1bba98f7b9f12898917fccbf6cf"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_1(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c912bb219548b23346f5206f0a66f16698d70ad1997801b9b709d3428cba6d5f"),
		nonce:           decodeHexString(c, "d1cd49802816d55dd41ea08aea40cba6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7703e37fbf2d23995b393a762c7be95315ee0a2f73d17aba55c7fe58773880ab"),
			decodeHexString(c, "e53e736d6ec5558fe50979d280fea1875870826a0cb9cea3cb23bb9b6644258e"),
		},
		expected: decodeHexString(c, "46579bcfee4077dbe7d25255a276a0a57e18797ba395cd727e5114c5b24474b25ab0e19191071492a30bed3090862ea8e203c4a1cbf41d9c48bf5fb51dda7817cebe0cfba43fe7a0f12c24510b9b2ec318b35bedce221ad3353a22e4a5ccad12537d5e5bd77b481793a5788ba6376b751c0134f14d924744ee2c01ccb76fa33c"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_2(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "df3d1d0388742b4a5c010a5a21404311e7753881ee1ec4e2652f00c30b92f520"),
		nonce:           decodeHexString(c, "faafdd9e53737c2678020b95d0c3f7c1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0644dc5880ed92852ed37f8d87f6c6dfcafd6def4446fa0eb432c14cddf2f10a"),
			decodeHexString(c, "d40f131b0e02b1c74cc5e0ad8859cb26a47f996ecb60f2ff8a277760e526d8df"),
		},
		expected: decodeHexString(c, "10f6d23f911b851815260eb8e3fb0ad141bb5f03c830d9d355b021514e483d5608158c4dce73471a31772b864e9250c72b1ef9545eae39acec4af0dda8519607657b5fb39818d725a4ed33c24453e8fb1e8d4e471672b346c0c20b8ed5e0cd356ae809cec1f73ae7529f6e88f321395854f61c35157bcdaf21bf52f2ab51cbef"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_3(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d788812e4e17649951c02c187b15f09fe847e123e7266f4aeaac710f6c3d1625"),
		nonce:           decodeHexString(c, "03cc7c29a190572ea7dfc48294f56878"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2ba83c739f5893d3afe796774c4966509626fda16bee8330c247c012074ab5a7"),
			decodeHexString(c, "47bf4d370178e2ff4880b393ff7ddeb0ee09209b191440e37c780cf4924964ad"),
		},
		expected: decodeHexString(c, "356d211018519a4969fbd68233bf76cbd2c5abd855f2b0abdbafafc3b47f4825c1716b2fdaa1123c2ac1d4f34bd3da754b0aa48ab13823838da5b33bae7caff78ef6a66e5c0c77326dd8f54a5e0869bd2cb0d7204d63304c13d13245ada1df9a97331004d785706b1d0bbf1b6b1de68d370dd125d7951df23f0edd10ae79506f"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_4(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "2b6f323b758a84da468d1008e780bc828c8b649fe6328134cfdbc39e19eaac59"),
		nonce:           decodeHexString(c, "17bf7faaad250b6095b85811e82ab79e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "53b4b3e55643f43475782328cbf1e916918da2c2e0c063c54e0a3183e6c3bfcf"),
			decodeHexString(c, "c05ca07aadde27c2eb484648accbf2d34e82f24d08b2ba12c316f2a8c30daa91"),
		},
		expected: decodeHexString(c, "8859aa86fc6cc4b8e55988643f0a2a7bb346843f0d58e3755fc5db925a10a75614a9e246e649fb616d60887645313afe5d0f9c8287c765117418282da310ef1e7b8b43a482da5eb2bf7584b3dc07de022d25de9adb262be5b1f1566d7a94e357765bccfc5dc044345efaad1110b4f5a27e77c503873bf305c42f589df611c880"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_5(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "de116198e5250bfd31ce835fa29f1e559ea333b14127fed0df323342a5d29b28"),
		nonce:           decodeHexString(c, "d7a01a18fa49389b04b27643f2ef1fba"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d85f784b477dd8aba132cad83fd99748aff3572cb04e32530bb7daa937bca506"),
			decodeHexString(c, "78fe739bd0e0b330eb6e98679a9068376b62f95fad49e9627d1297c9de55fe7c"),
		},
		expected: decodeHexString(c, "0d5cc0d9659e8187202ea0bf60dd2f09c29b49598606ef5b0ac4a2f5cb7dbac334dfb56d70a676b4e2f17afd87ec9e277fa089f033616194a2628ecc7ad579f74ffad5eb1becc06e4f30b08673d9b1ba0ce9107bddcf27f44a1f92b5ad6ed6e9ab3f54f9abcfb128d404a1d267a464ec75e880a108fd49501aee99f1a2a6cc21"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_6(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3df5c20c256be660689ba6accac5adecd5f53342e19064c73bb50c5399bfd13b"),
		nonce:           decodeHexString(c, "b354dadec57e7ce6aad195e6bf3ecae2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3520a90f6fd4a937e59a06e8efa102e7912d0d9bf75c097013f8d7d19343bfcf"),
			decodeHexString(c, "79e15cf2c0e4cc093ebaab800a9800a48f2a2e6f6c42cb896022f6364cd768b7"),
		},
		expected: decodeHexString(c, "42a72ddb7f4fcdd6c881d6e80451d2e7a69abe8f526b222b62dc826b19734ab4bf59d5e79be1672b93ae761b6d63f44185a07a03538fc011d9881cfa2fbdd5069041c3b078208ff4c3e3853fe67f5637bd80df5f23ba76ef07a2655a0f188b5e073fc767fe66a4610764182abf50410ac870fc3078a1ec21e52da984e9a08d8b"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_7(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d7c7dd4af3480bd34e28366c21ccb2a03dd7015817a69de1e7e4388fe9e88523"),
		nonce:           decodeHexString(c, "3452fe913fb5177cca02e65d991a25b6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c4b1de6ca48fc3332114ee93f1734f1ecd694cb7e40f0dc9ae770a8607b5df97"),
			decodeHexString(c, "835df8e83f7a03573946e21e3fe58e6e7906301f4493b7f682b84e60af680c4e"),
		},
		expected: decodeHexString(c, "c0162dd685dd8e73a586332dcba95807e45a3682b8908f3f211e24243b50a34125f988eb442d52e09f003cdcd4a3caad2017541c006f0a79909cac5103d4fde05fcd2b58bf005afff016ccc310d5a85e4992beb7b8356ab4041a2de38d0981c49dc00cabdf7508d73c92bd68792bdf619e1d735bce469023eac891579e08b9f4"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_8(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "741ad501296d3f18680655d5ff88efe7db6e917af6d26df9bd20895a70381d11"),
		nonce:           decodeHexString(c, "8281033e701a290c81edee11571297ab"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "90221d164e9b0db5fcdd9e48e0515dd578a837de7897055fee7b8d83887b3ecd"),
			decodeHexString(c, "85f8198b9258b2855286c1327d54062ff733c0e5a9c3a6f9cf2a2c85e4808779"),
		},
		expected: decodeHexString(c, "d7e7f32d8b6a82c071094879d15d12d96c3ac653fb555ba6946a11664d01a554ed82c0fd550e6b0151cc3aeba5768842878c049f2d2e2dffef1d5efeea2e27e76925e094c7091edf885c14e9700d46000f2959abb7f2f5d29886d857a18d74000f91bcadce8212835379522083ecd5a76a157bfcf9a7c822949927c3472c30d8"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_9(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "561a4330c56e459bf7fca66a3ae97be126fcd81f56b497d4f0c03d45313515fe"),
		nonce:           decodeHexString(c, "8e0e519bb591cedfb5754f10757b4a2a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c052616877a19a2447f447bda00933695cb17ae4a983eba2455079e7505dfd54"),
			decodeHexString(c, "1a77a9fc49455e6a7f267e3720708f2b8921dcc6b672b58bb4721b1e356510f2"),
		},
		expected: decodeHexString(c, "50d61b225bce39edd2fe26d521fb0b7254e9055cb08dacab76dcd3f2baead3b23adf875eee062bb37216dd7e94718797ff1fc90a1015cbeed501375a48a24372a067662b280edb96386cfc53cd437c3c016a03f2dafeb4c39e7f340f991b7796b081fdef69cfdcac950f81b93a235b31713fa9ca05398c70e8811bbf5979d749"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_10(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "38434169f568fb1e1836a62c85631acd8f5be3dd64a09f6f2309c777398d4c34"),
		nonce:           decodeHexString(c, "c7fe254cfc90e1913be7df63b7ef07bc"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6a6f43cbd8d228c1e14788868b59f68deaf5f77c6416dcaf4bef267a79266a9c"),
			decodeHexString(c, "e06a05f1f4e9f29d17df2fc030a1abbf85c63530726d0f76dbac51f535f0ce67"),
		},
		expected: decodeHexString(c, "15c039bd9a7626ca6426f763ec09e0c0ad166b56ebef62a4b4392f272610f96df95cfece3659a24ee6b1e403556e0e30e2a065986fddb111542ef49b0eb2e15f31ad14cbc4dbad5d2abadd26a7007d18bae0d916fc33ddce158e97133490c8bf6337a329e581f1992b10efb9859667b083cda53af45ca784c374197f751be856"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_11(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8311a7cc5af8b85c0d129552cffb9ed9a172c0d9ecd6a3cbbc8b56e8f14bbd40"),
		nonce:           decodeHexString(c, "57977e3d5cc96c26c177b8a6e969362a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1f86c630850e2bf070255c511e4edfd0a63ddc96bd072df784e550a165f58b3c"),
			decodeHexString(c, "c1f971acbbabdf5571c90905243e579193d79c259d570671b87f71652cc85fb9"),
		},
		expected: decodeHexString(c, "3ef4cb4fcdca24583810ae7e892b790c03e370b3fe6627cfb3c1b1096494c0d51e264e5cd278e1faa915726718fd781d961ff9d765057b8c500793602f65e01b52039b61d881686af9a47feb9425f3842ba821352b66a52c60fc4be92d6b9b20cb1d04f29bc5387f941c6f1db60986d901cb4c2a95a3822b247519afe2851fef"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_12(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "1c3d1f251f06a6d0c28e2a25e72f5c5cfcd41e18c73eac703fff701884fd9782"),
		nonce:           decodeHexString(c, "ab94d19358ba74042ab5050ccf9be51a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5f670e2e7714f4c89242a58544e674453b695fc39d779894b9caf55d9631e063"),
			decodeHexString(c, "827fb33374e4815e0771b07f590251c1d5ca5a69bb235ea2ad886f2956a8f751"),
		},
		expected: decodeHexString(c, "0cb69773c7c34c9c03bc678f33ed6e74da3226b43f5e8a4f25515ef723886ccf09b1bc07d468752d846f50244d86ba25ddcf8995d645e7c2d086689bb08bcfd52a983b0973235699125b21cd85f4f1648b21b05b0e2e7eded2ec5864170de8d0b0de46611270c916673f126ce59931be6692528421415f8d4a8266714bb04559"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_13(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d6c7079504c53d5fcb5ff68d6694e6168e8ace2d6e1516f89a0bbf0483c359d7"),
		nonce:           decodeHexString(c, "011248ede6a732704a05de2388764f1a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4a121966c13a5bfaf4bed25120bf307010bc1bd3112b64ef0c00f3cfb2d25644"),
			decodeHexString(c, "2a57c3cef57878a846db8858449939317f4c5767ec381836fb8c363a6e3abbec"),
		},
		expected: decodeHexString(c, "8530e5eece0c0844a18a5f0e85cb10ccf5f706f3fe21ebf841412ee432795811def6fcce30303ee764e3411ed6398b6764431736f53c6dc5fdb627c5d6392e47d20f15ac39128c1fb93bd117f2fa13cc76351b1d01cd4f87b35a3506e0002679beda64044947ec92a1ec5e8fc761281e16ddc0cd43b48164b2eff7796fe3a499"),
	})
}

func (s *drbgSuite) TestHMACGenerate45_SHA256_14(c *C) {
	s.testHMACGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "7fa0633aed9d622d26ab60779879c9f3e84aea2313f996c9558f934724db2d48"),
		nonce:           decodeHexString(c, "76cd330bb81ae68860d2abd0c7bb533c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8d72118578abbd90ddbe6115ab10b499afa26c2360eaf6fa118ba590ac6717c3"),
			decodeHexString(c, "6ca4d45fcbd0c7e964557b2bd7622a528b4722335b47383f7bca004b7cd5cf04"),
		},
		expected: decodeHexString(c, "360d9ff3111c6b713fc641b571b582770991885f2fea806a485006a1b4f41ece4ce83dcabfd403edde77780c044c96e85ce5d1f1a368ad881a64be8c41e87f0a682ab67170ae05a24b08b4a9178d13ac9928ecb3b5e23e745d93aaa5f111c335c77cb9a5c3da8163cb428fef60da737b884105ae57616637b0e40bad9594bd51"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate47_SHA256_0(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f074a8cf417a9a4c4aade25f530567fd7a1410a074f3b0edd664bbc430ddb250"),
		nonce:           decodeHexString(c, "d3c0823b6d28a42d5f0fc01496d32859"),
		personalization: decodeHexString(c, "972527fe90601de9d13a050c7e49d556d0de6b0e75e0619807ade2178eefe47d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0dc678372c9f24230d15acd1d36b13294c58b76f2847397fbc32dfada12b8e51"),
			decodeHexString(c, "59874caea33944638e1e11fa3626fa2bc26d4502120c17e0e198d04f9ef0ff95"),
		},
		expected: decodeHexString(c, "79db15ff50059ce58dcd44553f5cb6a19554cf35d2b64c869336a797cef93b24c64b716aaa11cd82dca0143279ed7cb2698d7cd726241ca17b5ce6831b08ae84dd57f95b11c07f7fef1d381eb0b7fd535b902ccede73538155f30100fd13ff007806b367f5032561338a92541f441725eab17996dd58e9870025d98b4752b547"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_1(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9f5c9900211626b17c06b5539432f6c30d925e222fc1dcc466cdaedf1f727c31"),
		nonce:           decodeHexString(c, "a1e46afccd53e814f782d147c82af202"),
		personalization: decodeHexString(c, "92d6864dfdb5a6382de645eb55c243192e828e49f5322e4a769bdef2bac063ac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bde8ea0bdb9e9deaf5ac5b8f01f23eaaa1f6ee439d477668192e2d53427251d6"),
			decodeHexString(c, "a746193e4731f565a4b9eb0d9a9d8acc76c7f7d6838de3ab758ae8936257a485"),
		},
		expected: decodeHexString(c, "734fda58d20881a190d29007c82d5bea9af04dca8e916182e3cf1ccd07d4aca11410a92643325d85f63ab26a791dcd3100ae814d2299c6f6afc662d246003a4975b85e0d032b0c8f485b4a3008df9579d5e2f7e0626923f46bcbe5e693590359ad67d5a45b0baa7c77bac396d66081bfda6b7bb71acd5a6b489812447ae63b78"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_2(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "79edb0af741348294208242c92b8dfcdf9e99fd20996b2b0825a35af7fcc177d"),
		nonce:           decodeHexString(c, "3a69da52b49809c566876b77b13539a3"),
		personalization: decodeHexString(c, "5f1cee7ff01c5fe1d182ab7c4bc7bf84a50f16f0fcbd4ff08eb13c2e3743965b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e6d9361dc5093a8c5a0ae402811e166ac006f5f6408b5209c8de263cdc268db5"),
			decodeHexString(c, "ce7b94831a77ac8b37118fca378e90d786a767337289b3a83e7f797148cfe223"),
		},
		expected: decodeHexString(c, "0b9bca1a9601da23e903891753125484532172b85d3ed22c1695349a7cded86f374b1339398208e07ca63885808c5f8f775b15a379f9efaf107ec5ffd9f763a0ddc68c54e612a89ee864158d3be45597671ba766acf2c47e8c96ccd146eae4c0ab608c4e8ad5c63b0a66e3ce6156a05ad63d599306be4831107151c2cfcf8476"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_3(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "882dcaeecf17349b31d7bbbbbeb9c85270b705b46e7a5b60519d8df30f17aff5"),
		nonce:           decodeHexString(c, "46e777807732a55950af791ca1ca5fc8"),
		personalization: decodeHexString(c, "f771698092ea1cda1c6c232d0641bb76886c6df8ebda39e95c7f573186f4cce5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6c54bf9fd6e48c609846b8a6787e7406db2610b9838599d361be009842301c35"),
			decodeHexString(c, "23b208e7c5319cb7b37fb8e84638f684d5323779a7f4d3518939f95b00d93705"),
		},
		expected: decodeHexString(c, "037ab6a81bb8b468ecd17d6d09196236df1442ee8c61cd2734873fcf9a7e56d95e86ced82b1bc8d93e67e33044fbaf67fc389d4f46612d8b6ea46468aac3237607403ee3f59632c7a0fbbad6f1fa7e66463b969e6944a33c56a8522812aed5bbae582868820576d90cfc6e80c159ea1a7802e367f674d206bb950e8ecdd2baa4"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_4(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "11965cda20767ce8f8c5ab4c9b10cf589324c3a9d6a277d27d9c5c4c93c6517b"),
		nonce:           decodeHexString(c, "1798523cc23aafb99a554b24a0d5e45f"),
		personalization: decodeHexString(c, "566d51c543e9cf828a659200862f1a2a4994009a58ebfc8f303b0852e7f53343"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6458534c476ab44c4e742a8de3bdbc576b45a880b1bd1ef97c99ce33636aafad"),
			decodeHexString(c, "feebef75b94448968acb6d79a3830c7b1eec03838bf623c50070b9a99982c83b"),
		},
		expected: decodeHexString(c, "fc6be50d4f8da8be8dba73b5e6286f9cf8fdd6fd686e84b03ec5e1bad1dbfcb190fe333db6dbf72babf0d9cdd5182201d69ded39451f8910b01a33365e37ad8a71a40f5ce10d2dab6b06d134f1f3130567ddbce3d2bc17931d60925b8542de1a0a3b1b2a4e2491dcc18ebafe4e095274c491d09cbcd90f7790274c5ec07bcb33"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_5(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9c0693df87f400f82f61cb47cfc2d672fe41e1cd2e17418ac1d51dfa4d8bace1"),
		nonce:           decodeHexString(c, "dfefe5a66bb369d1e788b72a860b41c7"),
		personalization: decodeHexString(c, "cf4bbba8b2427117775663f84c77bc37160ec54e68c6aaafeecc967206a37b54"),
		additionalInput: [2][]byte{
			decodeHexString(c, "122ae7294c193b47c925ccccae778772355fc621be037973991b429c8466a2ce"),
			decodeHexString(c, "bf5a7c27b41bd872e5cddefb2f606aa836019d5c347950960ad9bff41f302f0a"),
		},
		expected: decodeHexString(c, "e3dad2408c98a142b27659e9c7f0ee269d8b0cd8caa62a5e6704ae2c4c908a19d3097421ae6b6d309a4009181a14fe083451ffc9bfc31ec1b5ce33a0d3f4ad311c2db315924667024b9d54e1750c2366aad08fc9dcea9c043239212bb7263fc86ffae6113aa9451fcd1be848fc781943ae014c13e28a66b824e32e8926027bf1"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_6(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5dd98a23c155939634161903f2b3da3fc31a18fc1c5acaddeba1fd08a08f0faa"),
		nonce:           decodeHexString(c, "c7ee4ea3efea01a22ceba03f86e323c8"),
		personalization: decodeHexString(c, "43501b961a81bc4458fd9dc15983f4aba6cd9a11600294a2bb8e0518d2ef5a6b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d146d124643ab686e9bf2187b88769f2443d6dc16fddfe413f9b187aa2e6b8b"),
			decodeHexString(c, "6dc7b364bdc9659e92b7b935432519bf44906fc79c3e178e688d98d7f1c78a55"),
		},
		expected: decodeHexString(c, "48ccf3cd5a7250191a9644a76b42a56c1a44ef05e32cad5069beaa74235e6e79c279a555257c17ad939e00f813a4571839d20d14004f18ffba309195e729e51d09840df3da1590a765791c8c9b92016ae861216f61107426860235f97cda7cf390aa441e504f386d3fe6b2f0d30b11a794866ef180745e0f0f42c0e74c16edce"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_7(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0bcd80d942263c3372f8f4257ff5d35bd564a12dec0c7e8fbe1cd1521e26875f"),
		nonce:           decodeHexString(c, "41db7a98b2be3678a76ba981e44767b8"),
		personalization: decodeHexString(c, "acac5ec7e76ea7a7a770437d77ca74ca9e364b20fefb02be3a3c2811c026fed2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6025b0b767745acdc844877b2b1b0bd669ee857dacc9842d5735ef734060d18b"),
			decodeHexString(c, "b41bf3892a914dc493098c74059517ec5506302fbc01408c0a0f3e7486b54711"),
		},
		expected: decodeHexString(c, "fb4031b08172dc6bc1b4957e10364e622ef2b86ff16125d31f8dde69cad49fedfa5d6f45adfb8242b374e48120405fb984f6af9fb4b53dcf2a78c6d073ceaf8136dcdf0b26ab9f7f32a3dd5c87d09af57d51658fce62258324a0f7481b31b1f423621e89301c728144d3edd91b071f199a4dd9f2ea4d72c21b90e833cf848c92"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_8(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b2747fc3131b61d2c3c8e6d3e8807ee1dbbd0d0795c1b8e2253232b9dc4a4c70"),
		nonce:           decodeHexString(c, "84e66ffdf6040a2ed22e549b688f14e8"),
		personalization: decodeHexString(c, "3ff1b7307b93a2fb6fa87729159e39e63e3f1005e056ccc09a50deab679a8d23"),
		additionalInput: [2][]byte{
			decodeHexString(c, "70c27cb8a98da217165e5946a4c1e5764b8f77f4f3c5bef85c2d150f8afcf664"),
			decodeHexString(c, "0dcaab2b2f2b51d74a1497da0950f40ec41eef100273519ef2d305bc1bd4c1f2"),
		},
		expected: decodeHexString(c, "3196508c7f7fe190613022ac30266193dac214ac4dca2456f33ac717000499d4afb5a336642c79d187dde196d1cadf507506e34ff8126cc065f024bd8b2ef70e6613e55a0cb9a1edb0971eb3bd843140bd84767b582561c27ca65cdd06e6e9360b9c7a4a5cf7fa2ed2807142af0fd4e75afe124de44ef9ce7782894b47a5c53f"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_9(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "79c40f253a2265a659f7c127904df1fd4851c149df7820f6d82ca8f886f7ca82"),
		nonce:           decodeHexString(c, "2066ac2491c6f46f3f6845ad64987aaf"),
		personalization: decodeHexString(c, "bb3cd677f58abb5dc58260547800a101413f6526f229b7a9bc707d4e0fdb9447"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3ea9d3f993c25a2291d0dee81434353e97f445b8eb21af2482024ce83100a1f0"),
			decodeHexString(c, "0498b70e31590717779f9d8faba5c86cbc6814c1c7aecdd4487249901ae43e7c"),
		},
		expected: decodeHexString(c, "b9d881038b23e35fb23bd80c7354cbc96e2be971fb38ac478702ef904789291b7b6c1002548df5749e78ab495623527967e37698b84090259ebb06bdd47848d4240591396ccecaba1ee19e3b8c9245d36eaa72a070ffa1b3f5a84071ed664d567715139974917c7929a18a12d0c14058538a38c488c9c4fe9eaa95a412301684"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_10(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a5b77a8e17178ff701a35996ed4f55d952e4418e5a348eab4ac9703c6011fa3e"),
		nonce:           decodeHexString(c, "92ddadc8c640b32f840863a5eafeec4d"),
		personalization: decodeHexString(c, "78286d39fc5180844e86a24d675e583514b7cb83ec691f537c5a3c79c73ed4a9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "484bb51214755c3eae593ece170e6ce0149e76040833d8dd4d5a9def84bad047"),
			decodeHexString(c, "add105ee47ef06f5d5bb01013a349170aaf2d5f7f5d5ab811f3b677050dbecaf"),
		},
		expected: decodeHexString(c, "d37a8eba004f3541308646ca57c15cb75e7d0aedb56b7bf59600c1e3f6dfbea78becf175b5e0121e096de9d5654322c0af2db301bc0acca5cdfae5122ceb9c79cb9f6dfbfa37731b2100127452541c65d57313e25619b609fdde38eb502288cbad874f8356e67ab7c217b513670f600432513e234d2b4aacb44bc417f8deb857"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_11(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "1a27c3084aae1e055174e8bad8e8366cc1add1a14c74f507ce849274332b003e"),
		nonce:           decodeHexString(c, "ba672516904ce5e8c975d7aba6059228"),
		personalization: decodeHexString(c, "6e28f38655ec1275a61e5cab038e3383bcfcd59674e02908daeb008213596b35"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b216ff71bd86ef02f4234a08a8eb8e75a1acd20182fe668ff7503249e7618aa1"),
			decodeHexString(c, "2bca751093d5f73ae3097d84c08872a4c6a0d31c56d6b10b181ec21484b54021"),
		},
		expected: decodeHexString(c, "ad052424dd5139802e198b6eda26a2eb6298b567bbbc831fedb8638815d2b719d12fec0e2a24de8cdde0322ff930110b10b850f8af9d35f0883bf9fe01d14e13c660fb9868d3476fe5b110f486122daa9b93a760c75a50a92d6fe742250868eeccfdd0449bcb5dc2eebcf6859b703610b5431646f2f1420b3691528c5193d5e8"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_12(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b5019df2c59490eafc352c76418aa5d04c253427b8cab96b008d21a2dd9bf532"),
		nonce:           decodeHexString(c, "b963166dda387bbe831798a8eba4368b"),
		personalization: decodeHexString(c, "b0c6a491682245f21ee9ca783559bed4b499b7eda3a789bf209c9e2ca67f3388"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea1edbcb22877f45e3a285a5d8a5890ce8768f4ce2d9ffd8c95635d4c0af50bf"),
			decodeHexString(c, "98c93e01ce7ea9e64a604c5b55c61ee2a0e482d796bcc388355e06f0f42888d6"),
		},
		expected: decodeHexString(c, "8755b0aeaa9a2050e4ca9cde67fc0a57ff3f6657d02dced9e9d40a7cbebd6abbcbf57895d7b821b51f9b3efbcc4b19262fe013de30d309e1d8b70995fbcdb2ee34551688e819a6d697a15894b9e29012fe477f487b28c3b4e90a76c0f976c75eb6cd1f4b4d8b839891e0cffe1c6ba51f258dd83764c0cb87b3c39802760e0467"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_13(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0f2c30aab056b778b82676c4e862780fe31649f4d1fcb8fc0cd7fdb76b27423a"),
		nonce:           decodeHexString(c, "7e92afd284532c2966bff91f67499d10"),
		personalization: decodeHexString(c, "d68fb207bf5afe47051fa40f82cecfede1ee011cb7a5d08adc21b3aacb9a6553"),
		additionalInput: [2][]byte{
			decodeHexString(c, "99f65d454573f1b5d3b419efcc80c29574154650e0a5abfdfabe8556c18e9245"),
			decodeHexString(c, "23e5a72d637af785a74c8c3b96d85ed373afc7fa0468f905c497f0f47c737c4f"),
		},
		expected: decodeHexString(c, "0b42774734a3271975049deaa9e34c3dc2a601b169252520a8f56bb663f8e1638e81cbe2dbeb8f669dfffb8a8be697b2689ce90abea735a675168ca5670a568cea3b8a1f08838a5e47c4c7c77f94f3464fa7b46a478e323279d9e4f01b82251e252ecf93faefdcecaff4052cc10ed87f95413893e350bfd692c7008a3a9076b6"),
	})
}

func (s *drbgSuite) TestHMACGenerate47_SHA256_14(c *C) {
	s.testHMACGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "774804cb3530deecfc477e3f47d57039aab2f1a2dc133584a358b5d73c164092"),
		nonce:           decodeHexString(c, "3bd0ae797ecb7c0780e758c64ca0d61b"),
		personalization: decodeHexString(c, "9b7ccbeec10758cd0a3a8fdaee6f3989832e44bca7763f59e838c612521d3427"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9ba9285889d50c27bdeb4a830a5b3120931a53980b30643557444718cb2d47cb"),
			decodeHexString(c, "0f8716df331067b8ccf0e5b90ff79dd0f962acc69fc5f89c593bbb84e3501ae2"),
		},
		expected: decodeHexString(c, "9d2c0053a0fd3f9be1fe33db214f6f2d54aca573e0642bd269f1b1ca23c42a1e85c73449830673cca14feab4d2686814edbd90c325e0fbcd5a2d7ca75334dbb113a13a0bb4e838f6724c74dddfca8c2bfb903c362d3ea82acd60d01749f6dc01fcd6708009a58ee9cc57a0d089095efae66aaea68ac247cf6aa8808d1038a109"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate49_SHA384_0(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5e919d353357671566d2c6ab6e1acd46f47d0c878fe36114d7fea9fecb88a3a2"),
		nonce:           decodeHexString(c, "7efca9e3d1e1b09d7f16832f3af75141"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "442f17cb3cb1482a19729bfd58f46f6ef16285554892c01b0718968d6e011082"),
			decodeHexString(c, "f9557c93eb841bfd7b5d4b71da928efcbe3f55e1870493ef90d16eb238380d65"),
		},
		expected: decodeHexString(c, "36902134f1989cfe7eb518a56c06aada98997d9bacd04aee21f879a57b515ca3b5e0c2d5fed05ca1a8b054e8c46b389d9d9186feb0abe8e2e60b3a267281cc5b4b7341116ced35a0e07bc2b0330bbfd8b07f07248fa6d8fc5c9df13445324162bdfa22a91ba71453ab123c92f91c70b8bd540b3b180b11ab45ae2c59e57c7c43dab7576594959a96eb502d182267c86576b1846ccee1a694cabdfb42e0c8214192efb502926fa3c27eed020b7cc8866a5af9d838a57e78bf7acd230e1f4d8361"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_1(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "7a5d1efc9b7043060cabd67de7fe22740bcd6a8ceb355d69f118829a2b3c9200"),
		nonce:           decodeHexString(c, "6a5633e613f8769c1114b1822ffb5408"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f2ad962d992434468681c644587639901ff74e2bbdd8761961ec34edc4a0c36d"),
			decodeHexString(c, "75aae0d1bca9484c89fc4de3d1b34275ef0656775f3f8c96f2bbc50401aaa718"),
		},
		expected: decodeHexString(c, "5ca21af4b399db38f8b74a406aace69f994691f2765bb9c47b240000152739e059b163cd007de5f28bba17e485fcf9ff6f41f76e93998510e302282cbdbde09fe8b1a96187e57c9a3df94e2e748f20026476ca682dfa890b478f7a21f4927f74f99aedd9ae782ba10fcda1dc34c31b4f784722e01cc4679737276f56df23c5bd8c6985797b83c0ccde2b4c7a65c652745de7fc8a235ad7ed0f456f1e7568b2dad475f0bc46f02a7f35c05cfef9d0e2c773ff895e291a2cfc2424b106096d8864"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_2(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "611586ee40cb3ca4a9238ce112a237449bba5422ac9b18ea53480875334d8fa0"),
		nonce:           decodeHexString(c, "26da9d96c4e87f94b2f9a7c261be3edb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2f835c336a3aa0019b0bf940c24643bc8fca58c9cfa6509aa9241de9e0e1a046"),
			decodeHexString(c, "1911a59c5f2568860ae71e803688889dc44d14ffb0d93e324c39f32d95c1c3ea"),
		},
		expected: decodeHexString(c, "27bf42f50476d8a2cc23f455e9ef477cb8e9c90f2e97c8a483093ebf55b2aee02e0356cff919e2ec9811b42c73498a6c2b96aa5b761ef7e715cbf66ad2e3ff8a6c92419dbf2e653ce70a87b51e26d9f607eb25b45b91f947d0026a38977143c8bbd94076e663b9cee35505b48e453e7cca83e540975ae8a53f26390aa63aaf1e2669410cc83427eea09428776a2d520eebd170602c52dd491c98042018a0372a0b39cb565cbe5e474f927f91515a6a7444fdbe1d89d8ae2c2482a0deb8ff236d"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_3(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "85b1e5da599efd4a20ffcefd4737fa3ea1d2b14be33861c2a4ac3ac2a49d3947"),
		nonce:           decodeHexString(c, "b14cf18f4ff426cb6345f1a7653e9630"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cf5bbf98d8577077b0b84475dee0f0e9aa95eedd1d916507b5233b688bcc856c"),
			decodeHexString(c, "b333ec111e1e7d78c9ac916e420704832539d2db46aca3bdc4732e8ce72b5e80"),
		},
		expected: decodeHexString(c, "4773d32a9fba37acc6900f3ac70f6978ff1e40039d6e3286c264fb7fc59f1bfe0188c7979380c8922bdd0e363c8e09a49faef59ea85a9f0e400b94c74a8a50687e4e51e25266eabb86276f22628d0d2e19c5696cd221a9b80f94045d001ca4c20dc916ca0ff22c93a41fc822912dd7e247927fd45982e94d3d1fde77cbe78beecba830b753079326ae33274f13fb7cd875e85fb5e9e703e61cbd41bc4ad47d7b4d14afc873a39dd810ad8eed95adff8dce3adb7659b7c1d4e3f62403767940b4"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_4(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "50f986f6efb413fba3e8e0beb84d4948c2db0661ab8e064d9fee8b3c2f0a910f"),
		nonce:           decodeHexString(c, "c35d37512f88bdfcfde797a21a006e01"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "37c7b08222ba63f2136bb28f5ec09b9a899b56371615be41bef49a0b640590e4"),
			decodeHexString(c, "4a1e34a5d60ca08e3e6c0f1b86547ba2d12fa293275e7d75f83a0b846daa48df"),
		},
		expected: decodeHexString(c, "e27738c6fae66125fcaf4e725a0881d5a450fb5b02a55057d6cb7babd91d502c4f4a8431a83352f47ea8e5fd7e815f5080d144318a1dcbc755e0b935785cd5397955da22e3ff633b34a64ac72b2e6b7c51e78ff553731e6e8da911d147a6e05b36b74898cac6d3171bc8650e445ffd19ede2aa8218be17671321c186465d852dd80d73290546b88ef7a978b41c4c549e9c7fc6ef86e47084778fb5aed5d41e794ee0e700b77c0314a307b10df69daba605f3fdbe2dec708ba0b20d6b650befbd"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_5(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "641dbcbf99b61437c2bf65a13dc3e0324eb940335da123870d9429636dfc8297"),
		nonce:           decodeHexString(c, "9d0cc913c73e8a6321fc3eb9e973c0aa"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "72580c11a87ce6b4207908aaf5bcaaa1bd217fce3e8bc0726568c64639b70767"),
			decodeHexString(c, "cf9f4527e074b72be735558dcaa1fc82f26ae286bf944b49649f769bf6faf49f"),
		},
		expected: decodeHexString(c, "345395723d048c2270c0eac990498689bcb862a4996e82995b4e7169e671eb03bb2242c4669c874c1aeaffec58aa653c7d7431abd1650f0cbce8cf5db8316693f3ed501fd9b48c1a44b34f7878aa386d65afc31f94f908a322b03d06c2a1074a03bd2b579cafb0f7cee6d6934588ae1ce9e4ed37b03737c553ca19af4b46b5e43767cee2e459ab91407df6cfd13a6f186abdb148b85a5f49bf92ac6674fb055c7fe123e9355a0d33de281c03a56f91891dd496dabfd6eaa6fff6c9cfb4e67c44"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_6(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b9c305ada943a64a2b00494e869f9a640173eb1c2518dd9be93abc3c93c7e6b5"),
		nonce:           decodeHexString(c, "bd0627a199d15f77b188824df00d5997"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ffc6760f9af02d35666275c074eda03f53dbcb5690580bb25768a6566b328dfb"),
			decodeHexString(c, "f26f436a820ef71597b75134b8d9dca6e9a6afd9b429222a4c9c878f3b92716e"),
		},
		expected: decodeHexString(c, "e5413a234859511cd837312bb31aac4d31962c5f7f27aec47417f367ca99b8400a4287e60412fc356cb40d96ddf5cb801285ebca42b2f6fe4a711451c1574174c58dccb2cd3342b7092a196ac7d2881a08e7f5de939ccc8f4eedc8f867c81aa88655d96ae50f618279d5009ba2ac4b1df4e63030cc0ec3541b6a94bd9a2ae5d1fcf4d847114a783c997a7c6b9d549010bf7b649abef692cdea3aa8ada14574e0f78b7fcbe17b587ac14980e40264d6de030e429586593d5ce3ae571f95454dcf"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_7(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9875dbf59b760eab9998bf3341847910526d10071dc179f96081dd793a600193"),
		nonce:           decodeHexString(c, "6881e7f39075cd382293a1aaa8c845d2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1196583a99afe1d377b344585c8252a0690704b8f7a2b7582387ec91a60fd7e4"),
			decodeHexString(c, "20147a88e0f9f1e8caa8cb14488c9b5c38e5520a36ae913b4703d15af27218dd"),
		},
		expected: decodeHexString(c, "c808f6f296683d26208359a766fe61bc70ee8b6ed9ffb94ce269578fb5568fe2358d603638324b63b29bb36ae71a542e38ee69a2b93ad7e4a887a27a2852cdcd541a5fa6d0c8b087aa1185bd5788256e7d95c2aa2d5c11407b7bf762f416b01d8e747c45298f875200a2e67679d6d5ff7a7c0e50a010690b1920df1baf0afcfaee7ab0862004e23b5aa1ff47b8273d503bd74a54e7b39ac7e6d6fb0a594d30531cab8a67b22783470a65f24faba1c231b3ba45efae9f0be04e2338529cfec008"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_8(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ac92a6c791aba0406d6ea8255c3c0901eb711a424501c2c2c847076d78bdcfc3"),
		nonce:           decodeHexString(c, "266b7c3bc578c7501daac6dda8366d4f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "13379a77d84a0c4cec95e62ac4c8a98ceede0d89b8bd317352a95300963415ed"),
			decodeHexString(c, "04d47ec89a3e1b7f22580167331225a00ff258da72446241a6c09c517ee4d48c"),
		},
		expected: decodeHexString(c, "c2e6528584c6dbec436ffec4075fd3aebe953fdc0b46b4b225a3c2886e60d21879e6ccce3746d881f6d80e33876afad439ab9f68fcc458492de12811fbd57ac49d868754da19279b4c0a38979201a588884def5677392dec97cafc94bccf8914d9f78575711bb6f2adf4116db91c8b54e36e9ac2f5e01caebd300acd7bd45eada69d20f1b4139013a8a614069315a1c99137a6f23e38f91c210e0c156c6fb498056e823dc41a05348ab43c2f6f4ce188d4e05a13d38f8025731ac1670949a040"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_9(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "63954ac7a0f989a458d2b4a6b7013dd66683624584b545060bd03a57b92822ef"),
		nonce:           decodeHexString(c, "422764bbbc35fa5d40d34145afe44bec"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7b25d875dfb03333cc27b9d4286d00a85ea5921f4b8a4717b957349eb3509053"),
			decodeHexString(c, "8b70d28c5c80086c0cbbd01337ad45297af271d4bafc764b0fc5705700cd419d"),
		},
		expected: decodeHexString(c, "297752e61c4ebc4e1c68391335e2cdb49b0f19dafe359e451f8158fb7958d32a98455a852002d8f05169f438816ae6fccba1eae4d1fdd7a1176b04831d7ce892f711ec825062ea1c6b12144bbd3a0aca7f92520ebb87ac6045d2ac3a4a74fa559926f0daceb59d44fdb39f5fc3b877f34241531e863c153286f3f1b2ba2db4e2c8e2344be40c2a7a8cd01daf168696ce19f83ddb64d50e2313e78c5dfcf077f25e5b4d6f687279119ce856d4131a63ad133cedd020881939bf70f82eabfe46db"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_10(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d0944e0a3f3604a588271c8eb65913ad9b07ee2b29620f8106ca70ec10aeb896"),
		nonce:           decodeHexString(c, "bc9b2b519c77fec5fc419e953ceb0be5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d58593f2488f0a292ab552dac006c94b20ff500dd57af32be808921a5ee251c1"),
			decodeHexString(c, "ea9e579c9dca67f07ffd67d2483ec1fac3d2ec22fefff73c7ac9f125888d7a4b"),
		},
		expected: decodeHexString(c, "ae736da6632a7d8bdcc9e279cb7d3f9101a8f7dddeff253277d1d99b45c76a1a5c193334e912c3dfdff1bc389b209c3b29359a4ca53765a1e40cb900c6055d8a285cf63ebec79b46019efe95d5199f215f11961f3319d225bf3d60734fbfbf3593ab105cec2a17e308af469b3220ef7f055675396d289e6f4f8009881c8a2b4e9de88d53ad13e8bed8b38be6d8988f615b4590fde3d91caf50a86eac3fbf29924743145803978d261132b5975a9f108499250314e098e57c56e2f9327307cff8"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_11(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1ef53464bc7a441227a27ea7b5c558dbb3f509aaf880213cdef7e8f6a1d287c1"),
		nonce:           decodeHexString(c, "73cd5b3148d46c48c83c5cad3ccc1f50"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b052a66992fd8a8cb02c593edfe4766fcbcd3505af29d698e1f4db398acf717d"),
			decodeHexString(c, "37333448311c2c6edee19aadb8f1036cb60cff2a945c1a0ea087713bff31e915"),
		},
		expected: decodeHexString(c, "4ea7054659cae1cc178ef431aebb64c2c8dda3a965ea940a84c00d9790e2e3a33521395cc4d49038994aa4c7dcaf0b52b44375d93b625ac2281991a85a5acebf3de552355e17b3528faf39d392fed981400f28540f5ca64a4d2eeb952c88856c8f7388a49611810941b46b1000ee4a8aaaadcd39944c4abca9110fd6580093f9303f86a6e129d56b5aeff5422c2261af33523cc6a174e0782e13a026c003c17430b8371bbfc3d51c3e06fbdc30769a278b109238bbe383cd5523053fe589b72e"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_12(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "14148d69d583d4c1758c307e0eb0b762511165823fc54096f9da5513e87df53b"),
		nonce:           decodeHexString(c, "96a7be8d31b8a38f24a82d846b0e13ef"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e05f81f6402c52dff5c221a2f191155bb56abe160ce7dc8a6bedfa029195a612"),
			decodeHexString(c, "214777e3faee7d953b5c796675e106d50cdc12836b3114d14447ae91cea3c1db"),
		},
		expected: decodeHexString(c, "eb0497b32af8a91ed3959c31b079b8cc5c39db3100913332fffbb6b1d5ebbcdc97d6e67c934f3336197c9b730d80995a7d7445e36cf3047cab22895f244cac803eabd001eb1ff5d5645a803c41ea6dde6c972b47de0372ce901667d03e2e02aa0a5aea809e0bdc7430440365908418ce6066c24191ace05d6a797ef9b94409989cacbb9d9ec31f3cf0112b72e1420b47e0c184a8aacc214d55a0d5e0869d09303e4014de0430c07380006ea75984e6c32b06067d7d7b931e2b74666b4b569f71"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_13(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "27d47020acc3a80a55149fa0ef43f684843ba89fda4bff1c29d20baa2b219567"),
		nonce:           decodeHexString(c, "80569b7fa0c4078d9ff71a3790f1be3f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c03ea0b88e2f9b53f902b22746bf4dde09439c190a7a638e3cb990d86739dbed"),
			decodeHexString(c, "3ef05e71487cdbc209b5ab6e808e55f0a93bcc02df766b01c1c1ae5875b1023e"),
		},
		expected: decodeHexString(c, "3ee49e2a58d800d922cfb66284da84bbb5944c85f194d95f1156b673392132a430e47ae74f1ed7c1d0e632d8cb604c88777437d8f37e7d0428b834555a96800540bf5bce6f430328fd328baf4b22b7f8e663c1d8583bc0119248588840510e11203cf47dfc4f6cdf8344170a341fbb7d93999ba86be3fb94d9c03922fd3d75e3fd5b42365aa62606e352676b2a0c51fb030d8d5605e8ac6bac2b4f8417d8e060148e3d4ba67b31e5e704d866bc87741ba877d12b10e8a9b37f3feca908fe1fc4"),
	})
}

func (s *drbgSuite) TestHMACGenerate49_SHA384_14(c *C) {
	s.testHMACGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "88b6550d49182ca7321d8015f780121223a93343dabaf21978ee2818e7bce659"),
		nonce:           decodeHexString(c, "1d32b48eb4642069adcaa5986224e6d3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "809639f48ebf6756a530e1b6aad2036082b07b13ed3c13e80dc2b6ea56e70a04"),
			decodeHexString(c, "3395902e0004e584123bb6926f89954a5d03cc13c3c3e3b70fd0cbe975c339a7"),
		},
		expected: decodeHexString(c, "4a5a29bf725c8240ae6558641a6b8f2e584db031ef158124c4d1041fe56988fdaee91ca13925fee6d5e5748b26cc0275d45ef35abb56ad12e65aa6fe1d28a198f5aa7938fca4794c1a35f9a60a37c7360baf860efd20398c72a36b3c4805c67a185e2f099f034b80d04008c54d6a6e7ec727b1cace12e0119c171a02515ab18ea3d0a3463622dd88027b40567be96e5c301469b47d83f5a2056d1dc9341e0de101d6d5f1b78c61cc4a6bfd6f9184ebde7a97ccf53d393f26fd2afcae5ebedb7e"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate51_SHA384_0(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c2feb900032f2cca98d3f60536f563d8ac9af5fb2e90dba36c371c0a1c58cf5e"),
		nonce:           decodeHexString(c, "4a60f2be0fa13b8266b715be8aad128c"),
		personalization: decodeHexString(c, "8e6f9be0c692648072d19c750804b10e2ec313c8013abd363de7a467787859f2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "72f54ba3f8e71ad69a040bb8493283acfc8815f17dbcea220ecd68372a2dffae"),
			decodeHexString(c, "adce8157ef60482841dd2ac5ac512bf7649120c1dba81ea75f2a70b7512bb6f3"),
		},
		expected: decodeHexString(c, "e76e4326ac69ddbc6b2408c529b05a96425c65cc65671601191238e9434d2a0147f3a25ce9b6818774f5263c92459bca421d2b492f9a9c2971359baaa1426d6e2c36d8924f39d02ee2fb5502c4e0b206dbe9aeeacd508abe6c055d547b5f9f35de4fdc9c05a2c63ad699a3a7e265598b8f40a8a295d7376b88c49af9edc790b8a5ee221e19877616678e2a5135d7b3756109200439d9ec8bfe0cc5f3c334ca9c022ab9192d5d554dc7ae76af1dc06d814427f46a7cfa2dcc62f4777d07ebde7d"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_1(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ad500edbe28b9a4338b55451b81c652797eb48fba753c186ce0aa9ad02a84ea2"),
		nonce:           decodeHexString(c, "c995b7ade6de0fb4ec97bcbd61b711d5"),
		personalization: decodeHexString(c, "5770c41832a4cdc4039a8c332a4b45e7a7b2dabb678ccd2e56452aabeab14925"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d8d5516d158b41cb9d66566b88064900af78183f765f2f72a19548fb797377b2"),
			decodeHexString(c, "60a3a01a72e6b3f33a0c236db08237e7d656bdf4bab1db57ae23b7305569dea5"),
		},
		expected: decodeHexString(c, "c5ac3df66bc664e8bf84c758c7926992f0e8a03cd3f3f5fb8277c85b4da526601e8131f9d205f35594e101a86fb83ccf4c1e98c8e609062256701ff2132e337cb7287f0ee2e8fe3ef11ae703d7efe52e63cf89119ced05950c55aae6c822b6b0a8e1b91b537e5bb2de165a4b5b43a1c41fbfd65fff9bc5329d303caca84f5d1fc6acacee622623ed5dde36aeda0816749557c924d6ed26cd80e456fd0ae2146477ccb63a203fe16ac1d0eb2d12b6a2cabb21d412422e95f2df8ccdc23b4ef0dc"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_2(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "51a29bac53961792077e88ed3603d33bd1f51b3fdb2b5cd1ea131c6f643af65d"),
		nonce:           decodeHexString(c, "e81eb2e260396d2a69b4184c4eb98a15"),
		personalization: decodeHexString(c, "72e5285b92c4ea4458e8a2159687cd46e7df9c1f4513d8b72cc88be41c2e1522"),
		additionalInput: [2][]byte{
			decodeHexString(c, "16a69f7aee34c567595f3d362ccbdbb7b9e9372c4b1729fbb80d9a089eee31a4"),
			decodeHexString(c, "825197262a43f6523182f0a91005d70b17d81c2bb692edfd02ab988130c7d5b9"),
		},
		expected: decodeHexString(c, "f63f531c242a295d7796c3b4844fc74821af5a53e0e7ae822cd8a7f9de91e6164164f3448fd7d18feafb97c9500e0625d501dcb3927e6fb39ef65dd9586d157076436452bd3066cb30d1f47dc0a3ffa5f2e9ab4e183018b40a82b39b0d170aa21b05600eefea906838b95456e04cf046808030a56951d2502c5eb6271228905ed08549bb171d6c0408d88250785f42e349ce1d9e74a6cd0360a008ec804e7ecdcb4d1fe24aa5a18cbb65f4de1619a29c6062b409a386ea6f43e60adb9ea3dd28"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_3(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b30ff9c6e5b6bd258f1cea0fd5ef9adb81fbec233ff2fab01e79b7422878b2e9"),
		nonce:           decodeHexString(c, "50604e10ab80ddceb9d2b968d0d37ba9"),
		personalization: decodeHexString(c, "e8acd4b380aace0b27572057eaa947e10e6b49516140139c74a1d4f472221dac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1d2ded0003521e2ba6a4a3e732e0949c1d858fdf0925fedd9cfd7f603e0e692a"),
			decodeHexString(c, "688ac5e7b4400d962c106fd2ce712a1cda6a0b8ac5196ad727f9b882329a3d5a"),
		},
		expected: decodeHexString(c, "c5208fec1d67517311a42bec07782ceb247e9c818e4f5f3bd160c9e53d462b61884feb278cdc8f64e22f59d27dfa98d3a90da8c7c5ba28ca40bd0d18934595a376553d1a8a19de07a83e2e9db42748c982cbcbf4a975c20084ea9cc6c6a41b571faf66b364e4b7e4d32efc80c30b219da1c02a1ea02f6922adbc31a057f999605a2d827f10907835c2bdde4157d7bf2906a0ad27bb72f113c6ec4f23631a2b8517bbce91b560d90d73fbf0699bab21da23e27cfec513bb5e375f50108197d664"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_4(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "56715dcbaa4f5bdbd157bdd950d1c1b46c1f4f8d7818ab321d72c0ff3c0a9280"),
		nonce:           decodeHexString(c, "64b0439f7bf021dcdc7febf2126e5432"),
		personalization: decodeHexString(c, "cd5547991b525f7795e075a59af1701375175bd760db99d316b91463f87f7f3c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b2e4f02f1c14866f538eddab402356ff3b405abbb9154e88b98483a83be70f7c"),
			decodeHexString(c, "b8db321ab30285eee7f9e377ad62def6caada447d00a4ec882081daafe2ec009"),
		},
		expected: decodeHexString(c, "7ed8c2be58e3553eb65508377d63d7f24518d1a7235dd4c740bd987dd8bc1c1e3ca97a69a37dc9a270ad88989e4868e6cf8e4cf01703c0b1eb6aed8c3f8af431d819e68b6947ae134d360d87e33668cdef0e45e11f5cd79329ff95ed00e4a6952750f1574f489394b5fde3c6f07311a1e5d9c4e070a0943ef9d4a130a9e4b0a80c256e96ca5042961766874898ea0f772b78d1a33e866351a4eb425b822b5ad596cf249bce8ccd6dafb334b71a503fce2c8fa3fbac9943910ce5ff02ebbedde8"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_5(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1c60a31760019e6a571e2987e57e19adbc1accf3edd44e501061cbec331b197e"),
		nonce:           decodeHexString(c, "b68d0fa8fa5e3071d6f8b7c9c0a3c35d"),
		personalization: decodeHexString(c, "d4d84dc7311096791dd9c9d7f2cd291071f877afd86b9644427482d09ac9df64"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6473f4430398d7e5a2d218bd05e6aedac1e317269df3e4705d56c22d6e7abb0f"),
			decodeHexString(c, "379649b56a46399b9ab5f3880e1a73993a58cf52821d3cac87890aa0e6322a94"),
		},
		expected: decodeHexString(c, "d34152fa12fa341d0326a525aa838558630013857747f02634d24e9deec2da12f52fb405e7f1b973dc2d982d26eb2ddb4b49c35a9308b06809171dc990a4248e6da0c329a259f495247b9fa8c73af06604db7b629168e34081696a043977dd29a3c0362d5895f9aac24bcba58dd74078ef6f8d33eac864f2e6cdc479da3d224bad8099d011e914b6ccc3631a7369586e18c71a4087de0d47a7c29a09c12438c7de2d4b47768f47685b742c25b860e716c31e2afe4ce6d92bc2fb9f34400602f9"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_6(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "eeccce7f7edc52f0e2559250be36526cd1839151a77c59d527f66fa24ea4d86b"),
		nonce:           decodeHexString(c, "3fb298c8d72b6a0a8e191b60259d1fc1"),
		personalization: decodeHexString(c, "26d35895723ba3d431991a0e6fb2154ae5bff7e58609c926ee3269afc5cd631f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "227b9a71a6c17ecbf627161fc627f8f6f1a28ce39772b7a3d36064e2cc6dc4d5"),
			decodeHexString(c, "eb59f780c5a955e1355dfe15cc4a4e90a6ec75584e63bd0de734399f47b95070"),
		},
		expected: decodeHexString(c, "78ac77657dc56b23e617a9b38168da945c1cf52b6062c2b10f1d7a3814d9b9efa5545da050b0db5a65a2d2d2e02fa12e97eb970fa8e83c524bc809d675e0db35c9762323f327f1edb9b534ce16d02519750b41ebe51f747e9da43fd1afc60e46c7aba72e15cc7a22fad19ed55189f287a14737483eb6b32d966c3e3969d8198f01f2ed841f20d7d2e156d6285a29e07f6d7fff42bd575806c4092522b03e0d1b8df0cc88f5b82d24a7fd0feff6ada03a60ef2541a4ab041a49aa973c7163bf94"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_7(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "86f8104a081c9565dea5652f20145a068dadff125debf818262d8931cec6ba93"),
		nonce:           decodeHexString(c, "7fd5b51affcebee952fb67f29f197267"),
		personalization: decodeHexString(c, "c7ba5ff828855e6e78fa1732d63aac1f49701ff7ac1f3506e97941f998b4e9d2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6917bca15db53a5359e5c4d30ab4d37fc6a1bc660faaf2e74864cb4aa52e0e02"),
			decodeHexString(c, "eea8db0cfc04f8de14d6053442b5b4f8733f822df4be5966a0de8b0f7d2036f6"),
		},
		expected: decodeHexString(c, "562b8b2fa3bb15cfc3f7e57f309e31b13c790c928ad6b32a005f5431c28576c5706c4ac0dc2c7a4435bebfa06571278f485932bd94382efcf727b300b230da9b9e9f377d2659ac75dd8247351d5ed8185effa0f255a2a2136e63717e0265d561a34c75ecee1c774c25e33fd938696825686acf9a419c1da3fa1ce8f695e231087aa0927dde6ab487dc61291ad4700c5c608fab1a418f6b30ff97b8b8f01ef8164287849a77b21be5d11d82d0c19056e07d59a30f6c576705c6cedcb9f22d3a8f"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_8(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "0db6f73ab6d31ddf8f78d76961310d68f081c9e6d5985e1883978c2dec48d9f5"),
		nonce:           decodeHexString(c, "8875ab658b3a8b795bf464af9470a90c"),
		personalization: decodeHexString(c, "d886936ad36549a10b5dc5d6e21203abd75ad63f826794b4adaad45a70424c5f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "76993d3bcc32546430efa30e3b30acc34c7672b6e18c7e2e9a1f1cc26f7f7a22"),
			decodeHexString(c, "54c72cf3457e6f5f6b35dc14167fee9383c44c867f233ec9d81f187bce438c0f"),
		},
		expected: decodeHexString(c, "c3523894d273c85d605d39f5b89e3388afad8c20787897b903d8db7e3de7590340174be3abd7598daba7806ab934e0feca02bbe66282d469ec01476bad5ccba59fc14cd9549bf4af49641f4326b1052b179c89194d21bec0501c97ef2c24aaf045fd348b765910fe92c0039612e37baad2445b57d9db6c1e550adf6688a79b117f6b7a37e0209d89f194a1bfe1ff2e3b28f0454b383af8872f32322bd5313a3c9ca48d33eab7c3807bb98f8f402c43b99b2176f0b33be08c7e84c86b26e971ab"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_9(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3b1ffbfae6ec54a175a80a33c8768fb60f2af9ee2b8620c4e800a17fb9241ae4"),
		nonce:           decodeHexString(c, "7f77da414f67b5d7b24dd100355d2afb"),
		personalization: decodeHexString(c, "0d50cf61e2020a909ba6e36ba4d0a394579d3e4377cd4bf0068967e8d0fe7a78"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5d4efb3f6e6503c5d85a1c43398d0441ce8aefafaabe2f6d86988a24e033f502"),
			decodeHexString(c, "cfb6156a1b139abf21c73001240997ee1a8cad91a4bd777c0372c1e8fcfd3fac"),
		},
		expected: decodeHexString(c, "d3ef776c8d77fcc5e947bf53e0be11777e69c7dce138f24c1a3212d1b6b932580371479b7619fc82f029d92969628f810b54a8fdab8eba799e750945f3545f6a96226bc760ad736101516efff5d8581f5864b38c29885d39843a4adca17046e1e388c890542988797b576da64804eb4101638328d3f8bfa398ffaf83cb7290a2cfd39ead13290ae773a8958b33914ca02c8ff6a069aa25ac8b36f6f0f1dcd8f1c5fc838083a64ae7ae11b85be3a9fa80ed83949b622002e91776273fa32d6cfd"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_10(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "19767ce1f18aea366539642fad400a03a675b2f3c0b1cfd49925e535b2c27790"),
		nonce:           decodeHexString(c, "43c5a1c57ef550acae733729516aa62e"),
		personalization: decodeHexString(c, "6bfa882c1e895eeffbb85578182653c022a4703091529780c075cd482809b990"),
		additionalInput: [2][]byte{
			decodeHexString(c, "11236df1dca3de6e3e3a57d2741d1b77f15f45b05beb47cc500100b31188a42d"),
			decodeHexString(c, "98708a88fafae56c4f6fa780c6c0e33ca8f2592983b5ae607146cd6e92204416"),
		},
		expected: decodeHexString(c, "b6514a3779dcef2c9ea0ed7ddfa808d045c5907314c358302ca32b2055987a38ef601637cdcf77b1b8f7eac479f8f18972013c2e1a6dfe612e8a586dc529ece486505534c0ff3dc0b2049a0e46d7ac504a1fdfaa9b08d9fa017c5803415fa391ba7eeb576fd6ddba4404feb46e7cde56e090dd280be5edba7d6df9c5ba7d3454bcbd4d443b08fb51a117c1d5916f225dcd6c1c3fe2b2880f4d42962befe3ab76bdc086e29381dd985206e3e00ce722c9c040af5ff4cd4a8183b446d91b310845"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_11(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f63292bab50668eb14b83975422a0c853fe55714a9edf9d8a817ba0b2f26ec40"),
		nonce:           decodeHexString(c, "063a86ee3c79c694273342a02f68ecd0"),
		personalization: decodeHexString(c, "3c525956838e26b77b8cfc37f024ec398ed825076dbb749cf49a7d868c201e6d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d9a41b47c3bf8743099dc8fd228f77dff01ae304761eaf57d751e11cf094bef1"),
			decodeHexString(c, "b790c37dbda20fbeafe9d1339a1151144253bdfbffe17ba87240eae49c606bf3"),
		},
		expected: decodeHexString(c, "3586b63315020b3ba1121314a0fa6c66d57de0ec44abeef7b7325e960832b7944cb0a81a747ee5c5d3163001536d3e5ad2ec869b0e5ceb14aee2e6915073619528c1421b59b80254dfc3cab0584898b0bca72c76ae25f52b7405b9dad38cb2b841e1d6a34fc5b277129db49928b2f6c0dd22900ee786ec128164ed12eb324b502499f1c5c89be2101901476b39c56034cc293e320e63a3e019186d4eaf9a098136e8c0ce7f6326f84ec95992dde2585ad3945a9534aa2954b8c15a48e3324d76"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_12(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3df74683f298ba48648714e384989145c1b84246736dc275636809d64c75ff60"),
		nonce:           decodeHexString(c, "3056e703c435eacf21c0bb152d9fc2a0"),
		personalization: decodeHexString(c, "371217ca2337db03c4d06714624fa11f90d5dc575bdbe12a457c610be066dc2b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f26b9cac8df57a33e4b5868c36f2b9322994a98269dcbd7956b93d147dd0aa27"),
			decodeHexString(c, "0a6db86c3abdc39878045b8fc2d5f0f77a8e298efdacb4cb9f74762fc23b96fc"),
		},
		expected: decodeHexString(c, "ff5252b7a39460a73094b9d668b53d1932243caa885c0ecd850612fdbe7e46cb275d079bb75a6b050191282ccb11ef255d52cb763618c4b624560d79bb9a5bc99319783de43c152e7aa7c4cd879a75869285320a9b749c897bf07220cc1bef1edc494bffa6ab93dcf839dc15f6f2e508b9e216e2a1786b75abfb01bb7bdeda722b47af895f551670f9562d9f9b78e98ee7ea5c5ca4f836af5bf153925b2aec055eee8164edf3f7b72e24b1203cfae1834705f74cac8c6043a3c2abf6bdf28fc9"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_13(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "53d70692f0f4dbda23d78660f0f08c7e70ca94441f1440348f76108874d13ea1"),
		nonce:           decodeHexString(c, "4652725abd1a94d315364416c90e662a"),
		personalization: decodeHexString(c, "6deee916ad660811cf05b5652f32df4e97f544ebb57762617359159cc9a425c2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "acda427eea1c8c6791be6e4d2b60be30302abc84d5c5a13be7d510004b8710c9"),
			decodeHexString(c, "d27d7f598a14205c45788665cd062135b6b65547d3188959e38ab675401d2b62"),
		},
		expected: decodeHexString(c, "f77f9de60e95da3f1d0d67b5dde29b31df59ce980ebdbad7b5e0a0051fee39e1d6fc4311f21efa016039bb05f3b009b223be6f2c007b468388a8a19bb468c7b82cc93dab3e160b2b72fda1240fcceea01c2638e9c8bd2d1ed9ff9b55bf69fba4b6ae8e694c150896ac6233b75567993f9a9adf25ca0f0835b9991ff4b8d3f4f1a3e4c5f9866d98b7a75196804f996492a61dbab5bf72f87658e2300a1b0777ef7f43ffe8962f6b6708d2d91dcdf6b430cfaacb3289f74cb0f67370bcc9af249c"),
	})
}

func (s *drbgSuite) TestHMACGenerate51_SHA384_14(c *C) {
	s.testHMACGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "85186650694f742c3f5f228f943788f05602d4827518908fd09a1fb445d8333d"),
		nonce:           decodeHexString(c, "b2d65f376d48c66eb9e0498999e1ff49"),
		personalization: decodeHexString(c, "499928c41841324749143be9cc769899c38d6f6e6933e56898896fabcd802931"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9574ca51f21865c2fb0efc75cc9d90ec5e9c43104979cd64d00ea5544ea01c96"),
			decodeHexString(c, "c0df840a18d7584b62c70b2f057bf824168edb673cb517cd9dac89a0fc80c9b4"),
		},
		expected: decodeHexString(c, "b31e50202f883a8563cf129a0d5f8a33abad79d8ec8a97167ed7fca778e5892480617cdf50b5e51547f7ec1bede35020a311572c61e33e9c82968e8f69586daea3dc19063bea56503f8ca482918d229949acd6f1c52cccdc5f7f4cd43602a72a5375f3aabfd2834ee0494823beada2daeccbed8d46984d1756fe2207ca92186b506115f6de7d840c0b3b658e4d422dbf07210f620c71545f74cdf39ff82de2b0b6b53fbfa0cf58014038184d34fc9617b71ccd22031b27a8fc5c7b338eeaf0fc"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate53_SHA384_0(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "62ebb24eca06186c05b826aaad2aa51f15af60b5f67ae495a0191f91434fa537"),
		nonce:           decodeHexString(c, "f003879106f41d940f4f6f898714a097"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6483e2d4b227201b9609ba30086405c2050aa02f36ef135739dfd3435fa93558"),
			decodeHexString(c, "6c2089692cd0a67b498424fa54f6ad6842b5d34626ee299dfb4bb4d63f942a3d"),
		},
		expected: decodeHexString(c, "2704c3ee59dee5d5706cb628f79a1efc140f7136bea8e86d423b40bdd9aa593f5fcf64b4af633a664f7e8ccb581819d32c202da5252cd56405b4996473d156700c99443b5d0dcb6b54c1860a8e7f5f5c7398ac6382c7699e8c3f477cbde5885bd6a9d5907923e8a4f0099c88cde1d7705a41a272ad9a38a1175efc97d3b71b84f22d3b0cce3d1e312961cbc33a24522dd8c98de65da91c0c9023934167cff68dab4c5d7f16c910e2d0b8874b3e75550284f754ca212cd7e691825ca4547da456"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_1(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f3d4c946892fdba3b23baa720c06444e34efe30d1db15581d5f45dfc59c04049"),
		nonce:           decodeHexString(c, "df6b5e90b78881803b8a3df73fac0c08"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "bb12247ceddca5fb0a570e0765d405d40af5ff72ea95e9a919d2fb9ce849082e"),
			decodeHexString(c, "26e4caee61172df5fba3c3091a27d4eb3878c32b6c7bc40c78d0de7bcf40c9d6"),
		},
		expected: decodeHexString(c, "3f8e62a0a85b13fbd024ae94c52a9cf778a5a8027cb46fa58fcb346dd71ea3b617afb5cd971da5244e96cebd31d789caae52f7d5e8efc4afb813a6950cce1705c2ead8de6f0e4e6043264b2fb958389f48382c0885f4482e140201ecdf3b678427c5ab07184505747a02b0ea53a7d917fa9ee8a7aa250c5435768815a900d1f0f3cf5ae5fb39921e9c15264a14b9124aebd62b96c354c867e590d2b04e414e3bb1e0fc88d823aeee189c10b75aa200f40817bcc8c0ea9a2537431ba32df858a7"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_2(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "893ff8048e13ec4aae35a8f261bafb6a8409dee911a2bf9ec3d6cffadf6674a9"),
		nonce:           decodeHexString(c, "a994bacb9ea65c5bcd8718163c1ff927"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "fcb46c16d85039fbce1140cc43caf000e07414aa9f796cea532e6811526ef9be"),
			decodeHexString(c, "d1a953139aeeda6419742e888ffb001bb0b724ef8703e5a17bf3e91eca5f1101"),
		},
		expected: decodeHexString(c, "c3d408d988b413b5378a63aa90bc5771a47e6f5668a1270eda593d30e5979352789aa71489d8b991f55a3f3ad0aa6d0c751f7c82559d0acb768f95f7e10e74d21bb54aa680849a41086fd452b0798e475ba5a20bcf13e83e7a40b4532470a677ae2e173b9bd873cf2e682d1128f00e8d26279049a2c2059d0cb87e48a50ea159c9a3fde6d8e0095da79e3e7ebae25dac67d2f5d7d668c4261ede42c0b906f445e1984badc8cda8e79f8742253e54e7ea5a71b177bb59e0df683af46464aad970"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_3(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "03c256ec2ec0f2860b511c05dad74bd8a19ed41bfd01992bddd40c2bd0c7e306"),
		nonce:           decodeHexString(c, "fa7568f856e3fdd931c27cb32295060f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b93d57cbbc837704a1fa827eae13860c99f5a678b6638302f7a87d288ce01e25"),
			decodeHexString(c, "d4c3a02ccf562abe26720dec088673844d340cf4044cf6e9df08404b1e22a860"),
		},
		expected: decodeHexString(c, "74c05cab4d6f8b201ffd6e7639744af5c2318cb0cc7330a0f564b20f608945b6829259e053a4e9e130a9345451780906c8a273d5f21b54dd894386a318bb8accf151e957851b7a9c1ed38f7a2f2d8809abd4c6a8df47aade5bbc717237970cda18451e1eb215f4679f5d48c3f35a2017fcca89da5b8f2c9161a7c6311d5b8bc6ba8f897ba39517b5d46a6418620ef936dd9571cfdfa60f54645421ac51d9ca1c0f46c87f795e49a5a6e13dde458e7c6671166f4b445518f580a71249d251f699"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_4(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c8e1db988eb9f4d323a570b9d112b6c4797c20adc2974d69c6ebe4522d89f219"),
		nonce:           decodeHexString(c, "a48fdb886617cee124f8f871768cb6ff"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e513b0e4f78a66e30fb5a58693d1ae636662ce7dd4549f059e8198fc657053c7"),
			decodeHexString(c, "cf7681d93770f28d3ecf433afb5996f1af45b317733e7ba7f8b9400147e2c5a6"),
		},
		expected: decodeHexString(c, "24ce04bd31dd19c28b04d00c0b60eb8b0f38bf804d3727ee1d8fe55f7401960b6fb3bcb729baaa6722925c311910f186454ccca438c01fc9a744ab329819238181bd74c1696e5b0ae5a91c9109e76dda66fed6638ccb26424c12dd1041fe95e627d600f05756a9dbb5c21bc239a60b56dd4c857b826f8cb434e39841c7cef93c4bbc84514eb7ae8b1c0c0b712286c1ed105392788d97e772227428df55ddf009ecc579d12a1a3760587ffe4212e182b06099f2dd41a46625b45245dd0b90b290"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_5(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "cf9485bb0722b0f7c4eea2fd0803d091aa580a94f6b381173189dd086d62eda8"),
		nonce:           decodeHexString(c, "932a4bc330290c41cd5cac29b1f377a8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "21fb157190c749153918bdd7c109c921958d2d52f2001d28992b30f71e3ca9a2"),
			decodeHexString(c, "d21eb68721e8299d67ef2487482a78f13ffb5f7903683b6bca50e3594966c0bd"),
		},
		expected: decodeHexString(c, "e26a721c80b02f9af013665c5bfd036342b4457c2e5160e687c4e1ffea31d1137a49c1c15ae6b91df9a4736c0e0a41fdef44a7bb031f31bb041f9fcb4ab8829acbf45baece5b0a0d30a402fce6b958793209056b9f15a374cbd61e7c39f8e774a986c2929a659be9a7a4b27c38c880ed330200c8ad5e88d70dd9b67eb0971e577d2341dd56eecd6adecc59db1ae49b898dd7c88929cf3b242a2d0c23d9123503eb1254087fe64131c9747f8b4461008422a1ac0640c1c7a94295e537d34e76d1"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_6(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "36ea4a8984b22ce3c29e8e9fcb139925a8588c2d8a779d1b4a0678ede2a0307c"),
		nonce:           decodeHexString(c, "38f098d86068e3e51a1bc42792503204"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "43e2b1ed65db38caa124f8c3fa55f8d7e9233acc09a9243852847458bebb3ea1"),
			decodeHexString(c, "0b8bae69d568a82fcfa9c3550a2c251cbe97e21a7ab46d8b21409810612230c2"),
		},
		expected: decodeHexString(c, "c01be0a9f5afc8a79b7364995c048ca91aa54b2184d596a99aec552232a3c8e14f6a472751d8e1f0142fcc2ec70916422ae7a5756cb0cd344af926417615a2f8476a09ed917e111efa3454945fa132712b4caaa0ac21c65f05e2d6abfbaefbac04959b5386d4c2fc6f817c372a057088b9379c05755c9c90d5ce0c936a89c824047f2e27703b103bd9dd4e924fa7f0fb8c17cd8a2295b2241c4e19c209785acb88e64f8de201ba6cfb7d823b7afe7762777ab5f106b64b47274815d34ddc1831"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_7(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6b4c8418bac43ec55e67e1bd326a269f6f07ecd0e26e7ea9f8c3801693f5d140"),
		nonce:           decodeHexString(c, "f17d963379dac92619b2eeba2722d402"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6a9e1c3143e34fe108c82e3be6d77c320c8e645eebf320f0df64d5aa4be880b7"),
			decodeHexString(c, "cf2e1d8c5484acb5ac496340feb1e797d523b5036cdb07c5a2bf913fb492c3f7"),
		},
		expected: decodeHexString(c, "d9bca67a13517efeb1ef25dbba66a4780d32f16243b11a58cfb3d69b557a9463151590c7e40f8049db8df3b13d9b36560023cc40101e94a2db342e857c9a9ed879c67ce4977038744ff07cbaf7987bfd9b63f8fcb14101cbde0bb7d26132292d0d0d957ade5091dfd161d78b99110dab1c40816a30cf976ff9460d9420e3c110a82570972708ef162bfacaba62d93c424bc754fdecbf8ad95a81ccefc76a6cd943c48156decae06305e7a781f38218b0d7f7795f70d8b09fe8c0ac49335f7819"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_8(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8b2eff17d531de72a8763d63c16027c217052ca321dd1db60deaeebae810b2c6"),
		nonce:           decodeHexString(c, "8c5a39e606fff833d4ee2d409b101efd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "db87d8bc10cd391e143e78ec5e1b51e9e33935a652d9b878adcec8a9c027a19a"),
			decodeHexString(c, "5105f07bae116d056626642e4e2220e9cfaff7acb917ee310e0dfa18787ab83c"),
		},
		expected: decodeHexString(c, "387f7fd397133081eb230c6b787e252a0074bd06169e86039c9443822e741b5c3740b159b5d4416ce6f262475ef8c7a8f85ae5cd1e7b49b51059ef819a7771418a8254befad60f8bd74cbe178f34621d4fb3bf4f1162cf82a2ee4dec54ab7334a0ed4fa4161883dc8a55e646ca06562f605c696b8e25086e56a3d6f2c44b2c381a0ad50f3021c7123064a62faceeb209b8d1fe0a818b54e468866cd5e5e1cbedcfb3d5a8da1c9f924cdadf7cdd6184150d902bf6260116921f51d4f175e16097"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_9(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "73572014f58acd41a507321ec56f1a1ea80f2415fb6acf1bebb0cd326c29533e"),
		nonce:           decodeHexString(c, "3f7a7ea2593ea0270e57c81d4ee8fd48"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "676845489c666b033a96640cb298e46cb63a0e00fb1bff9e8d866021d3a01259"),
			decodeHexString(c, "4bead56cd537b9de0cb0a45b86a1e0da6524e6d0ec7a9918c22f8a79d07882e1"),
		},
		expected: decodeHexString(c, "5a90506005b5b45b983f667d57c5946df51e27e6949ae999cdb23c6478bc9443437f91eb1b66ec36e68a593c361baa2ec0a5787b35f412167202371bcfd694f9384adb628c8356bc183dbff40e3c291e0c7c965cf66eccbf27f0174615eabd9adb4481428c1ba2fc1dfd7197eb7b99dfb4ecbb4dc23b663fae6be5c7594ff56f87f658d4aaf89aa02e7fcc59b98b0ebab14c33c73b82805b7d1582bc89822561c214896e3cbef8b5c6f693ccc5e71d7297e0a5771f7dd184af416e88bc2d2832"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_10(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f065ffc9ad34025af4ebedaec453542355798f59e38d5f2f774c9f2b2e275445"),
		nonce:           decodeHexString(c, "254ace0f50592f76b935a0c363251d13"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6e1fe2921fe0a965c1c07542a32828ba8d33a18cf4a817be26931d11e3cf7c1e"),
			decodeHexString(c, "aaa0e94ecfedf60d871aa4eb3d7e1520acc3229701141c16af0d64d66e033185"),
		},
		expected: decodeHexString(c, "e2154a38f44222b66ebab4879e164bb83dfd44a7e4ace9ef5d269ea4b4fafe809c198c3f24dc32af488777e8e49ab1dc45e6e77136334aa1a3bb5a96193ba879d4454ac5fa236a96e252b72a0d39b896a947620ab4730d617006f24ce45198a42209491824994a3d4d477c3c9c365cc2c01e490f16030b3d27b2a3387fd69a5a8794262ffc98a00f3e2141f6e08f1749cf76bec952ea03cb90c3621cd680a47819981960f1db179aa13f314c1efec8654a92297e9e3ad7925f6d6e538581a387"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_11(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "526505d862fca5597370a98fa11a57ae6834d33e39ff2bf388d4ba0d6031b08b"),
		nonce:           decodeHexString(c, "b0028d2372e811884b5cba8d93f8e75a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "05622481ff951cdce6369a771ae1c7ac3a9a8241185cc1bb26cbdce7609a7058"),
			decodeHexString(c, "3ca8ff7ce83ff9bd1e13f0a048bbbb07f3968193b3e842ed3b12d583b203a60a"),
		},
		expected: decodeHexString(c, "7243fd41bb710525b1934a9a15e91bb7f48d044f449abb6bf8462a80ced8bff52febab1cf921c3624b112e56c34e09de2c8c4a0b281bf50085b2414be9a1515ee5990a430e61cd4e91c0e4c27910538aff996673d841c713461c68e66e7081dc55dde20428292198abec7f13da9990596e44882f271f239ef894ee72b056e4ecae1830a03fa49bcbc26d8ce07e80976ae7c0ec7f567d004a4047360fba84d47b82432502a685acc07cdbb487ac2d83205c84482bef7d65a121533451ff22eb41"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_12(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "70aa28a7f25d610abcf55bd2993d98ca26b3e17335a001007c3d6d3c82df5821"),
		nonce:           decodeHexString(c, "99183b198e03e79e0600da5e09485399"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "dcede896405bbb26e6fef3569c894367d8878a1f092f516b568bfef6799c371a"),
			decodeHexString(c, "3d73c345853ed5945da65e43513673f773e436be1aaa681f1678558bee65cf0a"),
		},
		expected: decodeHexString(c, "12287cc2b1ae1e41cdcf74394fc6aa17277189a950b548f1c204df13bfb3ca3ea862cc6e145377e0a986030ac387a24580989ce8af650d3d17359649648323eccfe955d8c9c591480f27c670a00c01749c139c8307072ec484743be8dde791b0496d663cd4426bc6b6339b565be53b85b2be0bd3fdf498b61da7876c76a7d2d035c90ff7a2ed17a26e5bcdc498389fd319da44030c8a36f39d034179a5a82c3acf73d3c9ff9851ef80bb17e13f6abdb8713f04e7748b8ecf8a5af10e0f893e22"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_13(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "86038c7e900813e50d45e5280171a3a71a66405ff28608dfc4ca895c998bc04f"),
		nonce:           decodeHexString(c, "ac58edbc686abde8c368b36a97690521"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3fdd34967ac56776116576e467142c77f6bef74bcc8af8a368529f50a13e74d6"),
			decodeHexString(c, "0f9aa920a18e305916bd0eee770a510728710dd7b78d9ff736fcdf682a1015b1"),
		},
		expected: decodeHexString(c, "a64bfbd4b9bce3773baf172cde3f68da426dd6e4ac8c806c0170e0d028913f4f55eeaf1b18ecf9748ff4f0d40fff963cdb2d4369ad4490d2222fb0991c138e117e2b6a0beb3aa7095796dcb58671772ae737ee5003b67403d6e7bbfb1f9b73e5eea81c229fb7898db28ada4314ec70ff7bf26aa5dc9d9e1fbd05698d35387386d70a9d1112e09b6f2004f645f650b97d44f7191f3cfc5d0385407d369331226754e6b17bc06dddad5aab80f20a9040f1f78ad3090de9e5315e8b59bba8302435"),
	})
}

func (s *drbgSuite) TestHMACGenerate53_SHA384_14(c *C) {
	s.testHMACGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1514a977bebb10858a934df7cc34da90e283e3def25299f43e36025b92dfbd70"),
		nonce:           decodeHexString(c, "857a61b0cfa5c0fd647d6e8dd679bfb2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b5d9cb4b3709adf297462f1aa8875c9f84bc39e323b8fe1c0df269344e5035ff"),
			decodeHexString(c, "5e47728cc468e0d2c6b6a90a20f83a9f0565716af54844552988f1d8c3a83eb7"),
		},
		expected: decodeHexString(c, "548c3496135ecfa1119098ea2d862d421af024a844c37a02142e2545e4ff1038f4b73c7f6b7d0fba8f92f292cf5ca8fd57dbe7ce129423e0ddeb1dffe89252dd6b50495c88f350bb77e08c8be409064f7e9cb751aeb779eae30b7c471dc41365f128d22474a7e90a9953e948642001f8e6ba8f91d250d8b4c6407892cd96b12e5d94e4d7608e6c11604357436c8d1cc07a21aeb58d396f413a31f72af1ac06864ba68c04e0c25971c1315f5a8c5c04fe252105fc822452d0cf66f86af13d613e"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate55_SHA384_0(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9c4a7f1cee91c735a698c2ee8b32f025086a03ef762c0bf29cfcdfd290240904"),
		nonce:           decodeHexString(c, "4cc38e77f47c469ef0518c03d93a521a"),
		personalization: decodeHexString(c, "043cde6d441c20b48d8493455f3b963edb5dc42cfca9bc9dc097b0da059ac135"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4befb6b5fd63e30baaee6d29aa0049fca44802d241044e61f25a0f9f1132b038"),
			decodeHexString(c, "17466d9beaea6732e199fb1a2f48020f0e804a45211c200dc500db6b51f90bba"),
		},
		expected: decodeHexString(c, "f488c60714f020b01b820fd5f7b8e7b908734a17100e100daf7f3e81dea708308056aecde94ba9a9eb5303ebe45427ca928522b0bc1ca8525eacb525fdcbbb8aa7632d119f740a5a5abd77529dcd0f555bf50e59a24b855e180adb6fe382d737fc76fec081b98081106932e1f64aaae912a69f5370dc287f09ce53c3de2c0a71fdf6c3fcf0baf241b68063bc13d6ed8fb2ec1687016c68acef80b48e98be7a35b92c199685784e444ab6e7a233d611e764112ef6806be22cfafb94341e79fc15"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_1(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8e37c709efa3a8adcc433babdcae3bddf0d3beecd933af87c66eee45386024ff"),
		nonce:           decodeHexString(c, "11f327a64d39084283bc1ad8a0376181"),
		personalization: decodeHexString(c, "8b72244a0e189cbbaa8cfc19c8a72a8285ee4e33f3a3f15fd537392fb093287a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "baef5972f9ed48597a94aae8869db4affcc34c3219e46c7f733d282a2496f00e"),
			decodeHexString(c, "e3758dd41c305049b5e272a6add3cb26b7ee9417f8d74e330095f0bb5b33928d"),
		},
		expected: decodeHexString(c, "9fb95381bfb55c0d0585fd2e75fda22ad43bfb0996186b3a89c70c8addad4fa6b1a5bb2c4fa50bb897604d8f4ea10be851d4fed5d43765a5d68a8216d2b6d0c41b480fc415f5bf0e2adce910ab6cfdcafb8c62ce73af7827d49eda5913dbcabb502a23b025867310f426d67957aa096c8e9b97e41f0974a2ac1c5495dd1028fce7f953d12f4601a298b1923e88ba4f3eb3dd3e5212f770efec82f84bae5b7befaf00f6fad747c878d22168295569ec1dda8ca49a2ed33c6f9eddb389f8d412c8"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_2(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "e33188a0ff90b430fe56051f94dfc6ee84037f82ee3c422a8f7194eba1c2926b"),
		nonce:           decodeHexString(c, "b629040f73d845ab33d092e5d954a75b"),
		personalization: decodeHexString(c, "8f996ebdac1611d632643a44e2d9b5603463746ac2e678b708406f6cd96f8bd4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "810f71490df34b6d0f4816f285e21a43e6b55f43876268603cc3812374766e36"),
			decodeHexString(c, "ed26329e514d5c8c740cf05c3bddf88608bdb7953f01ce8f00a9e9a06bc13b60"),
		},
		expected: decodeHexString(c, "f9a8b3f0e16882d7ecd7b979a85ef4f8ccfc19c2b3eec990e5b65d5610fe8efd1debcdb5b7cffc4a92aeac9c5a11dce67ed391e7ce2e9da632be84fb203bddcb63de2f1036620ffe5ec6e85b4551c366539b6e4416f7a1d44f91adcb07807df47730022a7f6d124cafbc774b300f0964eab2a9ea058285d9f9f6af16cd3a6b920f3ab85a12b48ddb42593f2cae56582edd3e3cf413192dc21a3f20d1c1fbeda89b785ac89cfe1fd10219604406f05edd07cea23ed814c75bbb91426f5599a808"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_3(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6da45724992ba90085a0986b24d6fe1ef77f0712ee7cc830ee69ae2d733c56d2"),
		nonce:           decodeHexString(c, "04d161e1881b09a555eff91d2185beae"),
		personalization: decodeHexString(c, "9a60291fe9f320e96c873023a47a831de3984a6410295d558001889b17565cd9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9ec3b7ee3c743e64f0f673e54782ef59dba6a6ca52078cde70da7ace645fb01f"),
			decodeHexString(c, "529a343cf84e2af344301e314e0e766ddcb13daafb3f7a73534996f85b5f462c"),
		},
		expected: decodeHexString(c, "f725650dc59584cd6ee04eb233d3771ff8177c2532977521de3218fb545b84b21726984b72586b00c087b79fdf9e8dc26f689354ff4f1d2dd7b42ae8d9c04d815a5fc7d8b6785e01b10b9f43750374692924783138b54a7252b9a6d741dba653235aba45674ee0dafd15b6a203aa6cfc048b5ac0b4313b3b7ec17fb9fae9bfc9bd17344c6e7b98816845fb9597bfcd6e8d40f01ca91d87e50a2cdd2e14f81f3de2ea115141fea030b47a98e21aca914068e38191389a94155d7708f6aa5f4111"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_4(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "e9985ccbed72b91cbb5e1a46400ed033a7085c1c52579ffec223a768c7fbaba4"),
		nonce:           decodeHexString(c, "db103f830eb174734584331f9690bf7c"),
		personalization: decodeHexString(c, "d048bbd7f144d4aabff87d2cb547dbcfb5ac0ed73ec7cb017e238904ed958f3b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "60faf7cb810a746eeaeb28ce7baddef8e0fa4954e965ceebbad5008927563f74"),
			decodeHexString(c, "916e8c9e766df6f458f0d81b38992e490199a770795af2853449d825a18b178a"),
		},
		expected: decodeHexString(c, "8953e8f8afbddf4c41ebcffd943375a7bd525db5bb586a1d3862e8163b6293fe267f044c887586dd031db36e4a941c6d9b4bad5e15110c488a84b8dba638456269e7a08686611ddafaf7fc1c766a4f46174c2895dfe87e594592a9edf27ab67cb781b12b2692aea11cbb150bf5496e533956e503e1293186cea536cbb3dcd4b50efed5020a6668c7f66755df83e29e83d08dd404d87576be26b8490dd681888d3ad9270e589b8fc583261b734fd16224cece0927f27d103a508354e1140ffcad"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_5(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6ab09ff6979841bfdd77d233a6aded9581956458c0c2effea998cb3563b9e13f"),
		nonce:           decodeHexString(c, "7ec8b20fb3fbe33784d1320237718cfd"),
		personalization: decodeHexString(c, "4de40daf7a43aaf1c132529f5605f97951538c739bda59125c1902b36a7afbf2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "af4c8130e8193b4d23c0f3ef11621a285eb8ec119801282d6e455e1a485bd2f6"),
			decodeHexString(c, "52ce2a212ab940fcaae1edf647da13872af620a1d8af9ae32f8d6603a9a11a56"),
		},
		expected: decodeHexString(c, "b4364042f2a28b353dab347bd81bee069a00e003f2159ac5e9da6c9b05d535e829fdfb3788d448757e036541686a5248b79fb04fe37c362ccc19096066804d8952357606d357712dc9a6e15c57736befa4208c41ddc1ceef236efdb06e423c020be96baf5aeb35f94f13d363e0ce936b193861d8d4bd026907835278ec86dc970e81f0c46f795599f80694d691a691fc4636a7264d38b7b65d3dd36b313345cca89a62361af1bb6c91eb71734ce572a30978f6774020bcb26dd2cae8daf15659"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_6(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "661b65402f7556733dea9b83adc0ed0c21d66f3eab84647daaeba7530f27bac7"),
		nonce:           decodeHexString(c, "31db85561ddc9a0647b2da0fb3668a80"),
		personalization: decodeHexString(c, "b7afef14b800513eff5cba58038702aaf3224d75943f8fb888f74e45622dc2dc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "13e0bebca5f99716736b6beb7523ca84f3f5ba0c405bd20d490dc7080db3afd4"),
			decodeHexString(c, "b478a3daf7687405a0e20c8280bed3c14b230f1d4dd0e9472c948ac2246c4340"),
		},
		expected: decodeHexString(c, "f4bceed43662ac668c5cbc6a9c3d0bd44d50ee9bf8fe2668c487d5e4425ffc3db0e660f891e4f9883b841cbf036d25d533dbbbbfa01ac4d190b54fe35f585d85da386ba02be022e93e71c7de875ca2e769c2b324a2d63282b9c1d6ee2d95394b11d1391dc05f1120d16d4aa262241058b7fb6c873779b4d632573b307752b984cdddf5f3e9e789a10e58b874e64da23323d7e731b41ae980f9c11ae45fb6ea317a42af759fd8fdbcff2d34d2605fbd2901af4e3fa321ef0bd53e18b849f21180"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_7(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "4b0e29719bd4223673262342caa1ea6b1e18a600f91bb39fd2e77e0d96e57b62"),
		nonce:           decodeHexString(c, "d5ba0066f547e0c5363e287ecd8fba42"),
		personalization: decodeHexString(c, "9f540579b05abd904f5d75c0e8921e6dadabb5a0e44db560a7f03820d5a7eb1c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6bb7571dca82cfdf45a5edaffb993adebed53f206990cd898e16261c8bd95a6e"),
			decodeHexString(c, "2510cb7fe7ef4cf7c69e9c396afa35dcfa97ab8960e3f795b91a0d8a4f8561ae"),
		},
		expected: decodeHexString(c, "9ea14969c373ba4190f7e6a95f9b73c9a009074d4d81f82be5af6d6ad49a572a8850b86f93efa6f06c79449c1411297c17921fc95d7188beb5ce6096c8fb0a515edd7ef32a0bbc2f372484525e6c6a51045cf068a3519811f4cc7d6ee5a3bc339d2d1b2c550455538dc3afc3e9b3ef85927dde4a968212265596285a40e5160e65e08b842c3f9e82e28d0e594c33ece7455688da678d7be395df515971732e22483656fb57f30d0915542d6a99758d797471d9b1da999aadd8af26efe57389f0"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_8(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "eaee806076cfe84c6c5fda80fcfcc92f09431977685027c64953ce523bedefa6"),
		nonce:           decodeHexString(c, "c5eb6526b3b2e6b640370be7987c520b"),
		personalization: decodeHexString(c, "60ddf3ac0890b0180ff2924f310662c7ba73ec2051af65fca86918c15e3b2d05"),
		additionalInput: [2][]byte{
			decodeHexString(c, "eb13346d00f34e8e8b25db172ea8efd0e7927019fb30af33d6d4b52b582a0cee"),
			decodeHexString(c, "fd44e8f382296eb8c17ccbcc2edccbf12bd162d052bc1bcbf9199332d1047b27"),
		},
		expected: decodeHexString(c, "a235e1b8ce4a8d1dfc20e148641039e389485417a0ed2d712cf901a2b578a762a2ce58af3b30073f9ecad3c813bd585c9b8888c94dd6dca085dc71d8ebccf4b7388e360bb1772b09ff380fc517ba980f40788b3725a402ee229b66b76d9c48db098bedec0410e2223549659049700e363f8612bdda67de18c58f4679f8d5af022a7bfd24449a926a3ec4e4dab532a88e3a1932804713fe00f2eda4c652d18e861cc65fe4ecd90d252e4d884650e9a3be5a75ac6953434dde523a4971f2596046"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_9(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8005d9db2b56ed36b3dee590f01ca83d2755097f2afe47fc8e7842a74d440660"),
		nonce:           decodeHexString(c, "0920c9b95399a51261c62656c60bd782"),
		personalization: decodeHexString(c, "09aa3cc1f3a5600bd324bf452cd2a902a49094733d963ddfb78eaadb96805a73"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e26ef8542413fe828876ba76efb14134409e5f70fc76c9b4c80c0b258d3f7257"),
			decodeHexString(c, "b02e484a10b5d1ca640d64bcb07d094bb8d47efd2efea25658a12c10ef5e8dbc"),
		},
		expected: decodeHexString(c, "f81392b0795df1bc3d0955f231d3d64044bf13007ce022fd64f903d923fc1c720572f111d6cae234a19830086558e82d2e0162f6ba80f26271936bed9298228da55a25dab03a8c92db0caf38350fea839671354006ed73ab84cb6967e0935e6dd06debaec6f883927bd00e371d1e1130c9e7b380429bee2663b35435c4fcbc3695c6b06071e83537f819e1baee8f9dc3c49af49f2e2897bda7a5731a40eefc775f99a2e8e1164e4bc6b26b0f84a9f9114a5556a13bf706722f2d2ce90f469550"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_10(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "e326266e50f1e304eadd0c2e3dd81db72a32fc9437ef8e0fc2b77f6058f20699"),
		nonce:           decodeHexString(c, "2ef476d1bc540ff6724fcd92ebe5d55f"),
		personalization: decodeHexString(c, "a389dfa175e7531c21b211deaedca81de96de398b7b31e22781682e5f3976198"),
		additionalInput: [2][]byte{
			decodeHexString(c, "30ec0a026fb30795c49bea9978492b6d38af22ef0e0464dfeb2eef8579c52ec7"),
			decodeHexString(c, "8abfcf6f0a4104e39acbbc0be07e6dccbb820812b2fdea977e033815433eabeb"),
		},
		expected: decodeHexString(c, "2d8a21901671b78eaeadb3d876ac0408aa43a373ac49629ed82705632cfd9cae9c934fe49a658c0d83ba27b803398cc1cec7cc55c68fda6b472430ae614f3f256c8b09a904899cd8ea8dbd5d2686c28f91c904349581071f56a3d34b7f4a24fa21e9327309e96bdb6b40240bb90080a124aadaa7d63299c189bd45f0b2752c4d3dd9716ed9ed1ac33c99db39470c98b30ba36404b1248f31986411ca500257cfa8cebe6eeb1f80cff0c2f3940f86c443de1ded1f268707ebdea39bc7bf839efa"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_11(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "0a5805548a372be592deebe0ce7b2d60faaf64a881467c2c736087b0f5646d33"),
		nonce:           decodeHexString(c, "daa36d9cd46c6a56e4c4e660add04f92"),
		personalization: decodeHexString(c, "9540828f07a3e41c9fe311cfaa0ce1061f2feb5d7fa26332779551051290a878"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d0aa198e0f628d12433f928f3ea098bec8d1cc1ebccebf7bfc5f5bcfa7598192"),
			decodeHexString(c, "93e8c30b320417e8365d77f14b955a5fb66e01718b715001faa0cf2e7e20317e"),
		},
		expected: decodeHexString(c, "ca7d9cfc9bfbe3c2bd778ad41af45165b51f4df197d66935d91c87eb4f6967af68ed8f216122a5efa693c4487996a99022ca38e4cc3e5ff51381f1e9e5454dd82cb18f444bdf7230c7fbf070147e353db51db91a66e4801b1f88e7d0da3ef86083b6c488a154146b57e1c14d6e9d694f3b2729eb557ec3729c18fab731d0f06aa1004f500ae5d07405f9fd0e1ef034dd45e30f60ff651876c1a5ef6a3565e5ec8a307827c0678dfd21998373df08f403437aa1ea60a505c291b965157aff4064"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_12(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "81fa7898cbb2de53b18834ce7defa42cd33be876a67dd9a9ff7e9c94d05b16a5"),
		nonce:           decodeHexString(c, "889292012ecd0512ec6a34a0463ee256"),
		personalization: decodeHexString(c, "76e142c7e33baefab8adeeada934e33c369b518e8c1e65502b8df5e05aa5de77"),
		additionalInput: [2][]byte{
			decodeHexString(c, "327f07aaaf092fbc83225624f3f35efee19eabe6171a8ea6af80b405134c2d55"),
			decodeHexString(c, "e4e4678588af6440b15f37a4952761c5c8c1dd1f6028ae8bbe5c73b8f7b4e7b4"),
		},
		expected: decodeHexString(c, "b1f4cac331eb1b35e53f134b868b2ebd317df782bbb438f9d62c822914b6a51a186683fab33773054f203d8647efa86ef88a1c925fd1525f47014c02747c2e3547791343c407a85c8fdcead5687345dde7c5cf0afb1c88eb65375199e1b28758bb47eece3edd2bc8dcdfabd227b3785fd113ec7111c1787786e208f1411dbe46edc1fb9647dbd419c814c339935ebcc202bcb440864848c7d0c176f89f848c59c4f7b0e2e9ce602fc0ca9dbbfb4341425eef29c8bfe29bf6b7b1648c6b52cb2b"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_13(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1c34b5eb2e2f4cf4907366e590f05a5c6b53c1ce978f3089c50374ee4e80c66d"),
		nonce:           decodeHexString(c, "aa0a92fb97e78f86f8ed296e50439ac1"),
		personalization: decodeHexString(c, "ce60f571a5a7fea463773a721814dc779d9ad5453bb4821f25ac8209dad5f733"),
		additionalInput: [2][]byte{
			decodeHexString(c, "46992edaec1bc3f258c6f5c905c692d5db2e09087678cd849ce3bfa13ea822cf"),
			decodeHexString(c, "ebcbec558476020faa67a7657d5311e2276dfa18c6b5e974688cc8d32634e0e7"),
		},
		expected: decodeHexString(c, "43b5ab88a780c1b271b50dd3f01e6d2f5f48d202d2c3d327d7e43f8c8e43dcd54e75ea4e036cdb5c1fd731f680bd755a0d5a6eaeb46a53a9a376da0b9540bc309f0c420e243c1672da4e5d7afcfe19989e3877b87e86c6f470519129f582f53e70f7df0206f4f84d5295932fcb89d71c474e0c33d00afd6d15c4e87e1e307fc9095bcff1a0fd843bf9d2e9ccdf0e4a4c74b06d464f4d5d37e87da95d3162c2acf07fef59bca3016ba34eb7ba95a3ae30a16f3ea979e0533e8d3ae811230494ce"),
	})
}

func (s *drbgSuite) TestHMACGenerate55_SHA384_14(c *C) {
	s.testHMACGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ae4ac3569dd6295316b275c0207514b791ac1524a8def8187d38cb3a9fd57394"),
		nonce:           decodeHexString(c, "fcce28e19fe0194a146a08a4585e2dc4"),
		personalization: decodeHexString(c, "2f44c809f5f7ac6ccc7d47e6f05e7bcb7e176bf5e00a5b51178d1c94b23d1415"),
		additionalInput: [2][]byte{
			decodeHexString(c, "50ceb01860d60ed119f101d5c573b5db00402dbb03885a09e8d326156fa180a3"),
			decodeHexString(c, "01e09092bc892916c29f7b515823f244d147d4b16976cebd6a76a37ef6e62998"),
		},
		expected: decodeHexString(c, "6f1379c44d8131924c9a78286e80ebb34604ad78b531e795cc30c4f0aee422e4052f201ba226bc0c2aa3ec341fcbb5a87e24b91c36be7dda62addba6960df1289372e9677ce030555a9bd1691f559b8ff787dafa35cff5dfd66a2abd83f81552a82ba6ca7d21c438483e60fd77f93bc109f5be802035412c2af2873f5cb186b77dc055c0e0b27b16b1ef37de0b81fe63c4074a7cc8c3d27f71a992b5468351ef8b84a7b3e8f12458ff670d1381d879feeb1cd3b93436580c86bc2c33f27448d4"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate57_SHA384_0(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b86bf722bea4cefde43ca6bfdefdb01d171282049024692f4b34d423a9f89225"),
		nonce:           decodeHexString(c, "133a73e70733a68a3be1a0035540c3d9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "87c1d165b3978619b7de30e5b7bb85127af50ec6ecd03e7ef7f2568e83692e4a"),
			decodeHexString(c, "509f071cae9902d6a01a0f7c69582e4b683f74fc53fee94d07901fed8af026c8"),
		},
		expected: decodeHexString(c, "64d9821c6bd450e1f8cfef31d06b9a9c8c666b3b6ede62fb35267334d59a24da2f8ce4eb863c5119a7104443a1e9e22b1d7b37b7d672797fe87a6b228813c7faf21bc5c1cd23584d05c19c93b8ac755d5444fc5c85e37de4aecb73eda4a947261f5141253c369fa2d1a7298631ea60567a6c93ffd95b017d0be5dc4c99aa5a33be2273f8552c20dbd313ab60f53bcf17569303f6930b83fac947984dd82b23c612df58b5d62b98340d54b071d6a22b42b7fac93be3ac810db659e8110812c0b9"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_1(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "e58a82e5300f366c0c56afd704f666177194632c024653a6c39fd78e14f43edd"),
		nonce:           decodeHexString(c, "7872fd68197ba366520c3a50b60f74d4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9494ef44d55aa8502e12cc24ef2658091bcb3a15850b25367007c7e6c04d0ee1"),
			decodeHexString(c, "559a4b4fec44538947a45abef2b55a21ad7f5b9188681a1b308693916594f5f3"),
		},
		expected: decodeHexString(c, "280be8ff72f15ef75de01f605c83e45a36c0cab3a8efae98453d291a297e8b26473864472e1697832d2e1129d76f6240927c747094ca2f8bc653d2988c31ace8822d3656f5e513288e874c25695237fc6fc7007d01eae56690893703ff8369e498c9671059e09306bb270b5ac54c4a7881ab27b90e92e8a57c225ba371aa7f813f2f2563b9865007080cc278d0db3ee06e95b3af26342232a2232f80041df18aba5a1fdb906cd2f4832e3e73cabfca53bef1d2ee69379d73e1f658872e7fdf3f"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_2(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3e8c5de27d9a29562d4462f9923b09dad0f9b1953275d92d9959844804673e7a"),
		nonce:           decodeHexString(c, "54fa44767542034cdde939d2796a7adf"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9679e7d730c110b139c42196ce1ae63b604bedd098e377130873b840a753047e"),
			decodeHexString(c, "d2d33358f1e90cd1261121e7036dba3c36cd18a6b7beb4a82d1e47c69abd8e4d"),
		},
		expected: decodeHexString(c, "e6c73af620465244ccf62f5b4151da39fe4885529b3c905243f7753d8767678aaafc7379f0074b5743425715d091fedfe33f138841d7c07195ab0d04ece6419cf89056f0477f3abfa638856abe3e740ef6a25afa319b8e56d290a385b2ea2e48c20743d850f7b7797ad80d42ac0f1f104e432d2a9e264c9e6c19908916c40c465ef9d3e57a7b311154a03da4c5cce6ff74192175027773b2c8b9950a032a7a41e9728513aec144f0ec937cc12dc2ad2a4f0e00048b54cdf81378cf7c169ff252"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_3(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "901d216a32a2cd2555833c38b175ee1f76b58ca0ee28b4d2409054840b1c9795"),
		nonce:           decodeHexString(c, "2ad40293170b525f211bc7c04476ca3b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f91d7b74aa21580cd6bc241d720999db1d573c6df97ecf6460aced64be2353a4"),
			decodeHexString(c, "2bfcae59d9f250e5aec2781c52153247d9ad4c44078be1195c932cc101a20c66"),
		},
		expected: decodeHexString(c, "b9dc17e4db6a48a73ef74f16f3cdee4cfd1a08fea0ef10131a4f02aa85dd24b7eefb0474bef0dbb0b738032c964ea0e710c9cd47d790e25b5d5ea2b8dcc277b4e3404beac530385b083e2265c424ebd9086e2dd3bc39cdd3a3d0e719b04e60f9d4cc567cce0d9be2a57b5d82cd5c917b578bef85d1507de6edf496c7a3d433c26b73499beaf4ff5cfb51e89b83649f90db99e58253312efd8c2a7ded3e9f97ac13eecdb4a5c2d57ae236f715b1c74ea2af7b2a19b8426a40f573a07320315cd0"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_4(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "2e27c3184e58d0e14418fde81f62773dc3aef5b60d829df57a30fa8168242dfa"),
		nonce:           decodeHexString(c, "69798e95a322ea454baf0c30c8e11379"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "89369f0fcaf68f8b5588314f396a28115f24479def507afdcc62d7fa5ec1812c"),
			decodeHexString(c, "12434493d808760462382541a6d9333ab968c989bdf39353c5b5c396fb972980"),
		},
		expected: decodeHexString(c, "ca94ea6e77ba78c42d2e36c513f9e1ec38858e0d14017c7e0950fdd8137b3cf773b24c4e4ffc18bc4dff859081a8e4d64333fd1ac3242107cd1f08acfd4b9ace7b1eeb417fd4f1464b5c27929a1473c36393d665c83f621397bc71851af6708f90e75a711b6b482ff0580cbb36295db0db086cd081bc80caa8d37c0560a54dc9e343441b9045b95bab35a50c2d2291bde8bd0d96d63ce6b9be958f3c3f90d1be1336a2ddbd6abb997ef9218c0baa3f4f9cec03c77c7642f2b744db6a395362c7"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_5(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "76bb91e695eb0321720a517c3267b293ab311f4eaec93b6909ff0d3d99346b5c"),
		nonce:           decodeHexString(c, "8594960199b709a71157c64b084a0af8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d20f33c405cd9606ceaea8184bc2c3a30a4180b0ab3bf24dee503834e1fce563"),
			decodeHexString(c, "434d1c5e4f04c0f998a60e214fd9d13f10591c2cc3660e29f9455483e2b2a306"),
		},
		expected: decodeHexString(c, "43e6fac40318590a1c9680b5e739ad821279ef551fba7509c48efaa560f109c6707a223434b9da000ae43004f0542b8a9d48bb51068aaa046998383daef71cb0c10ee5cbe1a52b64cb65c5604bd07984b6efc5c2bde92f1937e02b9467ad8b55e70001fca6b59652ea3451d3da9d31a981c27b592d674706c047588b7fe67d087e049d93de46a45f8d24f0142fac2ec140f8b3c6f2295952183928921f93ee9954b14bbeb5e2a88c87b7582824b2273ebfd4f62bda6e28db22b2fb173e133373"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_6(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "dc34a49a2e4d1222edce9e87088397e625b09a16bd331bc10fa07399cebff43a"),
		nonce:           decodeHexString(c, "abe6e879a99f1c467105f7fd331e92ba"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8924c8bbf9e72d1eaab9322755982007e2fe18cc645256069bf36ab3352dd655"),
			decodeHexString(c, "d6a726312e14b9e2fb03b9720c6d966a7c5e080b6bbb4ffcb1759334ecd823e9"),
		},
		expected: decodeHexString(c, "7b9469a5db5c11545a565b370adc239df6af835de75ff321bb991aee3fa4e98abc67873ed89b215a716e1ebc9088d9069cdea6bb8f8832c93d8beb9988f1d59b6188516a9c9df72fae420ce0443086d2e33bafcce6f8acb558c08f945c4109c6ba7e4b22a825fa9f90b15f61ae28b3aa076f2813fece691e5376bd6379e76a54384953c9ac54ff39890316881cf9afbe8cda1bc9516407ae58c6f0adac3fb706b6fe0a882facfab3d5cfdd0deac27692b14d7afd4a9f0fa771276de27551c479"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_7(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ceb82c3f876951ed4e0f2acea748e93ab37ece0d110e8df618297c8db8d184cb"),
		nonce:           decodeHexString(c, "f8ed30e8c1401eb6db5be4d47ebfd4b7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "70bed533ffa03856ee96fbee70155fe82823d3e40e940c49a5da9ef14fe95b1e"),
			decodeHexString(c, "a54c96173d3c2322f122cb0f3b13d6b2dd45f72b050d675d7e14de6eea934cbb"),
		},
		expected: decodeHexString(c, "091cf354f4d40678b532e5397217738cd5206d6621ed55f397aaa75c599630ec9fb662283f3bbc9218aa808a4ef56a61e4fcf3be9f36287ec457198f86a37649814bf4c0cb62e25a35ee65fcb9defd0d05986981d99e5f78378aea246f532b32d3fca7599e1ab0ef561d85a93ac86934528c5f07e3db9c2701ff44b948da62e7b6e61c1212574df0c66b213f1807019535c6ee79cf4ed2902f2f5c069ed57288a2636a5e05734a041c72292388552b9dc06d646794b8437829c6c2f0a7c1f6ee"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_8(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "37290e324fc44a8bb09ecd5fe8bffed382580dfdd3c23e3a4b43d91d017598ae"),
		nonce:           decodeHexString(c, "0cc4b3e487a1d8f9da80d391f9ee8df2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c8315083c39a6432ff119377dd3fa42d56b892b2a1cb19e90db21517db1f1003"),
			decodeHexString(c, "61c03aaecff7e56e0724b3cc28903436493d12a7104bc6f1c8a3e4edda317596"),
		},
		expected: decodeHexString(c, "f1bcb21912fa0f73ec9a4155ac53ae6b056afa8359aa3ee563604ac820ca3b230f4207f857d1c1a018639ddfd7dcb310b28564571f5f0bdba6a1fb34c461267e59b853b99f696714a33a12f584a42199d8e62f1e3ab59560dc7778b2299c25341e66d90592540ebde6bb10d9ac3bffc43ca6a058fdfda1b7fa3d26915601bcdbd1ff19150bd428fa820332c575db788deddeb4741ff0b9f882ba3b27b11bb4e023b64e405f8d1afa96aa1783e6011669491831f89f7f3a69b7037d1e4532e6f2"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_9(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6ec400d8311623e5ac8c1734ff7db9b97177fd105279db9820fa90f3320c84bf"),
		nonce:           decodeHexString(c, "0f4f7df9490978b72f5e2fdcf32fc331"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1fb87fae83d388c30bf6c7fc1ac9c407bb666dfc7dfbe634b4a6a509d3f17bb3"),
			decodeHexString(c, "334b409a84456d5e7d8e8fe8d2ef3df3d491b9fd3ef037ce7fb74ce4fa515f99"),
		},
		expected: decodeHexString(c, "728196571ac1200d53ef168bd8c3adb6288772dac75416e390488297893190dfdc0e80e251f0e6118642af27a3e6e86630bc5f4afe930938e88e478e393599965394e6d16d75cd1785aba5401d5768ab061fb4723b67700c574e5885bc5771075007a6811520c1a91b1c853d764136c26c91e742bfd1e033b5fe40429908028e81369bacf8baa019e0b6c218b7a6d0da0372c59b40661cd41341a6b0ee97c594f301c3617c35c58e092283bb11f52754a00547b735c75b2e45a18882961bcef1"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_10(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b9a4469ce59ba2eaf1ab63b090039a1652d09fb3b794d35ce13c5130972c3d05"),
		nonce:           decodeHexString(c, "766dccac327092b5d3b78a7058da2037"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6b49aa49bb6e08782e6ea26fd7eed0a60f40683516c1b7a388a7028dee1e50a3"),
			decodeHexString(c, "ad2dded6c6e22c34c475253f58b6ec266acd90d5ada6fb8e6b1225c2678d030a"),
		},
		expected: decodeHexString(c, "2a8db9fd0c00f56bd85e735aedc131a91d497d2f006d22f43e61d3c3de477b30ce2b5a4c7d5b86467857ed10123a13ea63da95403a46504e662f759f3e438d576b36ba11a6158606eccb68a3ac654b418342ea0e6dac1a5449d2199ffd7c3a3cc5a7bfd1b76161dfa7f6091ab454a317abe3e42ebb146dd022aba462e70d7f033bf3ac0af586543952917fa912bcf33151bbb432aeae008aca12a4098d0a07d66ec252ee8f3876539d6718328d8e43f6794b2358bf0396359f0214e23557496c"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_11(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a49b6e419b6523481267fb89ec6c1fd4c7ca95d34dd48adfbf3ade97e2a0f684"),
		nonce:           decodeHexString(c, "426fd29a58a75d73062c39b5223de523"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3e5d3ce245b2a7dd5342ee0df9ac54c5989a5c57e39b07708ccdfb5799b389aa"),
			decodeHexString(c, "e0a191eb18aae774234d58577436abebd9e5cf8c1a8d1c19515a66c8e5dd6f32"),
		},
		expected: decodeHexString(c, "ad5163bc5a9f444286c69deb5bf4490ecb79760e75b07f2d5841c3ed0002d01a55cb83529c5b3119e2eede1baf1f8d9489e6bfdfb7071e03d4f62d1cb1710e1125da8c275a6f076e39c7e75e662c97f23625c5dbfd7ab795da6d0cc204ed7434f2189f6bdd2036e2cdd56917086f9cb33b3707a82f848c510cefed7743e84c1154612abf8858e67173b9e4458509c8d3b8aa98e9d1939fd1ad77c0a41713d75d7e9b6512a0345f06d4da43d6cdd499682b16ca7c066fea7dfa79385d31208074"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_12(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "fe6e09efe4478174e5578be98924610a3a3ddfa3a4888a3a0bea7f1d69ece799"),
		nonce:           decodeHexString(c, "6dde6c79096b4573e10ec6773607d6a7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8c863b6afc67d409ed2fb258192e68957fca5860f1ef11239b7a174627a4b053"),
			decodeHexString(c, "d597a278bf4288f12729e5eead1b695eb54c5aee7ac2d23c06332153dd45a823"),
		},
		expected: decodeHexString(c, "1433af934a88673aa5fdeeb4625eb84d78e131db30bf3c1fff60f766a608e8a09f80daf10b4d960fc6b08ab22622ee8192c2265f911ec25998eeda6b6e5e1c8752aff6e5e2975c4cb909dfbf0b051bffdef58ce2c59fe0ef0f6fa26e69a7e33ea8af396fb243e712cf84514ae52eb5d9d3937038086dcb1d3fed46499d3a22e1a1c7c7e5da73f1c51fdf5a49272c5fbd1a70a6c2f9bc14d61c20090a00d1c16a349ab7d1c3c2bd1fe01974f46ce785ea373bc99bed24577e056ce5ae13d56ffc"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_13(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "74d3adf8f006a0cf4a24219af0c67ca28ecbb59da663b80773cb1a950cb21a65"),
		nonce:           decodeHexString(c, "13691948a3d6de08e972e773af602af5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f9d03c7e2937e359d154e074bdfc7fda3a247bb788f52282ff450da1a4253762"),
			decodeHexString(c, "5f466bb3dec44e3c14d8b4cd68ac3a826eb19bfe613bee4befb779acf6f59d85"),
		},
		expected: decodeHexString(c, "da5088f6676967bddde61d4b60211060352c2d0f20f2362d4137b9214025b30c995a299fc91717bfef5e9ab6ab2872bbd9c1e958f9178a4119385ee50574b832616948e195a0a8aba8a72eb8362f4f1560e923c50ccfd996d85547a22ca06ab799a62c816b71fe85c8b77ec3e912968479adffe5c96db340ed01225bc8ff41191dcbf743ea50bce2e29455ef39952c4193f373d95b01afd8a091aaf3416ea0e83ecc3a781188e3bdc2440d92224ee1dbad947d9e88b5138b710764bf841c51ea"),
	})
}

func (s *drbgSuite) TestHMACGenerate57_SHA384_14(c *C) {
	s.testHMACGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "23c4788c9b32fc0123695a499251cfba0161f3ae38e20958d006a59168163c64"),
		nonce:           decodeHexString(c, "f8509371ee17ae28920718ab2ba6451c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a633f5f05ed8b09b70683a9f9a8e998ebf843b68a039dc3aa40cf30a5f997f02"),
			decodeHexString(c, "9a57c6be8c1d992bcbd599952bd94a755d7ad686698991d189afd11cb88b9f53"),
		},
		expected: decodeHexString(c, "ae0fd8a1bf6f2f53f9e81ecf6f40ff6a36fef58a3f157b6a435403e48da4e88cab7871bfe2233b92afd228bfe3117d7cff0798225a901663d51f0491109b9c631dd6d32c5bec2da321b8e64ebaced87a27f17f67082df944fa94acc6c557fa6816001642e38b7d776c631212b782f71aed6db760f90e0de8e81baaf4d419170362932e6c319dab948749b331aae41b4cb3267da37c9233c36d65d5482c8940387498453b226af485a37ea16bd9e4f938618f70aec97e8c1430a8d8b6aae396e9"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate59_SHA384_0(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5d9c7c53665a68ba61f71f9fadb42f313cd10f19a69b28c2b957c92ebb6c1545"),
		nonce:           decodeHexString(c, "504a6dc7a2ef385a6681312243762e7e"),
		personalization: decodeHexString(c, "53160857089ccfda7edaa84d173b6d24b42a7eecfe9925838a55114a1d8a08d2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f7fb90fc9a10c4cfeefccc4bea86b16216df007e51678ba9043abeb2fce23bfa"),
			decodeHexString(c, "1121fe8826ddea6657cf0c5a99c91f00ea399057fd0f8540ab2cc0841a3f09d1"),
		},
		expected: decodeHexString(c, "aea7c37843a0bfab822cb5ea276434fcee305e066f8ce385f275f1d2d091d4addbaaa91addddb8f122c945884fd227a3657215e98fb7764e7f8e541d3fd13d214e4fcd626990a96fab2b71b64dbb46a313bddd8146c10aa3941f1b30973ad70e928cbd4ad35ea3b1e2983312a343009474609d36ad0eb0cd11558fb22c09ad9a4ab7b46b748d5854a137c6e09e1d04f6d3724d78450c9df562655c773d5cb4958ccc1d2bf3c1a48811a04617941248b7170e9dba81ba39846e5f1dfeed184890"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_1(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8dfc0fb16e2869cb5fc140f6ddfe91837b6e80309b797b68c30d6b7a8640f292"),
		nonce:           decodeHexString(c, "b254a718ee5c778bb132cf91616ab577"),
		personalization: decodeHexString(c, "8242f4ac8d4048f6d7326d22f2c64ac8d3fe74e5d8519b6aef371063fd8e12c2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ecabfd632c829db2a894ef8ea37a86f5027bb8975c8f8b0ad05a0d129d172590"),
			decodeHexString(c, "3c593346a485f2339b4e478af7cf94941e2b09749e7a88a728ba1054dc10ff68"),
		},
		expected: decodeHexString(c, "5cb6b5d3da70440889809ec0099013dbdc6cad5d79ea84cd676b6a03fc6ca5c329b4dc03909286bb621dc70e5cbcd726e735eea49af2042bcc8c26f41d4de58b5a535b37d06f89c64c480baabb74d1c685c61e1ac5187617f56057b08b1bf3fcb479d4c212b6d5474587819a0c92f654568ffefa02ce74698c95c7a6ef21583c27b9beacdec4de668b4fe143d77b671d45285296bd7b68b91fdb8c81bb589d2b6a59b4cf0cc1da8fa6007989e04628bfae06fd4c3e465168354be129b3568508"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_2(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "93fb949646b69de6fd6a088792f183a27c93c60d4ee292ff2a33d24432e9fae1"),
		nonce:           decodeHexString(c, "f4a62bb91323a10c82d31a1026e3d4c7"),
		personalization: decodeHexString(c, "9907b9bc86e0469896c4ae84ba62f742bf64c0740c249d466b7fa2089417600f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a93305a129f43d39676478084f0e156b3bb1423ded3293f464fe7d4c1d59586b"),
			decodeHexString(c, "ccd11ff83be2aa88f5f856592654dae6cc84c7d6acb115e0414dd230d20776f9"),
		},
		expected: decodeHexString(c, "0715305913f94b159611d2a1694095ac96ae54b04bb5bd73ddb5ebb29f15421d9ef81397128b9c4d8b74c924d1083e886c6ad9ce325396cee8cbdeab26ea09317184e57f5259afb812bd03b484287eae184070529f720bf4771a52e570428fcd6971e7e8e0cff6ccd669e8d6e8cd56dcc41a243ad3b64165600ca3e2de836665098e51c03bdc2f50a435ebaf0b17bbb4639b486c9ccaae4ec270b7bf7253caef62ead9dffa4fa0ffa9a5b3330228793a333c1c6648276939a3dca7ba1c9ee2b0"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_3(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "59aa99b0e4a6252c6383e799bb25a6025de181639acb1a425c4487559423b128"),
		nonce:           decodeHexString(c, "2e7cbb1c325c09068d175ab31a6066d6"),
		personalization: decodeHexString(c, "5616119af6b34c8ef543a6f70250b86f5263bd0f30838584100446ac15a96ecb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fa7d975f1bc0239d5195f935fdcbdc14f98d80b56eba681a6e682527c36c70df"),
			decodeHexString(c, "eff019de592f4dcc731b455f097079d279fb25b8d11f0a193f90ea425a34acaa"),
		},
		expected: decodeHexString(c, "42fbb3c28e7aa943c9f06a7da2179145a7811ae12588b8be865627a020fbf0dd99cb2fd79bbb42df6b1d91d1039a1ae7d68a7c4be02db6d24c5f63140afd010188f39eb8b74d4737360ceeb8885d4ed8a03dac5b6b2248a0d8994498554d79d28615547b0fb30fc34e8dd23f7d123585a44e2285f58181d0a4da00f19ee5af283d1564a79e03af42977e063c531efe3acd35bedb469ca94fcfb45ee66f25abfb142854a6e28f004e7eef73e2e5bea5c06c2c7e00ce5793a31f6e533bb84396d8"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_4(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "688c64470a51b1c68265fb6b0dace0a2481b4a27ea3dc7147746e33a53e8714d"),
		nonce:           decodeHexString(c, "63be1e439905100adb12a6049944dabc"),
		personalization: decodeHexString(c, "42257ee863c8229e9f9c9c82d2892930fe0a3b30e0f9a6953293a89decabaef6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d4ecf65a968839631f651b34eaff76ac33b6b97932e8960c5f958c705052f1da"),
			decodeHexString(c, "1023cdd5b7240582b8f68d552a95ecece66fc28052645b8873460ee493c7d6a0"),
		},
		expected: decodeHexString(c, "facdaf480300d1801e014ff7a1d9e37534c580b623b9be1ee6f24874d2ef5c695062b22b1041a7e67b26a191e39a4a75d00ff7b49a059081906b2d062f58cc019b1eb61345b7da93e68ffcf387def041dd7ec24bede8ecaff0b8e9813ce34706297e09e06755134bd242c86c378b4fcfbf55dadbd33cfb0317df267deefa8a009b7cfd7c693676e7dd818d0460ecc70b81a9085da1efb7d1c162fc86d53c9dc70fa7586f1c25d574395afbe2262dab2625a445e3216346e0dcfd4be388f7623e"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_5(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "23fa4e2f46e3cb221dd86dae48e7be4353ca762cabda028d30bde00ebb8ab51f"),
		nonce:           decodeHexString(c, "931ed9ecbce7ec9605b70a81ff15f700"),
		personalization: decodeHexString(c, "f5189f0fc5eeacf22b56d3e1591bc8f9700d8df5c55ab46a405b7599c4877703"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7457277860b1a789aef6273aa8b76d4fa78211c3183bb19d359e7b15b2a92910"),
			decodeHexString(c, "a448b76609e8a5aa826e4d856f8ab5c83da8ae09ff5e005a28bcd76012f7c4cd"),
		},
		expected: decodeHexString(c, "11ab01bfbc67db080a1323a3c98e08a3c53ff171132798cd0dede1f3e091302689cf7252a91ac83572bc485b3c4509b69b2bbfc33b9e976f97ed337d765e9ed6e88a6f731211f9d4efab22f4b818162914bf55ee3637541d988bcf5a7e73c6ec16a5def6d37c020c5b2236e7b2ac60c7f39e16a99a6fed6102be2752182c2b92fd54321bcfa0a473cbc6e1428d015d56cc69db9df2592010578796a439cb87bfb6380c9acaeca9747cfc99ec0922a725cdd5444c52d1b7d40cbb92735f97126a"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_6(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "da401bc7dd5d32fc10552a71464e69bbab5a3c078d8dfd163105095d7a8b9102"),
		nonce:           decodeHexString(c, "016de70335e530d98a67b53ca0ab21d2"),
		personalization: decodeHexString(c, "a9b7138dfc2c3a0ae525b52be361ae29a34be5f565eb7767ce864de669d6c878"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f20333a35d035b1db11a9c0dee8da0616781d146a7768505c7c9d6238d425ef7"),
			decodeHexString(c, "58d80e76efaac6196a864b0686437f8f37fce5ebbeac730def8e6d86128ea0ee"),
		},
		expected: decodeHexString(c, "3f68928bbce71e4cc5d00aa20f6aad2fbcdbcb3758693f73b520a38ab8263cb62da057d2743d6582ab02c2ca6e0552e8ed82bf50e1256b19e73e69df72a9a0beb35a0167d52ec60d172ed32a919063ca873da14013cc2f153d44a92b05be03e9116c07b78f2997d266f9def541a03401195a54e96afd06ce63b24c3948be82976f2dbd82f87fdb68231b8ccbb401b51b7589fa39da6d23415e5b61d51edbd765c8ecefe82fe7ac4d5f3be17d04595b25ff0058735c1e28c701a53cbe610b213a"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_7(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "923104612cc5f070f1818ac997078fefa47fed6a738de0f2f0864cb408d62f7e"),
		nonce:           decodeHexString(c, "0f4ae717b33e3918a5f4012ec393a89f"),
		personalization: decodeHexString(c, "f994df70505979458aa58eb16fc61144122dbb35ffe994144769c706ab1215bf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "31cc002b31d02fefac8e4d4bed276168194a363defb6dd9eabf5c393326e5959"),
			decodeHexString(c, "15a67594dcace6eedd0313cb3d0588246c881fec7ff1811e66828bf6ff8e1cc6"),
		},
		expected: decodeHexString(c, "3005c8d7ec50a45669c1cc96f72ea81fd655d8217ff33aeb3dfd8e88558fe135d21176315bcab35daf059789494719f74985ec2b6b5d3a4df88bb06ee1373f3403f3b2085beade29a1adf3eb6653717119865787cf1e78d6d5aaa74f4cbc02daee0d72cf24088fbae885c26101d1aa94420d491cf7022c84ccb8531c7f5985cb3bc0ebe1d1ed6555a35b9f87d0233d175cf4510a27bd2e8aecf3a3b23835a974502d0ed968e895e8883279bed8a1c921cd53317d599531feb1909bcfe3e301a1"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_8(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a350a44a16d275555a788eb51bb26bf55728accd72c923f0fc94aeb709461361"),
		nonce:           decodeHexString(c, "7f85cbfb9ff1667d994f97ebc7a68718"),
		personalization: decodeHexString(c, "4375dcce5f24a8b83bed735df6ea8fa3c844e2e047de1ef39e1c7934f7a10e0d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a9a95100efabf115d1539a9af5ca407a49b10eec733e8bd29d6ac3658dad2cc9"),
			decodeHexString(c, "831c5d7c1b33a8ef19f0f9aaca3d8cd39ed407792615fb5e1b1a8a31d65ce828"),
		},
		expected: decodeHexString(c, "ae851a841531647e0a46669bb1b47989f1984a20f338c0af1ed1b6796be8a30665122601b7e494b27ef5582326d2b1c22a9b4e2d193392423226986dcad99adbcbb20c1513e4b80c7f6b2732475e5eb8a62c35b0e549da8fee0172a666aad8170a9079e368f1b41bcbc2901bfb4ef8c65d93beaf98fe75db6113c18cb111b3d8ec719b12ff74cc08c95202952a9253694f232be8307d7e13c860d318e8e20722680c1558d30fa1288435c0d94b6e63554d3af91a3e86fcb7825e97692fdaf3bb"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_9(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "cfb2ffc9697daab880ff300b2d0a41c28b099b3a704fcaee1ee0ed33ed51e157"),
		nonce:           decodeHexString(c, "e6646b09e52fc6a43b15346fa6919590"),
		personalization: decodeHexString(c, "d6f092bd1110ff92d9d814ca793fc2b974b02e05c24588f453486f6725bccc39"),
		additionalInput: [2][]byte{
			decodeHexString(c, "929624cbf5c2a47f75d6d9d7610b7ca68528fd4aad2a3e87c912513af40c5d72"),
			decodeHexString(c, "c4e1cfb35bc1defad7585f72ec46d2abb1ca8725109de9d11ef7194868db0596"),
		},
		expected: decodeHexString(c, "8d177aee91b7e512fffeadfae92c257d0e86ca70a9f7f5950463fbf624586b994ee1eb181ca18f8951eaea7d48730dd3aef54ec44a8392a256da56111cb2efefada54d40a8eb196413b434a166636bbc38d2dd10364ee30543c1801a573b2ca7cdeac3af2d283742facf280fee5abfedf407d8aded0472ab0737472068dcb4a3a1f1e0eba9beb9f4c59eb8c6233cf06c545a2ba47703969da7635813b484aa2116699d8e6580a083bbf8b1340649d6c1ed2d262d67d91c1bfa29b125ec46f5bc"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_10(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "450f27b3254d5f8fc52b388706eb184ed91770ac1ba3b10ede029efe079d2789"),
		nonce:           decodeHexString(c, "8d745aa6d6ca92faa65d4563bb8b5138"),
		personalization: decodeHexString(c, "fbce615973a829e1bf32910a7588bc43151bbd28bc4bed214aac784a64cc7795"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5584acd4db527b639779c21e4feeb5224db0e5a8d00fbabeb3515150aea1ff28"),
			decodeHexString(c, "e236d5f4397e50cc5419d63e6c546f5da4f20977f849f25e600a6f691dd69234"),
		},
		expected: decodeHexString(c, "6c8c81fbf78c8f756f9fc6cb0557c41177bc6be6f860dbd10da4902c8e1f6d8139fdf5efda03d794bafc9daa88f0f27b6a68fc8f74798dfdb40b4f4d1b41230ad1524cdfd9fb417a9ecae336aa0061aea424c9b004daa943623b60349e4507854dc0cbd222a938c86f767ff4f6ceeabd95a1892a61fd194c53e2ba75b327a541be8724fc2cb8274d23923ecfc3bf13e9664d45894ab2cf5dc0af6728bd85f89f352479cbd4e2fc35d55ecb1f3078609e8e79c265ab36b1aa11222c0e9a9e073b"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_11(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "e704e75c58530dfe375f46afff04c60b53bbf6064eb422900a30ceb7b9eab5dd"),
		nonce:           decodeHexString(c, "6d08c287c8908dffb673aae381d8f0ef"),
		personalization: decodeHexString(c, "9e10fbd7d3829947ff27c2795042c8f3de0bf2303fcdace14204f2b1a121f0d5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cf3f1a6f76aa442e467bac41b72ad8dc9f65f72f7d819cb80368ab0cc9377d35"),
			decodeHexString(c, "7b0b8726a4ae3e2db51722679c2c546887ed6c23c591f69ba04d3982bf310777"),
		},
		expected: decodeHexString(c, "4d6e50d77707246a660ff4c30fba80bfd5d50a7fc6589c8ce01298a9ad41a49aaf278d6b624bd321e8e44dbd4f72810bf1751bc5c8b7c2abbe5f02ca4c89930c586956e868553c65dcefe424eed6c1c73837f38d5b723a0ed13ae9d0e683f7c67df42a8d5bbf164ebcfc9574e00f715cac1e2165d7785ed6c16dff50c52ca3ef8e4f90b6fc6f631367680cfcc528afb2fd44b36e65bdc7eac1b84e89d6926bc67f8fe597146d24ff2e11d1dd34fa194c457c150cffe32cafa58fda63e0733e59"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_12(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "dc2b1d58051bcaaea2f7a244f3487abd9dd13132e48020c084391177f37090c4"),
		nonce:           decodeHexString(c, "e49f14c3805b94ba08f6314eae58312a"),
		personalization: decodeHexString(c, "432a8166d184b5753d5665ff24e57724e9b420304ad1bd86d687b8b5d23fb604"),
		additionalInput: [2][]byte{
			decodeHexString(c, "26b43b327aad2209a2ad4b5893ff91b24384048be2c60f905183f61bb3a99f66"),
			decodeHexString(c, "6d28a5f4dd27101c04943b1814e8f56a72bfe11c456a7361843ffc0a4c3d275b"),
		},
		expected: decodeHexString(c, "54d2bb638335ef4d30bf03f1d87e9c356bce1db6f48954ed79c0f5f0d350b8a84d6e9d58eeed77aa371eb3838c379f815fcfc0fa94f2f6c6b656afcfc7c6a6c32556a4609f88c6717d35cdd1be5de5ec6000b3fe25ee549d8263721196ac643490cad2cc2198b7988139c2976c0fc1d4a159e0013c952394053efdeabe4b58e62af9e6729b4ef520942a0abe5ad7e1653e7fe4e128edd6f759cbe769d196de2b6b1348019bb2117813e2c096f74778cbc428a1c03fbdae977e156de1748e89d8"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_13(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b01a11fa180c8f7c4246a92f8bdef73b7b02cb94bed5d3bddc9a71fc52775b6d"),
		nonce:           decodeHexString(c, "9cc2f6606a9facf1b9f6a174fa7856a4"),
		personalization: decodeHexString(c, "1390fc090b015654ea800b2a76a51ba197364872bd572e5569a62b02e781f3a5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "411cb153516e88ac3047d42554f130cf1f5e4584eba05b12000d57ce26092183"),
			decodeHexString(c, "181671639b100af3c7a6a8e4c52f454f13c7842b9dc8363094a83489b0af3bd9"),
		},
		expected: decodeHexString(c, "0fc49e77d42dd4e21547be63dce71228c5778f5846de734f7b41a736e8ea78a0f7e128dfdb56b21eff43f6bb7bfae1757815ba39a20f9b63035402c3a98833cf0624d68206d67c4aa20b89b6cf0fcefef25a8c10dd32bb4eaf80cf29221ff2cd4d2bcb7cde45a1c7068232f2db003dd391b546c2fc70d2e8ea381c9ec130ba0fbd85eae32a9eb7a1d600372babe998d80d7208914d56c6b5d078313e6b8c9df8a729efdad73fca37c68c53898bf59425460a9034fbbded5b7c738dc2310bbbb5"),
	})
}

func (s *drbgSuite) TestHMACGenerate59_SHA384_14(c *C) {
	s.testHMACGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "43c8625576b8f3440c13d936134ade09d6f87d3efea33a2b8df97730c8ef5687"),
		nonce:           decodeHexString(c, "4155f20d1c3dfabdca10fff13e8e8c80"),
		personalization: decodeHexString(c, "bb10eea932e1189909516dbee5d579c363b2d78068dae2c87439ac6fa8717651"),
		additionalInput: [2][]byte{
			decodeHexString(c, "32f618446311f03a0038dae07e85e19006a55b69501d764c241f683be50f027c"),
			decodeHexString(c, "d64a97650e2f25362fd711c7abb5635672e16a02a1dd5ed8a181762e86f4f5be"),
		},
		expected: decodeHexString(c, "54ee53e6d18e974913ec235a37a706868f217af33b25e8e5369d90071be1d01035ca331b8514f3d6186a9ec62b1e7808b7fa22859eea21e4b8113ef770772561eff7f8b6ac22125d002f6ba9f53b235f7d85dd5b601787201ee1423de5d971b2e758b3955a048b50f118c01122a8e657f69a63843bea00a46c4fc2ebbae36adaebfe3e6c9b1c82e498d3fe48d332ac1bf31ab4c80830086c8ee4b1ea190f8e269f74cd760f5a29d244064d09c1bc30832482d5205e35604a388250a7a196ec74"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate61_SHA384_0(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f550a73ade2a81e2aac6c4fb3fff7591ea1b0a3b1f3729665b328322d65cad39"),
		nonce:           decodeHexString(c, "9699a10c9cd9ff305458d0dc98ae5754"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ca00085218dae0c745b6c97a71d46aba8becdbda6b3ced2c138d6cd666a83593"),
			decodeHexString(c, "95f0300cd33da989c68e7af53e0b99b242526f6ca3ac96dc755f553204db895e"),
		},
		expected: decodeHexString(c, "7c13c680f872b693769b80684dfea1ef9b175c18992dccf1209246d090c538b0c74cc09e8a81f24af51e03e87620b6084f948688666fc66e9e2e2ce0f74ebe404b80db2549c35574c9b5a7bb1aea8edfee08d8d711394e301fbcce81d71c051d0e6d1635a8f58f6cd397ba6986495d984e1eeba844fd1c743d920a6ea80abcd5d2367419999b17c5d7bd05fb26b6dc37620b5c56f28bb0dd8f4fd2df28ef072b23e12b4048e6e92a14bf5c99fd67cfecf8eb587d31e86cac2e96d6d65e49733c"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_1(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "4a8c46491abaee69859e568def790f61e8ef5795bbc1313c7f6a04573c4250f0"),
		nonce:           decodeHexString(c, "bb91875f71c4814fbc3b74254bcaca90"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "224723394147830a34509171940557c265bc7c15012706cb7f2596d4e919bbff"),
			decodeHexString(c, "a391db8e3da2c01271d562a377b84e7b0b42f45954d6d99155b17288c81a5a12"),
		},
		expected: decodeHexString(c, "f529737e0f26492d7b56a4c08eba591ad34e433917671ef8234d05c1520b8e69023853a0639acd3641c1f461c841ae2cbe6d4f543d8053083c093797fdb79bd4608d2c78d4fd9a82deb3be23180c5a987ad9b9179e9245e384096a4a410c72e8808bea70076a468d8f18ced06a1f91051d66b683c8cb1e55ba7027245c6a8a55a67711e2cfb3f63d7d530b8308976a6492f5259a87d0b3ec9c5ac509b2c25949ba3551a2b9c8f231a092438487cac50a173039633d05c67095745e2635864498"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_2(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "907fad5abc0391eb2eb52a33a94440a25a4eaa44510e14ef693c9ec00766f422"),
		nonce:           decodeHexString(c, "b9ee4f24128363519e9574bfa40194da"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b34bb91f6e63a2ac02e2d1f6fedeed3a7f5a87c84469fbc0badc14396be6db73"),
			decodeHexString(c, "b386a9db2806d42123390a899783282ebba3dd55a7722574deddbf31949a663a"),
		},
		expected: decodeHexString(c, "d48d20346fcb3fe1933090bff111ced621699782492cdef6eb4dd13d797f0b6b85c60cd4e9c54e7c3ef86e0c81f2d69155cd20455aa5fba6326b084f1b5b6dc6536f8cafe34538fd8c5dc084236cb707fe9463890abb7d3338a3a869698e9d5a2f03b12fa83fd361eb4c324c4a734336369a92b3429ab2f2463b1b1e01c61ed2fd8abe0462ec5c0d0b34521563a58d031fef357e778864d00f2bf5834db33f7c2f0ce1b39a22fb854fa2bf9125067be15f0a3779dfc9b016bf480b31698677a3"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_3(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "0e335b6733af1bb5cdbead51be3adf5d9404fae9d5c2532e18a4a75308d32510"),
		nonce:           decodeHexString(c, "523a7a194ea46c97dedf8edd4ca01c40"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "44c47974894c61a1bc5c7cea1016e3731202265d23f3a44f4c60054cfff9caef"),
			decodeHexString(c, "086fc6c5142b1b8bba5647199b7a6c0a855efefcef7553ddcd90721af578d9b1"),
		},
		expected: decodeHexString(c, "96cb6b4ea71d2fc2c905ce111b2464eb5fe33aaa77c15f468ba02eaaf45128051b2e972ee7e9e042039cbc6a9679ac50a2a6c277c26e6edfe9068062ef4a3ad88af7fe49da0b92547e8670402650e001b2dd966f2a8f663e97510fcc791204d0d0ec780ee3951484b74f7f455b343cee97503617af207eab2229678ae96b984388eb098411633621e6350e5d192b67a7d6a512820df34171f737c4d896016c192d42f8e5b1dee49c7144ebfeec641aee385b20b2fb3668d06fa0cdee2662c4a4"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_4(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d8f8e9ed7d147bceaafa2238fecda0549f900d2b4fe50ab4c97b1f4234cd9f05"),
		nonce:           decodeHexString(c, "801879444c78dc7c4e66008c610003f3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3082526b235f490feee994465d1fd59e357fadaf486afef08e9227b4b09dd80c"),
			decodeHexString(c, "4517a7b5dda48239a92411a41a613c6b887f264b83ac9279cd49e27200823feb"),
		},
		expected: decodeHexString(c, "82f87a256ca3d2e496d697dd52c62d8e89d55175c36dd0b25d7e7b4f58e544d5e989b4a4db9dc29ed9d9c07741f72becc532879759bf17a1e954da4ce83f573114e7cf7364d79e1e31a9825111715bff637b23a58fdc7eb6fb196386d5a8b5abf18becce3d97db59af82291ae2b647724fa97681eca62b2fa2edfc8570986a963dd4fd9d238ed8d519c1bcd14dca43bfd6ab26803ea7fd04756e65b3efa048eb892eb887f85405a0c86573167f64e62fab598a0f89431e44746a8ae9abb361f6"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_5(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "86c8225a2c1bf4da6c8a1e017cffce3e2e9be8321ab1b9322da0ecc53eb8529b"),
		nonce:           decodeHexString(c, "05258ab2e5834f2f5ae255cf828422bc"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c31f94ae4c0346c36911224f7de28923d38658a9a991954dfa616014c000629d"),
			decodeHexString(c, "290c37203c95d9259d4d6e13f10584df40dc5261d7e2706cd0db032de7964bfd"),
		},
		expected: decodeHexString(c, "08bf5fafd9e17aac1db7a50bb7e9080577d45de81527ac8f8aacb5e3d8971318ddda9762eddc386dcee82a4af97d6c790c4651be9950661a9b521f1fc71a92475e98202595541cc75a9863146df2bfcaf6e5effde1cf816eca3accf22918732bd768c01ea5e31a67f6b069f4f59dcec43314135bb863da9f92f11d468f5ce40bf9a72ff0251c54f42563f383fde78fd558491131e2e2fe8d9c78c56602cc0fca42ce76fe5360c273b6b30dedbf5b96afcfeb5b1afbf55c2f5cfd520c1a5d7b6c"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_6(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "676bc936e201ed7ace38d38442eec8ab8b56728732c78f50d2c5c7b651a60388"),
		nonce:           decodeHexString(c, "39671aef736140a276208c9443bbd056"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "72f9ae3bf30332e1b6655cf55113202720dba5bf69f0c9a7bb2d3fe99ca028a8"),
			decodeHexString(c, "9c134c8b6ae178e4e72b05569e9a1805fe43393463c02e6f6ac845030317f1bb"),
		},
		expected: decodeHexString(c, "d32a85fda8427aaaa2f9f78193ef5291426963cfefe0442437779dafd35f32b91d091de472d90b6ed94eafc3940a81a68df200ce1e4a3712ab34ffcccc618970afc96f084883e56445b137033fff7113e8191c8b98a0ff24100af1587eee09f3bdd9218d6c58868be6cc7ac9ff874719d05752b91fdd4fb170ac811a3c52d7269edfe26449938e2a47b08f37ecbaa7598088c331fd45b6db2921ad0b42aacac4f95732e7ce8fc943b2676d22a509988c826a8fe0f5b200982bbb5631eb549ea6"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_7(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "83985d33fd3f7a61d418892c79e568fa62d6c7ae33cc49743062f824a387eb81"),
		nonce:           decodeHexString(c, "1e750139896873a61a22845d998d7a01"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ac2a8ab5f56e379a6d567637024d0cc59573b426264c825aa00ffd33b806abc9"),
			decodeHexString(c, "64559d045f264318e570dd79986cbf8fea8f5311b03a83c7561d5f896ffeffe3"),
		},
		expected: decodeHexString(c, "bb3d0b1d4c8ae2d13203c3af720ced143a51c2c095d0a2a4b0b83d3886ba1f3d763514914836b5912f65dc30cc2f61fe973dc4389dc8177874677e63aa45f01ea27854c6dd0a9eb9dc9ed5a2b8e002e5de325d50308c64c7df1960d8438e732f8c436eac2444dd50d9dc0136bc589177fe1f1a9782a219800d1b8a9fa4d36e0cac9404c1e30db227a1956c3db519b0efc3d07de0fe863b46fe9b1d21683b2661de4d85e8eafed5b0fb9e899db59008850185a39d50eac34e7c187d882572e128"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_8(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b79b06ea08a86b871c3a10b70749c0a93edb753e1eb442f6243d48df55478c30"),
		nonce:           decodeHexString(c, "45ca1eceb003819b6c2c9c3c96a22846"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8f45a1ef8745b46a258a4273838d8d22fbf3a753583255107238fdb9017004bf"),
			decodeHexString(c, "aade8a28b63cfdf042406b6326aafbf7baf88eada200ec8d807149cb9a29d876"),
		},
		expected: decodeHexString(c, "250038ae86852681851a211915786f766792179a7a32e949261eca18af237a65cb1ec6ccb45e2c1a8e4fe213a4db7860f2143f8eba763a94b94fa30f1436851b7fb211ac26347113e673f4b7bb52a7fd1cd33c01f58a6853d83641e5bd5a7447d0b97abecfd03b55a74514ffd204d79de8086c262e9068c5c004cfd3bf6528eea9ca7ef2f6dc4ce334506edc55d4d32359f1ddbf696320fb4822ac1cf1c79ecb168f9c3781288fc304f299a7f66271c308bd3730ff7b0d380a13baa342a5ed95"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_9(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "00d626c3ca068c64dc073c1c4927085275414a06daf9a66f16ff039c4a3f2c96"),
		nonce:           decodeHexString(c, "e059cde80adea5a2dfb7f6d888ffe9e1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "384583b9652d8eac7d2c8eec19a14f8f9f7ba0bb7791ed8e026dc39eb7566c82"),
			decodeHexString(c, "46b2bcb68a7264dadaa4d6391688117f103c0856bd9df8f825672e80391657fc"),
		},
		expected: decodeHexString(c, "ec2e0678b67c881f8fbbd892a8a513453ad8cfed5aa98f0b2e88f1b21f0b6c172329ae1651506ff442f5140c867308db9fecfb906095d9c0313e036725a15b63a0d3c6ba631722ef345b2a3bc4d870c4e3dfbfcb9cf84336cb680906225eb0a8051d7a36f573953b80502058373eb737a168a29eb68d4ae8cc9217fc62cb64c939dab72510e74e637a0741aeb554f364557f483ea3f1f2028615b3852a4b2fd6dc3fd0669682220d7e6dc73bf4a687cc7aceeb8b80860d4de7dd437618a24ac1"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_10(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c35a05e26d716baf236e8a695ae328e2788a1846a5fd2c2fa04d91f4904cc951"),
		nonce:           decodeHexString(c, "b75c87f786d01ee1500c678a89218b71"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5ebb9f8ff05744163076a401ea1f985f15e61e334f97f6bf3e7cb233ab10f2af"),
			decodeHexString(c, "7a7860b2782fe04c0095ff2f3a0613f81c28942bf7a8460c1c6a832408f9f292"),
		},
		expected: decodeHexString(c, "8ab7021f328c92a1e5a1ea643c5deb9d0a0584fff0ea0a4cb560532e3d083525b846a3ef4042bcf90c595b36480f4f575196fa573e858605efe08f7da9f6e9d5baa22624255363312a2879aa997f69a3e834727b79212f8ae8c058450ebadf7d24fd8d08bad38b1fde9e9f04e6b9645d9a63f8972facdfae5aeabb71208f708373be24679881bfbcca4ae4741709bbf75063419bfd2a079e0b386adb8c7bade05295901aaa0287fa654abccb26f0bb611a3957808e0db94bdc463bfc4ba35679"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_11(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "7094eb8f4362d3c682b9ea841c5f3f4fece9684cdf90a64648a308263f960b0c"),
		nonce:           decodeHexString(c, "6cbe49f3bc3f91a1aee6034ae57938fc"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "356af1b365a70be97aa88058c12b1e2bb6d75905077caabd13b1de7c44f92de1"),
			decodeHexString(c, "73aaf6b2171a959899af57f66b312129275e3926bebc7af3a1fadb312e313a0f"),
		},
		expected: decodeHexString(c, "a455e30a961d0e545e7060e58957ca8f8171208992ffb69a3ae8ee9aa59945020a1776a3365a622b82df14b9ae163a457b1cf9c325138bedc8cac7dbfcef896b2df29c3db67d622b53b52f06ce11c7b7b9d41913c0ce951e5b6e91385d43a728e1795c16a6f305cb1af6894f08372490f600139685f54d9b3a6d8253cf1a2c1a47e5c843676d0911f326fcaabedaf9295e90d3ea8cb667fb223d08a2e220db2619f1864d6d50922f031d939dcb68d8a73e8fea3136da0988a113c77b7d89e179"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_12(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ec581c6bab9f3650e4f81986d226c7110754e56b55203e3878a67ed363abe0ab"),
		nonce:           decodeHexString(c, "edfe66023c6ea2e240dddd067dc2ff82"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "24ac39fad4e1c34c1610ce79b8d9f429ee1b2a84b90e51b0aa1fe70a2f0db259"),
			decodeHexString(c, "3133186792cc1697ee64e4ead8a25212e1c8aa9facdb0ba32905576fb94fcdaf"),
		},
		expected: decodeHexString(c, "294e71ba9f8b9c0ed24a79ba9d3b97843ecbe28c203fe5a11d00a91bbce3557c8786f540cdb1dc3662ffbd7238a56b9b8a422d2d8c689f5a1ca64cc888edab463c1e788b89f063bc6b78a19fad19e7df5c0e4484f864228862b0faa43848fb1a03e87d41a852313283d96dcff87c3138918e08a669c9ea2ac75e83037901b3b6cb109fc1daf38439ace1ef104817f47e009c2635612fc3a26c7d4f7d219388f08bf2f71b79615dd5940dec1237e40e34ebcf01213c355c87c7114233038fce11"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_13(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9771c148e73b526145fb7cd020d8d1290b44bd6e9bc419ddb63afe8b93c9235c"),
		nonce:           decodeHexString(c, "2b9b1916d36006ceadefb73ce791a240"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "66660895abe90ed678c594c40a48d3e267a8cfc55c934d862c53003423dfa804"),
			decodeHexString(c, "293e651964044844ca10dbd2d28844a9343a978e6406e14819478da868145055"),
		},
		expected: decodeHexString(c, "d803e3e953aac1115a9768aa223d05ef99e81decdc1d288e84942d66681f866b7431763367e0cb5a8d3c9d0bb06b8d032c70005315d5afdb2a73fc96a2dbb759987a6a6a10e1e80246b66808d704c42e1f64e0cbc976b6bfd0c45088c64636e7ce036dc8063e9bcede4116b1e6eb44733946f820713feeb892e584dace4fc3da0dffc40cc2ee5bec8bce062f634d3d7edd969d42267f21a8b153f6ac771d24d2440574fc4a15b92ee0035e809a0ea9e790ae7a8ea9c4feabe36bd0e89821a1e7"),
	})
}

func (s *drbgSuite) TestHMACGenerate61_SHA384_14(c *C) {
	s.testHMACGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "15b572a99520a823420e4223ef85ff32250d6977f58ae95b1ed004be62ffa57f"),
		nonce:           decodeHexString(c, "bfd8f7be44b81fc23cc1a02b30b9021f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "eb9e19bb6eb7b714dc4d56243897916364dae7bb3861a4697d7d3f2b149db843"),
			decodeHexString(c, "156d12c7a1d0af2cb9f2d0610cedd9ed3b982e77bf4a9dc1ef0f71284b751ca4"),
		},
		expected: decodeHexString(c, "d3b0b0ac5150afdb3d9de12d2c8a7d45109436ed9c316aef1d1fc5bfba1cd37cd750841146dd08320539eb1678962e990f7b7662b44b918447e173672b873b8ab0348306cf6ae2bcc6756036870745436571763efde334dec5be7bb9920629a36cc5db66e8824695cabecb8bf092858e095a2a520eff140f483ec528131c850a8eaa48d8c997fbc810401ca378666d84020fd34af77fbe1152523e979560708fb15f3b7981e333ad4ee8c2fb6021a562f339616823cac5998cd919f82d43f41f"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate63_SHA384_0(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d7dbf40b15ce2ed99981e548230f2b0da3db0f89a19d35f931545cd6f631da41"),
		nonce:           decodeHexString(c, "cd0d2912a9f40d0a10573e65aa23d33a"),
		personalization: decodeHexString(c, "89e9f6570f95e59234f850cf572f2e82dd9b898c77b83c466674075227a51ade"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b263d5355c94d9c9dbf430d763ccdff333616b955bdadefb7bd74d3d08a16ba9"),
			decodeHexString(c, "32dc3f4b48126cac341695d1974c67bb343f0e2d1e2550f701b2b611ae3c942c"),
		},
		expected: decodeHexString(c, "1ee4e48d8332ed174ee3be9010cd5c0258288b7b952c14d0e1e365a675fc6087e39e7e40fb2ec07691e40732aac1a1cbf5b0e6c551fc17f81be729b1596eee49586d2604c8587fbc0acc0006a73fb84f90680e135d9e25a087a6910a82d93d8d5026415981ec8d1e6b3a12e25d6295fd5217893e50d5e57704ea5d221f8d0457fc4de51d7c5421d5af63212050252252d9fe1ca5421c1e0a2b262ac206f1407e000a55877bd5610bb5f543fac0de3b5834fd265e34358b37fad97aa404649d78"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_1(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8a236b8c0cfaab8a9c0809064f164d07c183a7b78703eee797d77e515d0da612"),
		nonce:           decodeHexString(c, "47b2b3e33e95b2f3c2b8f8dea0c207e0"),
		personalization: decodeHexString(c, "443ed6fa3941e0b67a107c6545d41bec3cd75746fbc910507e2f75d9ea2f7795"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d71b802411bd0694097d27dc059cc512c38612147ed1cba292dca30de102f719"),
			decodeHexString(c, "13206242a65ef05f616543ac3bb308ddfcfca210a3dfe06e627acf60db11c50c"),
		},
		expected: decodeHexString(c, "7cae1fd9f7308208bc2c6f98b3a5a05c4a4d0250c759d2be6dcdb54c1c597b7b301d4cea849126fd6d724c240ab165d8b75b81cc7120d2f727c9b0c0849e32611b79751d175fa7189d096eee7887b53afb625b4e543b67681942eb98c871a5ae4d24e8db5cf477f6109186a0a2eb64188abed1eec15513d2408fcc5e97d8b99b06e65491f6a15854091b10ebf9fd9fcddb5d836a089849467f3a6fff40c1640696ca1cab392f3dc24ccdd9568d971e67ae452d36fe8a320e6d9a9bfd03f499f3"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_2(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d433ecd48f0f8eec52abd23c7201244fea49c4ba16b684d402e4e8e391938405"),
		nonce:           decodeHexString(c, "3d96ab5c95f13aefd4d63449c5f64fdf"),
		personalization: decodeHexString(c, "f0dd0c4b1b25c923665109c02605451c55b7eb07ed3ccd0591f2a912fa3ddc6b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "306791fe4783249348ef2303ac68a8d1e53b2ddc03c5004a5e7ba883fa251152"),
			decodeHexString(c, "e4eb15bda8ff4ef93d3ea03748090b835cd93bd6366003404d4d8277c5f1e76d"),
		},
		expected: decodeHexString(c, "8780007645be1c9c288091a0393823026ec2c0ff9fcd61f6fb9eaa01b56b7b9cddecfd51e7a6263fe321e6edd12c17fcd5d036af711ac26ebe5f9602076b0334d055a1a399334571f6ecd5898c20011c05c153731dc31077679f558a4e1e75de4b7056d5ba5edd721eee2a18a8a74c4c12b80f80dd8f81f41e3cb42d654e302a96abe294d8c648e8c577be58a9fa8ff4dda2d4192f1ff3b0319d8f9e0d50a30673a0c20b83e7163375c48a0b85ae9b46cdc7eb4ae318230f0b8acc19ce908201"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_3(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f13704506d90cae5638820e685496d08364b60f210c1e3cf8edfc662da150897"),
		nonce:           decodeHexString(c, "dfb760948872f8c2001531d8102d1cc9"),
		personalization: decodeHexString(c, "ba7a8b96d6b005582dc14bc9dbf6e3a34b02431a6fc7e3c95e6215d92a882b30"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c8daad23ea5945eb738ad2c1ffdaed89ffc3fb23a192ec8f33fdc2fca6860399"),
			decodeHexString(c, "70c9db40ba55f426d41fa0ea2aabe40d4d7c859b497cfe3aaaea39d221e035f1"),
		},
		expected: decodeHexString(c, "52970c4b998d5837de02b3dbab4e6904cfd0315e5d46752c5cc977da79858b2ff798f0c5b5651fd91f95624a9f5b9375066e1d4705daca5df32c5022c589f58c8eabded1c03d0e195272c5f1595fa5e8979617f6b40a19398af3157585e346289c43e416b6129c64dd64f3079a15f71a824e10d832018590f8af828117952e783c4dfc2b27c86bca3dbd644f5d448bc195216e7c279d553f7078fb24f3251832c0ccbe0bf2331047c63f68b138561187b27a4381a2ca52279eeb680bd112a896"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_4(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f6e6912160ac922377567d23314dfad6fe63858acb53d29eecf2799190c76803"),
		nonce:           decodeHexString(c, "9c79a142bdb9db4d16844b37f4c1f6a2"),
		personalization: decodeHexString(c, "24133ed4b4ea655d010cbb09de6aa7ec2f307635d139a76a6f53134328ff16f8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "66b1ac9156025628e845e4d16afe9c29eccb473fd8b0a76dd20d3aa44b1eb702"),
			decodeHexString(c, "401b86a2b4271d27c7ece175de3e0ec606c125a3645ca65180ba096bc7f7f6f4"),
		},
		expected: decodeHexString(c, "aac448a6846ea837589de9c75b80e5f0f73b3aca9c5ca35a0a6992152ffa4dbda84aab40950255aa814b1e37fb628604c14fb8e93134cd02b78af6320fefe27dedba5af0202cb4b9b6afbd33623f3ef650eddc4105e898ac2e2a2a29ed69005bd7402f6b882df98ef90433c263e0e746d3f54ae278f9232ec1b6d5f1536f87536ce06f4602e6fae888b8859f76938b5aa458abffb636f098fc47c62f56d7584d762c5d3effaa26bd68f897f98500c74b84ce7ccfd5bca08fc3d4d8947b00571b"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_5(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "81b3c1c4f9750b1d0e70c92c28d20154fa6deacca86f3126180ab070e235ec37"),
		nonce:           decodeHexString(c, "efef7473462f8ff6d1cca84534060bef"),
		personalization: decodeHexString(c, "b3ad0c14ff8819c295494e80f0214014f965894dc14441ad2aeffe51e3afe150"),
		additionalInput: [2][]byte{
			decodeHexString(c, "503e69b70f62573f2436766503937b4980343d9659e8d8904025db535c75aa7f"),
			decodeHexString(c, "43fcaf436abc01a27be29dc8a6bda725fd8a61f761dd9fb789d2f14e26787be5"),
		},
		expected: decodeHexString(c, "272a34eea7a52e5c010571fc7309bdf297358f22d5054e10636f19dc6dc20ee9c7d311832184f8f358cad9f9c4b24bd6aae1f79ca917bbdc2ce82e1bd239015f745060ca8bd70c205ad25ae1188192b413e93e8785f8102b9a93dc5fe7be3e2ac0b33820461e9f7727ca40dc422eabe48d6d32165705da68ce4af6f92b1cde8417a0f03f957a1532a5d6edbbde3aaa5fdc31ef8ef23bb2328dfd41d21aa9ac34b3253d11db89621ca9026849d6054d743e86996bd0f3deb53caa56f9c5aaa97a"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_6(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c74f75725410f6dc88724e1d4042e65876d0c07cae476458548e9924862bf1fa"),
		nonce:           decodeHexString(c, "1aeeed8e5b54d980d76cdccdb282617e"),
		personalization: decodeHexString(c, "1ec1e3299f2d935db01aeae77e24e4a12c7acbf390bd061cf97b9cdfea49403b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "89f75d89d4e6f01bae5ca0243ec0e4db5b1294243eccfa7a3879b393590c4c55"),
			decodeHexString(c, "d7623a2e811e3759fdb4111e9975fd718e014a4645b4cb39ac88d6d950d2382a"),
		},
		expected: decodeHexString(c, "76c2ac9498598843353bf369e5b2466681efb22415c891dba3706a15fc92cbe9959275766efccff5925e40caf156f3a2ba47f20397a877b89c4715b72b9673305d7a6e7f04f40c5d9c7b8bce66097a69ab2148cfa4f37d138f012b627a0c2779dddf42012c96020b0520f576e5a7f121687dcd0c4ece1282aa0d46634a881aadefded803cc125625f309453f65f16cba85d03b083ca6d603de271760187213e2985d1f09dd7c6e7378ea5e54c2c1568d11cfe4f94420c7472783eb8999ba5f0f"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_7(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9986c72fb73e9b17d2be1a899258135ad3e8bbcb3825698194e6c5e36c335fdd"),
		nonce:           decodeHexString(c, "8746f8604bd75b089ff33cc30e6e2a5f"),
		personalization: decodeHexString(c, "b125be003e38c2d40043a26fe22d24bc93e142b86a7821a6fef68f72edd0547e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4ae69b086b45876efdc54cde13919e12705539ac595cfa0de346cec54c5a6dcc"),
			decodeHexString(c, "13da91d9a02ff0a2527c4c9370896e734d92f92c9568bec22e268dbf76e913c0"),
		},
		expected: decodeHexString(c, "bb21f51cb988eb1c3f83467719b42d2adef2d07d24aae2f09d090424c349bc616a87ce7cf7dfec8a4a2651edbca628f6b07e73c25756d3ed67547e723d0f0f619aab1bc775eb509e589844c8e28ca868bb95d79f88828fe7f19a76e3b49a77e40d7fd32460f00a07b8cdc9573ecbb125ccf677208dfc2b49d816d8ad436e568b3b086b7fd5491101099c6f56fb8f154eb52be4f17756e482cc59108a79b0cb1ce3b43e619c1e14a84c6ac93f5fe20ed0d809282462209536c105c08f345e715d"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_8(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6f1e81d2fdfc2f40a8454ec91407665c0771347e18860b4c3bd79e133b2d7eec"),
		nonce:           decodeHexString(c, "ca7ec8767baf20cbd123153b6e80015c"),
		personalization: decodeHexString(c, "7e283de6520ff84944a760dc14c2d1b976e5a09c0e227a59499b4ddd83a102b9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aca28f2094a28265e538ba59b4a0c8984198312b643e93cbad5e7b8aaa8c8120"),
			decodeHexString(c, "62049e29ade953bcd8eeb7051b8803aef7a98caefc540d4e4fbf08e067d0291b"),
		},
		expected: decodeHexString(c, "a481248a2fa67f1defe4e9d4f26304d30004565e4880e4cdc37e7eae6d1ae91d2c052856764317af5cb89847742be85ab67c651d654c8f6f6f4e014734d6018330b91c763c39fe95b68e071740818f50705572a2ac391f007a7e23f6a12abeb03779ffe9520e9f0f840cc13d4a94b2946ea4a69a63dabd2622b8c00d65e2131ab38ed82ac8b4a33429aa6d844dcc6afd507db02bb67112023e014dc301b75f9e821d3e212ec2a34bde5b64497824f2a54651b7291e009615ad57968b96e6afc0"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_9(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d00f31999a8aefcd4aab14b74c5190a5e4037a6661ef1a4e107be81d3f7ac922"),
		nonce:           decodeHexString(c, "c80f10d28a578d4c458a21aa58096ae5"),
		personalization: decodeHexString(c, "ecd8172e7f6e23ca272a69fb2ea23c9ee85d763e567d5f6a684a0c12ef851bd1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b63e4f662b9d9107281da4e19e8f6033ec47dcf02a5c5bebf8148492a948d4a2"),
			decodeHexString(c, "24d1da3fd579cbfc9496d9ef3fbd7b72012b3289b9f132316eba13cc79def6a1"),
		},
		expected: decodeHexString(c, "685d45e702217e797a0ee0fe271c1bdf72915ea61f2163f8544d8ab41c6cefdb581fd98f522bd656192246314dcd6f3eb8c7c82c36e1b82ae4c48165d44e86382148b0842ac2c3fda2c71930d3f569a4ed6a4b14a8cba82204fedc496362c23989e6065e134106691849269b1a4aaf3dfe98cff1a8c18fa814eedd6c7c7893c567b9cb45f771142029c3e0956a57ce682d707a95c19b3da7c273fa8da3edcecf596cd48614c930e068e8d277a3dfa43a4fc0c7db01c68db594e7c2304ade4663"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_10(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b53b275d9b54244c06d34df0eecdadeda53dd6ff92e85b311d6568b10eeaeae5"),
		nonce:           decodeHexString(c, "9969ea5738114a585c6cd0e24e24f1fa"),
		personalization: decodeHexString(c, "47768926b26609fa308ff521e231adf334bd02a5d9ddf2fdd16d03a0ae808e79"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0739bf3fe45a9ca6e23aa21b1d93fd77174b1d86efd10d711ed7ef7ae47a57b1"),
			decodeHexString(c, "297557d197e9ae02eab318f74dacc2df93fa2e71d208676710dc023375f8969e"),
		},
		expected: decodeHexString(c, "33bcbde29d969891e8e1d0169b7d293ad3d08ff0b2ae01fa97b9a4b5fe37aa676ee185b2ed0f9cec1371aa9c426690c1a66b64a2c1aecfbcd539eb2ab56c92a0165516bfd373a62a8be55da9674cd6a588bf586c6337d95c4033c2c436e329904604322c44b8a6ecfe67e4cccc37cc4c853aece7d1fe59bb54536d1299802e6c9e9c7697013baa8de8af29db409a3f65a8af607d97a17f4ebb0c0165e722710d2c92c129a58a138d9094f60f6f5b681db68336b172124d4e8180a241232686ad"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_11(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d187322d390c6922639ebf3d752ff8f47915305de1d7c18f7971b5665b8da6fa"),
		nonce:           decodeHexString(c, "cee12f48dd46d0664205805ecd8d5fa7"),
		personalization: decodeHexString(c, "cd8abaa08a4a7437b5f3a9b3866b3b272bd4d1c44aae4dc4d599f7f2085fa6bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3ad2274683ff6b05259e36a057502c4db82691daca42377e746158d0cebe4abb"),
			decodeHexString(c, "2fcdbe681d1f708b9e75eec0edbcacd657c036c5fffd0f7b0c760be0e9cdc1e3"),
		},
		expected: decodeHexString(c, "ecb870f15f54798df68c6d05dab67d58b450714476df7cc3c8ab8951b6a2e3fe35ad68776099590b7b044e3a07f048d5c954cb341b25373b35abb0811f9d62c296207a9e83265b75029410c68a43e5d8c95681d5efc6b0a83336490ec3732160d42304b553abc20a860c5c4ba53ebc48c8b8d279543258392e401c0ebfe90c4e8af45db6b59de3cff448a718be9ed0e18c2d1ec87f6c43c02ecc5cd66b50620863f3b05059571e2abec9f3de02dd0ea44b0cd7eae5dcc13fd1b4c361b3d580ff"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_12(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9eacb323374fb7fc53f544f055d6ccda36d558510d26c0e534c3210d720b6e18"),
		nonce:           decodeHexString(c, "005d9fe8b8b6d24c7f044e94b17cbe0a"),
		personalization: decodeHexString(c, "9607f55daca672230e4eadf1faf9ae3909cc0d7ebf1f3ade0ee23a543a0b373d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b181ec672657e92c751d758a3bacb384066c7724392b52aa72785a2d8b106693"),
			decodeHexString(c, "b14813333c1b08f7cb0c20f35f6b3a7972c44253ab13232029ed909d2499798a"),
		},
		expected: decodeHexString(c, "fb22d70f1230dc59c28e253723e37736eb8391f30cdaffd6b9cfc468aefb29132073ed59c64435c78a9448618991b7d0ea6278fb884df827abc33c8274f90bcb10112a5b530e019a2d253b4681d7a1ced1b63f20f016d2d66bfeafe2dd54b761c7518ace8774f1561c12a2f75cc4d2f2bebfedc3ebe9ca11d1d7eb8c0caeadad29d1bf89728bb5892a8b23c3ea191ce49340afcd34b31fb1b761e00b08ef8f8539776f3a76e6b68bdb01168f881b63bb235bd6f19aa9c0bb16c573987e87c885"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_13(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f78b3eaf8d24419d05877476e5d52a980020aa7b326d7a432d04565a26aa9e31"),
		nonce:           decodeHexString(c, "672edbcbdfa8966c975ab8fa058a6df0"),
		personalization: decodeHexString(c, "83e33d7b81f7b7fd5134c59a8662378e9042ac62c53ec8f8b13cff211f2bee6a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "61e80c2e4b5984b9453ef5df4cdada8a62ecb98a119b58ed1cd4fde05cd36055"),
			decodeHexString(c, "8e7b596f642cf2d7b2eb7500be3735b3383a275437872f7efb0ef8a30cfc2caf"),
		},
		expected: decodeHexString(c, "013f8b67173ed28713614eb5ff2ea5fd8e3e26af0c0fe62ef6fbc3a2544a881b6361c39f54fb758563c3b12309a55938811aa8dde8402ad344ff011c38f747750a172cb5504e8cf348df31cedc918510ded429a410da929653980243f825b2c325b8642261cd9c932dc3b87a13dd8f747b812bbb2f39675d6a0373e69bea510ebc3bf01b5ec948c2c86a6fb5eaab9bb48819b108360d66951ebd0f70b6b07df971f29223eb708478ef49af854e7e6efdc683a605c59eadfd18a7a7ae82739e65"),
	})
}

func (s *drbgSuite) TestHMACGenerate63_SHA384_14(c *C) {
	s.testHMACGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "23b249425f65cd337f1037064fdb3d01b8749f3cec8f900a8a38f4f43391f3a4"),
		nonce:           decodeHexString(c, "63b6cd22486d4af49be336afc6b4b884"),
		personalization: decodeHexString(c, "95603884a75e3884acde7152fcaf69fb9a44303451826422fd95c894928db74f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "73cd5580972f69bb4b0d0cd8915a5b594c3a9fa40b82d6b37446dff4c014e715"),
			decodeHexString(c, "304c2001d8bfb9f1b23f3b336db9f5da17752cbaba782d8932d2641aab4c34b8"),
		},
		expected: decodeHexString(c, "5771705c788e15fd5f656d4b5555d532ee4c48453be651a69c30fa706abe7719d9842028c667fab59aab97fe64a6140baa5d42dbfb7ecd58f2ce557a7b8b2c01669232e0b8bb0ddc6ef8dbe627ec5b370ec74553640982a14bd38ad9824b9651b717f8e90f539c42d04f7cff648c38b26abf38dd2a777348a4c2872f6551ef0f9e148bec810025779e7cbe1055cb0250a764fca5a1feba53bba64b7ea0c4dd3d56a7e6b4f8a157264e6666d356fe5a7a29fde7f4391662c4e69f471c21c6beeb"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate65_SHA512_0(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a3da06bc88e2f2ea5181292c194a10b3db38a11d02ac2f9c65951d0c71f63e36"),
		nonce:           decodeHexString(c, "c74e5e3d7ba0193bcd6839e9ae93d70d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "dbb7270760d8d262557807ce746ff314fd06598143611ab69bfc7e10ca5784b3"),
			decodeHexString(c, "8cdea882f894e5fdc5f0a0b16b7d9ac8cde35ed17bcaf2665564d4ee74059e29"),
		},
		expected: decodeHexString(c, "cb706b90e88380e5c1864458454027821b571dfeba0da83f712efb107b8752099514ef87b4488fbfa3508a00954bb03090766d2bbd399e71c86c7967a4e8ded57095a29d4cfa01f8d28c97e81a4cd4fc5be7fb32a0d6c230cb8760e656b74fa7e18e2063ebee5787958b272fc5de93f0d6837e55f0c360dc593c88fff30a428cae37ded52f825646e04133a19790c304e4b1f040e10439c5edf454e6f71b23eeb43cdbe7b0634b8e283a97806073f7f28a43de2d0d969b3eda380c185b785b9101dc905025c9cdb499e594de0f0d3eb41922c20994fe2c403dd5bf01e4b2c3ee6654d6ab9cca7d4d5ae59525a796119547eae6a3cbf8ad0e9b1de3c4d5a804e4"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_1(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "462cb274b7def1ac0f9db135c8fa2e48599cfe2badf2ae9f6d06886b25dfb0cc"),
		nonce:           decodeHexString(c, "250461f0dadd9e23cc6c08ddf4ae12b9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b087ff5e230284aef4c90b5f9c48fec91b486f3d936d422475a2b12ff47a05b0"),
			decodeHexString(c, "150a4ca383c3863d9ae3212de9ab9da7442fcd5367af157714d74c149f69eb9d"),
		},
		expected: decodeHexString(c, "12d4740dd0c5356fa76cc441f9088e361d3e636dc7b1ee27a26e28218eff470e28f51b76540939d624cacf2e3facf0967e7396a42017f68789e53f4b1d216fbae675801b8869b06d173d42126bf88fbbfef60aea6c4ba15538b2d64f8f22f389ee35e01e4ea88fd7c9e4d10c145a5f6e4dd33a55f2cafbd5f56856ea945b3b596b4900cf78936732bda49a52bc5a648c6561f48b820699533d48ff04eccd81aaa5bd25fa277ef314026effe2e65a9c38d45832cbb89579535782bf6299327339591a3e66d82aef6fcfa0a21b6b50a398b737a83a6a9b34dd46f3d15162dfa488fcadd18dd06f856f6d6c4cac2677eca641bd4e044ef4cddf6c95f1725fd8c606"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_2(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "727337765db704e7b9d23dd139e63b5ac97adea990b7d04881b6b2de045c974a"),
		nonce:           decodeHexString(c, "0265210aa4e336ac32f4b0a428ff272a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "48b452cbaeb990b6ca4ba64ae8f2a91d792ab83ad499093d9c4566ed8c7cee9b"),
			decodeHexString(c, "e7e32096873180e03c9f7bb33c5af4edc3fb9a36113275839302d40f0890dbad"),
		},
		expected: decodeHexString(c, "21c7d4c258778dce67f1a134670b8595dbbb0e036ae78484d7953f280f1faa5fb3bd213a54132a089a9d6f1376ca8b7064402409187acbd5de7e4d7146c1f02f73087a6c62ca6a7e736900a9e4464af0351bcb71b2e1f1cc07440cd74f50a61757f0b3bbb91fde9c898e62a9cec3dcaca0c94d5d0a8edac0f82b3c99b65d736884ffdd23fff1d9d6e8199254e784514fe3c34db51a86eeb06ef7dffcfba9f195c52cc4b2db53e0a6b1bdbed68d85822c6c03571482fdb6535eee1b6e26ce7d33433d3a1271c5b93ce9a31c9d7c805e3635e79682fa5f8e7894d8d16ead32e3fe8c625174a12a7b8623c0000a75c506cd367bdbc4e3da3b462938875050ff2271"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_3(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8ce3f77c4ba4f40d4eb3e80d03f9b138bea725d44f7a47f4a1f7ee3afb45c2a0"),
		nonce:           decodeHexString(c, "e8fa75683ba03964a8e3312ccc6e1b66"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "83260430843b586cfa50ab51120ea5675d63402074d45b0bf80dfbbec74fdc63"),
			decodeHexString(c, "0640b6427bdd6ead525962b228392b3c28abe131719feb0c0f738288ee87acbb"),
		},
		expected: decodeHexString(c, "d0a402dac648f7a53b5ffbebb1f5e6a12998c999809007f357dc568d7c653bd3b4da793d6d7ef802338eb36c7e4745655001f700c4ca68cda07d726dd088ed9948b2d49d8b50a72530dc9daa3387cd69ce32ca49dfa6cfca98f8a8b641c929f84c5f4045579dbfd3fdcd997068bb0f905f9a4a00accf06a483282e2eb99b94d78be46e07dc87903208bac0fa75323920997d9c4f9c0fa4cca5e6b1d69fdbfae8dbb52d659028387472c1a54283d074954094ae11bd3aa97360073ee033d7008e63b89e0efa4788eefa96ab726af4c2422b7472fa1efb7d95bec93fccb7351768625de30d9f5377610026b6f7f9568a9659644c7e68483672ca9ac8d0994efd68"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_4(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "96b0d3b13a65ae1010bf40e6e2dc6e6585db8fdb8fbd2b272611e51c62e1111a"),
		nonce:           decodeHexString(c, "e93babde207a42980c9ac9018ab01153"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b67c2ecbc4d4c46c3573883b61311a2655cdff0e01a12a20ea0cfa4e91034c2b"),
			decodeHexString(c, "9ca69103d5af577da056d4d5e95f53be87aae4689918bdf0d011789f2ccba9b5"),
		},
		expected: decodeHexString(c, "63f05a9815c2671298e9caa06b0746767fdcc00884eb1b30e53b16593508bb75dcaff9932230913f9b62cd0361af168993ce7b6b967114e2612c8f9c376104633ad4eae2e968e455b96d1d5ed6928eee9acb21bb8fdee7bf525f143dcc624a66ad42f1bdbafc19b165284f2c771edc57dc9092ffae6ef8acb9f8fdba496607c54b07f3ff4d1721f45db43f8ed5c695716b405b57034cf4f87ab487a01057ed449bd918093c532fe85015f0c5856cbd7a440c33c7968dd25330f78b66248873959967e307f9c9697803e8b0939fae51870ec533ef7d17e227dcb68ccf270299e65ed8483b9077831e010e9dda3a50ef7b008a0762c8ac5ef42b7e2ecba450d7d6"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_5(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "49913e04b653d82abc54cbddcdf898c409819dbdda4af93bc97b434dd1e31970"),
		nonce:           decodeHexString(c, "6504b1c76f34ca6d9dfb181c7057ed8c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "68b8f6f749ad588ff2c7477fd7c55be648134d57be6846674f2659d75785c39f"),
			decodeHexString(c, "cd7b2d7b24070e501843f0caa20666fbf963760893f4e277d944991ec965fbe3"),
		},
		expected: decodeHexString(c, "67ba01fe694d8f9621d47be0dd9119b8654d028e4c095347629afd02e96fbe6e4535d1666ee0331a6da79e703571ea0983a0d02051bd95dd130c7733012424b79a0bdfbcf72c9cb0c6d6ee408e2f0de45cb084d8182d1b8b4d389b78d0e3fbb7f3c8891ef522f077851b2463bdf1399d178dae3299a43b00f48cd1068e17f42615bd506878eef5fcd5951c24641b58f7a563240abbab5779db1e44bc2c66dd48ea7e746660042bf92b727d622bafebc05de309c24824ddd1d9ae86034a8694ae5962f61ab6e76b435c9dc8b370d708adc4d6fbbfc44644da3f4d4f24d3c95d958de143531c84b188445b6840775726c87b1b058dd8c14e4648973d5a91a152ba"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_6(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4687135763568418f6f30af400d37d794f712b10a42087fd832d840b9e8b1f81"),
		nonce:           decodeHexString(c, "8dadd1aba09e78a1925ecd9ee0d106f2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ac00dc729c5526698fb80f685ffe93e9c25bf93b22424c15c20043e1fcafbc7d"),
			decodeHexString(c, "948555d8a6e0473a769b7019e6909a8565e386a624a47a1f9c96ff5e6609a894"),
		},
		expected: decodeHexString(c, "4f09384ba8a34f819a0d4473c3387f74299753fd16e386be51a5ee70d1b164be6fa53a3face06379da2d961bfd6ba21eb437bc77b527960352790bbc978217549006e7409b86ee97d6a042957d27a02fa5f04de94791bcd7d02cc6798bc66d3b6cd887f2a984224b3c279382558ff64459703d93b40fcdbaa7abe1bcdf0b95f4c6ec6583a86a41f837c6cbdefee3de4767e330cb2f4a0d8915f192f02c1ebfc78345f80d5e0f21185c647376d588991486ca9a8fe5c68d0b71a5f81b08bb112c56f69c89412f0282eb1bed0d05c959608d1eb6b1eb4a76a76ae927cfd8d651a651fe83668f24bc0d19e5de86813b16bfe8c771dc9f16a7d6d0441b3278de136c"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_7(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4ccc3c6cd73101efb7833ce1195b28b3aa3e5628db02be166f2a7f6bf7e8efda"),
		nonce:           decodeHexString(c, "d5ff3f1c375ef981336af28252756647"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8396edacbe629826be44543bece17ede600f7f877d1138af5e83c3ec44b8b0de"),
			decodeHexString(c, "98545ad6268e604fedeacaa10b727ced0b0e284a00c29081a41c0d2e3675bacf"),
		},
		expected: decodeHexString(c, "c37ef92675ad963cf41ee5c14d882698082e8dda5a0ce9d50b8409c9f0d30d3294c7c625ef29c33f395de140405a6f9cd9d737a29d892b67e90427af24e200bc9cc7b5d920aa8a93d8ddd0b6f69cc98e303ca3a512b3d883ec542403d58bab1b4232c31696e72a764f2dc7b278bba02efdbd5413a08563833ef7a283aa6e5ab221d1ce5c7dd14363ecbeee879d157b6aefc8bfd2acc004d19eda7cb4b382e54bb725705b3f52ca5be08df445d8f6eb46353ef26217bd3c1b508f049e810fabacc0a75d717b2bea9f63cd8d2fdffc27322eafc98e7de18a911ff44cd0e5864e0897f0550e3c48674d11dbecc9d6d4c42f7592fba440608ad479ed296a6ea6b1b0"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_8(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "85ef33038e0bee3e40ce8eefd3648e89c521ad537b0c8003617824b08a154b75"),
		nonce:           decodeHexString(c, "c89f036845a6f24fb9a15513ed28eda2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2c675110a2bbcee5c6096cfd8f363441e3473664cf09577a95996928519a9292"),
			decodeHexString(c, "f1db097abed76cdbb1fe6aaba94bb51c2af8f43c5cdd2eafdf6b40a234d3897d"),
		},
		expected: decodeHexString(c, "beda7162fb3e07d96a5796f091388995894f69a59f06a0c7c8eb704b5dfcb82f7171d34628b116e1ceb0b180e6052d01fcb13510edd4050e15d6a8bb27a5bbac46d8847972f2638967d53d5b7752452bbf0bebb953a4e40212ab587b8e74a9599021c93071ac55a08feab70ee040c3cf32246857167f13473d20a38c8d6d364da4d1f043e24a65b2dc58ae2a56215a34081fe91bd554edf86a7d582b227316662dac6a71693806545760060fc1a204df40f1b5df92c7b0561507ecd95609fa5317bc43b1e9a40880a230fb4deb79cf4a7a2b97beeb9cd4c8c841d4ef2668d870eaa11f2fbfa0fb899a424f1600bd46778136dedd147f124dde4d64693233462b"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_9(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "77a48fcd8cbea1be145a65c9e20cbc4e660dd439c7ec7e2dabc6f0430c5ba716"),
		nonce:           decodeHexString(c, "182f05e834e84e89565714fe8ccf0de6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1b838d460961b8f1623667fb316772cf50aa462ceeb58c36e2a6482ce7aa9f9f"),
			decodeHexString(c, "ccd4048bae7f8166c35e932cf3a09feb2f97dbb31af61a3fe5e4edb881ba6930"),
		},
		expected: decodeHexString(c, "af5afbb8d60d77c36c20a8f4c20b68ccd7fddb703d1ae83b5981605c4483e4f092329bd75aaeeb6fb4e6552540bd772edba5e5a96dd227acef73241257fe8774f757c673dc3370423de5a85b9118b5aa98682db6a89f520174a25e8e4b71f83ef432a91ddd8f69c1431c40d282d7e789427f18d9c5673131d5d3797d1335ffda64319d642f5ea5c1641092893a4008f076b649170916a03e06f0854848607c6c44a9f27bd3b17b293a914a86139e9a1b11c8652eae3757162f9f7161a2ee6f412a40002781e8fc8b80242331528225e70b9b23c6b2c970db12eab61bc290fec9b4c6c13d6454d7336f439d9b4b1df59248ab84e3a79d7f37df07e88c20f9ed92"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_10(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "71cea1ba7a7dc792ca33288ccfb67570d9b1eab34e35296209db20c6676f174d"),
		nonce:           decodeHexString(c, "f4e062d1f660522881aeb11a651581f3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c9667d28614fa05f112ec31487cdb3d925f2cb312202f7d85695a8f7336573b9"),
			decodeHexString(c, "6363dc485ddb9bdd61db33fb1beae9bfe2d0e7788a86b50774f8658bac094214"),
		},
		expected: decodeHexString(c, "e62486e1dc854f90b803635c1718f075cecf7fd44d1d304d0127979b83bee5e4abdae9076fc5ef89f6435e4b72cee056372c603f16beed39a2adf6ddc2577b32b29396db81e9ce57fb67c2525c2a59dea259ace4a7b6560ee20ca8e3f476786c34466ff5f6b45ccc916477f6fe96e7e4be23867a9ff9fa07609d9d8a5db7f5e1a068ba9b9c82bf72e76d17f73518affd5c58368232bcafe65096962c561617f489c8d978cb28676d8932a3c3489eb0f2f48a193826ee785dc850e41b0ced359ecd2636d96e83fdf8996617e6a39e141c124ad1e2e5fdad27144e60b56ed70d91543f3046acc831a6d56926ab1635de7e04a149958c9365a53c144903d7ea392c"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_11(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3a23653a34334db7d3abbf747d9d47d6b18589ab3516b0600bc93517d206a1a9"),
		nonce:           decodeHexString(c, "c74a51766beec0563db655273d5dbcf9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "89922f45e6637e7fcae0a98d7ccdcf36650bbf7fe3253b7716014047a0983e98"),
			decodeHexString(c, "5d7519b3f442e1246185e1e7a56fd37473f18824f3c9d21656f54f1fa8d2947f"),
		},
		expected: decodeHexString(c, "fa40b69397e13d5f1ceaf294fb1d3a15db8b345286e5359bbffe5cd743ebab412845a9f5e4ed8481cea178d7b647019a7729c264220991c3ae276f82d6c33402f061aabd2e28cfed64565cc2d7f1774e26281d0808b2857d1c144d5aa36944a38358181b28b9110470601204076c02ed44ef411cd6a75fecf55225eeb3ef4f1717d3f5cdaec83f5defe835d2a236eb1a8f00167a727329163eed34b3b34bade7896e2d0de1db1b15c7c2b173ee8d4f0bf77f8e8a973be61e107daf240b9b7edbc599469b5f40e98c0d2d40b048ce4462cdead7e8f85d175a1f39f8bac61ec00f4cb4c8081201ca6319984264adca745b1d0feb471b5d8fa35bded03357fcd7e0"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_12(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "24cd11e75f2b0ab60c5b7a35020d716cea2e4f5b7748327c0cf355b118051893"),
		nonce:           decodeHexString(c, "34889dc3198f13c36cf7beb42b2a1a6f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cf9571fecac5d79d65617a885815703de3459cf739db097f8ff2ee557d0b0745"),
			decodeHexString(c, "2282cbdba64ac2a4053c070efd1dd0638fc31dff97dfa15f76bc077bf173a821"),
		},
		expected: decodeHexString(c, "1b0466ae577c0b9e943616437c24b9d32ceeaec15bc83841843585c6255534a4a71ac96698f628d907255894f6199f6d7bf405afb0e46359ae0dec788ca52111950f8adf88d324f5b9a76d79e67c3581b0cf0318901332883794398e6aea0f7da1f55f30ca34b11127e885e86d787f8f8b3a1342d71f3738c8445707e0dea687baf759b261eceb4d661ec9bb006e9f08aeb1cc0357cd8df526943d71a6d73c9ae80ca69fcc3004b91dfdb2b6b8d0424c1cad81677d510ac7a51c1ce6f02b9ab41466e37ae0c2adfc63b31fc2e4693e467d3384fe359e9f0fd0f4d08f4a9037f3fd5495d895b6ed4121cca037c6aa87a5ccc5b856ee6151a900459ff0ea77550e"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_13(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4931d76a7ceb2238c1f0ed76be24d2fe1a925d1084a392fc8c43d93535da0e93"),
		nonce:           decodeHexString(c, "51e52abb58a9bc34c46f254b8313d387"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "92a8eb05034555680bc937d0d958e820b09785009e5e05739f29d9af17a63976"),
			decodeHexString(c, "d37465a30f837fe05f04f6b7ad4bb1c83bbae83f9c78f027b4831f5e2ad2dd78"),
		},
		expected: decodeHexString(c, "a61894d3c30081c7836dee8506cb97bf7bb4e56a8a94c72d9c8b6900b69ea68b30c41ad33dd21554361c171cb959c555bb668436293e3f1c103bb72509e43f2baa19742ed8c2d3eb9d0790c845097a7f0b2715b3d127a7f043c4b265b4d6fb4b9af9edd12427e1b5c8b680a135a315761aa4a9ed598a7620f335fd595c40c933696cf95b7eca55e8520e9154f69e3446ea4fc3b69f36fa1ae7eb456b350c93a1ebde342bd4578142d8338268af1c240c94457888d045d73196347318f89e281865b826837ca79da5a6dbc81569c42da475d97ab5501a1b13e99058c40840958331bb73c78e5ec90aa0464b9f603f11bc4baddc28b71c42282176654458d2fcaf"),
	})
}

func (s *drbgSuite) TestHMACGenerate65_SHA512_14(c *C) {
	s.testHMACGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "ffa596ed725daea92273519c279d0a26be7f77cee1fc4fca44dc99b97ad8125a"),
		nonce:           decodeHexString(c, "3172e5a36ebc671df1fcaaa54bd7218a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6cfccdd8253cc5b284701ef8d16f8888f79100373a7df50f43a122591bbddafc"),
			decodeHexString(c, "5795ae5be47a7f793423820352505e3890bac3805c102020e48226deab70140a"),
		},
		expected: decodeHexString(c, "4a398c114f2e0ac330893d103b585cadcf9cd3b2ac7e46cde15b2f32cc4b9a7c7172b1a73f86d6d12d02973e561fa7f615e30195f7715022df75157f41dc7f9a50029350e308e3345c9ab2029bdc0f1b72c195db098c26c1ab1864224504c72f48a64d722e41b00707c7f2f6cdfe8634d06abe838c85b419c02bf419b88cde35324b1bfdaddff8b7e95f6af0e55b5ff3f5475feb354f2a7a490597b36080322265b213541682572616f3d3276c713a978259d607c6d69eec26d524ba38163a329103e39e3b0a8ec989eca74f287d6d39c7ceda4df8558faeb9d25149963430f33b108dc136a4f9bfa416b3ceaa6632cd5505fe14fb0d78cf15f2acfa03b9c307"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate67_SHA512_0(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e97a4631d0a08d549cde8af9a1aae058e3e9585575a726c76a27bc62bed18a4b"),
		nonce:           decodeHexString(c, "227221d5fe5a5db9810f9afe56a3ee78"),
		personalization: decodeHexString(c, "94084b11d55e0f9c2ef577741753af66ad7a25b28524b50ea970105c3545e97d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "24c81d4773938371b906cf4801957ac22f87432b9c8a84bc5ac04ad5b1cc3f57"),
			decodeHexString(c, "c8c878451e2b76577c36393ca253888c1038885bbfdacd8539615a611e2ac00b"),
		},
		expected: decodeHexString(c, "761422dea283262998c0ffffefc77de2d395c818b9cf1ac2bcd1153235e0d8b63199c51e195135a75f1f87b454484ecc560c532c7ba5923c9490a423c177453459d81efc38ce2939226043cb733062eae303a009b48ee0cf3c7e40abe2b57a70a6062c669a9fbff20b4c94b4ecbc5f744a80d7be8134359581d441da921737b1329470b214f3e679fb7ad48baf046bac59a36b5770806cdef28cc4a8fd0e049b924c3c9216e00ba63c2ff771d66b7520dd33a85382a84b622717e594e447c919926a5b2e94d490ee626da9df587fed674067917963fd51d383e55730c17a124555e2e46e1395c9920d07dae4d67ffee5c759b6a326eec6d7b3ba6dee012e4807"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_1(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5c96609e9de807efed31d3c2d63e284be5c44c1b5ab84672664de8d8d8e2f818"),
		nonce:           decodeHexString(c, "1b95a5290fdafeb05dc902a9a7bd639b"),
		personalization: decodeHexString(c, "135aafb3bbc89ef1e00a2a35ef32f122b7511cc55d86e7822a34859b630b4d29"),
		additionalInput: [2][]byte{
			decodeHexString(c, "115774904a953af07936e3efdcf6054b4c534dc8654f563bb10610444d30625f"),
			decodeHexString(c, "4705ec7525e63919f7483fe76cdf7397b19f22d2a9d54b6cf0ff9abcf0a7c46d"),
		},
		expected: decodeHexString(c, "ae2cfbb29fde23e8c22d77d7a50ba66798da93be4e49ef78b38c9be2411e2d8a9954eb29fbad0a967c51b26d8d746801539aceb32e2459d07baa994869d3b6db2c88fb9d7250fac00de8f79990d501ad985590031f7c45a00cd9b6d1b5531b238f3a31d33237c40a3da31356171cafd52cbb7929e32b38fe523d8212de801f554348a3cc468daca70e05affc9af97f172aba00b2acc50d7dcb5f0ecbce741c71a65c657e9d0f250c44f73865962b1a0d19738e9ffe9f17c3e03363bedf5312c444375529fa8df9dd72b7c09f20c2ef37abb93e6fa57cadbcd7b23036bb9924fcfb9bf83b09ea360fd3988639151b1ab22939e9ea1cdc413f7a2cf04cf2778345"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_2(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4cbbd0538535994cf00354ff8609ddfd04e80dc4174b9542cdab52385dd968dd"),
		nonce:           decodeHexString(c, "bef8157a6e3f26f040229a450f8e564f"),
		personalization: decodeHexString(c, "ed81729d1aef522f7bf9c127207d8a680ce4432964ed4025b5bbb12964374f3e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1259073b57358935b7149fa4349793c5ff28d3ce98b483ec48986aa285451abc"),
			decodeHexString(c, "b350a4e931bb5db50a866aa3c01ead7d48d5859bb97b675e77ebb844ac832eb9"),
		},
		expected: decodeHexString(c, "215cca589f737df48d60360c4806ed548d44938c2bf5b1707310df987edda51e5092a7d9ca4955303ac59bfa980ba6e1819ed1141978c3d7df1125f5c4abec5b15bb8f5fd0edb1f26bcebea5aa7c8d5d32e8a5b608f609d9dfd765074b23cc524596a91226b726d899e42bdee0321eeb2dbaf63d33cced6890c19b466636df05072f007ae60a2364dde7f82315e3e30e63258b8abd12f18b6ab3d384cc9349e56dff00c3f53a86a301aa7205394199d32382096f6cd9db9646a92e73c3fd1e53c28a91683031c1ac72bb85af50be669d0e1d7b05a3bf1fc9720025c1e39e1f09d18d2e9247f726ac691a1c2321a667e6bacd7d77a57ce46397db1a91e7908ad5"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_3(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9b2bb0f34e6f0a31eff00e6604e6ca77643f69895877f77197a06e2b42bf047b"),
		nonce:           decodeHexString(c, "3c1ee55a2a28fb3579324a54458310b2"),
		personalization: decodeHexString(c, "895e7060956784e5ea113ca785214bcf608e2a53c175e6edf5b78f1ad90e67c6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c0b1980d57fb797c4907aad1fb5662bcc8d6ee30f6bed951e77c11d1893346e9"),
			decodeHexString(c, "af3357fd21fc04d1d1bd162b94bf129c45d41fee90366a180d98d41325336b5c"),
		},
		expected: decodeHexString(c, "50941cc105c694dd26d5bc73c08399168a270428ef594a6968fde834e889cfbbf0a80d7dad65d2fca21ba8019f1011313fe86983a555fb3ccb643bb771724e04114f3266d72c2e1a75363aebda9871c3bafcee3f389ff4c6f1f1bb5e6da5389e04f2822da800cb058da9cd698c65d54b16e7562c83506b632e4b5c7a78d6e36ec307e48cfec4fbc3ca3dd67ca95f9bd7f1d609e0a6d8b5bd3feef00e0c4165e77da84f989210c78daf633aef657855fca26b832994000f980c21d355db10f71f9cbb8079c48aeb673c5ba097a325d9a89e05bbf960fed4f8eb097cf37f61900db8171685107d53f85bbd8c1a4a1c7045c8b6e3a8a2c4114542292555585a090d"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_4(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9c8306c6941098408c56518a44d3075c22e02f19a6041d2e9c4e296fda435db9"),
		nonce:           decodeHexString(c, "17c99d538ab65f6f1bfab0d479a1833a"),
		personalization: decodeHexString(c, "3a80e9f5b71b242ae07ce7b617057dabae189c5468da2cf049b5b529abc877d5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c151e92dd3121a8d2d11604632df00cf90706d3e843737445de0f2fde1ea924"),
			decodeHexString(c, "f53cb5fe673201f5eaf4115382d48ba45be405b37a31a56e41d1d76202038b06"),
		},
		expected: decodeHexString(c, "9bf31156e54d7142490e620afec2217931fb2389215a3609b384b0551bb3c9d90c3b3053054046a324db9b34633e41b66114bfa7ee86bbd22d08d53e349a4dc875265b32151d3e475df348a22d5226478184f372b0ba3be92ec1b284fc66dfa3609463214b6b468b29478acb0c55e1d4674882cb75e3eaa3a66ea0f4d7b1a571206a761d636bd3519afb6f05a0f1b6bb38c00bd68530a6c9b445b6b4a9c7457a055627b606f4508ed676fb5ba0d27589b7f464271c3e561215905c50ec48f5ddd1b8549e8d163453083db96c7ec8eeedaf6804369e76760b08abcca937c497900be385db8804b443e8a1489b8f3e3e4cf367dac3e15cb8e95cdabad04f08856c"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_5(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "87a8fce521df0a2e26f1b1f9c7ec9e98968474915a085a95cbdca7d8c669e08a"),
		nonce:           decodeHexString(c, "69b8c3c3df07f9ada368be448938bf92"),
		personalization: decodeHexString(c, "b1bfaead04743bdcfdb193d32260918ff803abbcc0d5ddc50439bd01f6e42a3c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "12a07384e9c74fb3f33df1a089dddb7d416151a0270d0c0216e085f1ec4c249b"),
			decodeHexString(c, "9b42567093112cb5889703b77b4b372276b5bbccadf86eeb9ef6d3cd395b2acd"),
		},
		expected: decodeHexString(c, "5ba662260aa0f743a33a9b552ce41d93335a855a55df11b870efacb7f75e39c978e730acce3664c814ac10fa10989fb00a39b584bb14cad2c02c309703c8ea8768d479d9b4e17402ee38cb82c5f4d80125f3e674ac1adb919cc8a988f79f531b08253fbad0a1b27fb1997a4e2c7bd5ff3abf66281e8b60987587327a9101b76cd13771e23ee2f02dc339589b9aac4f5af740afdaf494021c3504fdda8f93f77cdd8262df7d4c48f85b6eb03a7e5279db4d18f645a63eb6f53f9fb123c53a78686f0113a209b6eeef3b10cd4489875a07af863c467f25b69cd13b8e72847465fba025e25fe7bcb41745369f255df0eeffc3e5f066815ef7715680b104e20a7e9e"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_6(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "69d667bde79e41cb78742426ca5ebd48086cf1ded5cad7293fcf910e5ab23cc8"),
		nonce:           decodeHexString(c, "cad75bd989c3ffd05817d1aaa5493c05"),
		personalization: decodeHexString(c, "5f72346eb50ea82cb111d5b3c91dc9b7c61c92fa1a062177d513fb616b1226d5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0465b8aa89d9cbbe8e1cfa2e64e64b8d1f5dbec7f710a6d37fce898e3f81e57b"),
			decodeHexString(c, "173135f31c2320cccf513e88a21f2d207e00cbe4330d2f550e0be77405eef47a"),
		},
		expected: decodeHexString(c, "34a08d7a564515a918bce93cae084f27a558f6f214c4bc9169dbf507c3f11d02ec97bdfd777960f6b4c4543c1e14456d0079215320ab607e04b7519090ebaf3a5fbb0d7a3fda1af6cd8c5d785524bdba75abbe50e3d58e5f05f8f6b2c2570f1178acd2f4c11a7b1b8b4ebe4ddb71a85bf19bb2fb25241374530cbc6c0605066e1129a2d398356cf2ec2f7a286c5b869c702aced63f4e12f39b7ce250547a922872c36268a3a4649f6641987bb7c6baf1a3e82cdf04d11160ba11c5a002cfbcf4a8698286ff318ec01fc2c5f6664e50561991a533ad183a21e7b97e0052b0350d213738b0c6e5421a524845a861f539930540cc40c6ed78c46be9c122e7974d35"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_7(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f1f6e5a55fb2180de436d48115aa1aa38a6242eeb0959de3690f259c1d8395a5"),
		nonce:           decodeHexString(c, "862d1ac4843404d25215c83bca90f44e"),
		personalization: decodeHexString(c, "f467ef083c745a1bfc9be44f1d468b2518e3ff1c0cee6819fdde354d4071b17e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fdda9f0888c4439cded15a768300d163c1e326ee5571c22ab95ab3e44b1676d2"),
			decodeHexString(c, "6b8d60c565604c8fa8d7adaf0b07ed268a491fb79794d2770356e191daa1cb50"),
		},
		expected: decodeHexString(c, "55d0788614b770f4b8c3d3ac0bbf628f294ba2fd16612b65d0f469ded665e3c8b82c95db80cc6b410b5a6e624151fc50bf02f279ffabc19dd094cffb17ba44b11209b923df326db14eee35a8bf1eca3807afae918206e844e517eb32c207342008a0da742e734433867fd86fd89d27ec6e51a9db3ad1adea645fdc57179c4b71de8b455ae00efc09328a0bffd8c61e3880c007915997daeed4adba61b44040f6f9b6c6427e1c23357c8f7e18b5c974b3c34a2fd5cb5e70f48df2d10c1deabd987f8390bb33858d9a5133a7bd798b1c7741729b8562fecb3d4831e9ce101de192d64bb5d757cbb21090d669afc5566c1d6e25586678b5f2fc7d6c6113ac4eb54f"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_8(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "0db9d437153149e101d5818b263b975735994dfc33d8b3f158a05760867757ab"),
		nonce:           decodeHexString(c, "438a5024e1d43006226018c378af55d3"),
		personalization: decodeHexString(c, "275bdc5fc78b0d8afb5c8aa5f7854c319a81bb8cc9300210a9990fb7933a352e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "809da54d1830545672f180fa3e0441a0d3fe472e7cd7a6d707fee5af7e9b21c2"),
			decodeHexString(c, "ebe66cee6efbf583c881a25e346ca7d99741dacfce0d8785c659e92774e26ff2"),
		},
		expected: decodeHexString(c, "878a3d109d814ff4a4935689ca96b3d444bfcee9edfcd9031255ad2538871027273bad5225864e84f3c2afaa22a40e7f6793abbc49c8b0ddc7b30d9dc7b408888e6b98f4bc79e08775b599661ea4b50669132c21272f8d17fec9d1e5310335b0e6480d7075c830a44ea528900f99de61191b5a006ca4340356dbf20c62e8ffd0577d623146b12937e84a6e17c0ae08efd339c9aa979c7e21e9c56e019f7e4f375bb601b1a83c21f27a554ec05191794befe514dfbff5a3c9a0a9c80bfe9b6adc7deffd31c70ba13fcf170abd6bf3d384381e0a31fa9c81b1bd207ea2e0b4153b6a1252a9f73f19f6f099fda0f87baba99b9711a00b5f50ad88d3bc1c4e806467"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_9(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4106f6ba6a291fa54e4ecfd9fa61b961554e4e8e03e19d9bfd82bd35c3471e8b"),
		nonce:           decodeHexString(c, "c5bdcd2f810079c1bbfe906929e88d27"),
		personalization: decodeHexString(c, "5a7e61b86ca70939e64af613a667695c7c915e667c79998e76e55eb33fef6d86"),
		additionalInput: [2][]byte{
			decodeHexString(c, "86c7d5883aee568aa74d25782019fbd6f5acf4196752ff3d1dd96ec1e7436424"),
			decodeHexString(c, "3a5d80e739f5a30e6bb507d82b60ff987d5bd9cbbff4b47daff278a3252db3ef"),
		},
		expected: decodeHexString(c, "fb146146f828e880c6ec7ab5a65fc8ec4e4d7d975c6d7c0a9bc7ce041f49799b11e235d7ac5a4ec4eea721c3323448e686ae96579233ad698a9d6fe3f5b37d87ccfce640192dcdb51c7bf35404c90b705bd97482d95d1c3e3a40152c86ab923588842ab02f4d922318a7fb84453b072c749a7f54e8ad005c29c48af6f01ecdd8fac13295e42b2077c70c7bf54e214317f98003e4cde07755e95c91f1953b29b3eecd49dc753e74aaf2b1c83feae87428be6a5aaa3261f0f65491e04c1fcdfd5481eadab68f057df3c83694c7451fded86a18470b06f1779c38efcac54b576e99eced3b5581eb5c9f7b3340ad5667d1f0d3fead8b9484a032d5f74d900fd64d10"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_10(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5d1fcdabb70dad1428c8be291720c92b8565f331ee3438d79bcddc968efedcdb"),
		nonce:           decodeHexString(c, "9319f5ee91124b93b965d504211fef04"),
		personalization: decodeHexString(c, "6c8c8a066c6208dbc18a40a30b9f689048877e038bf76d65acbdde7ae4c566f8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bfa2e9ebe0d70d3b62cdbd78c775a62e0e22fa75f168123a336b66b9a2b68c06"),
			decodeHexString(c, "e48b5245ea241baeb7f665a9daaad662d7b2422c3e3711cfbed81d73691864ee"),
		},
		expected: decodeHexString(c, "1586e0761c4a39013dcb552a0e363e709f4303c0e575653c9b240be7449ea26e4bb1dc93f06ec958b6c06217757fc550b356c135063c00fce9d856aec0edd20735b46b7c9a8e7df780db3072fc2b314fa5cda653ba3690132f10d30ee94c8458846be75659ef3868086bcf54ff55a8db1ea65c3e747a8ddab3f2304738e0c75adfc10c23ba651ccf0de64a39cab3beef667f466391a61a87a981afe883f09c4edbd3eae98d51cd3e7b31ee179f8a4e10feac96ea210a4b8415c9f2cfeb2bc8bf51f13801dc542ba1badda1c30141d72abb1bbb35c9bb481d91db5691c44bf3526a02d0bf776304a951858aa2fcf3f45bc656abcaeea94cbdc851a914b4b3a3ea"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_11(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9fc58d0785adbf033ce6642dcc9a861df44a35e89d06b346b165074a048b5009"),
		nonce:           decodeHexString(c, "94b4c0b3e27306b8c805c97b0ea14bb5"),
		personalization: decodeHexString(c, "e02f7a856266195fb5f4810232cd5c71a4465e1d95625c01e8e7eb69c63f6796"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7cd18b8d035b57bd01464280abe891b7faf55f9ed9910d9a148b030340c67cdb"),
			decodeHexString(c, "918c4d43fecf993227f7c120d239a30d3c315602800d6d58b9e9e0715964cfa3"),
		},
		expected: decodeHexString(c, "b8a3581eb4a208d1ab8f0e84e9ff3d2e0ba57703a7b5be2e4f3a3ede2e2519f5e6068c28c41171446cfbc40b48a97bc7a9a1e4d3b02f48fbf55b1d63da7cbc5b7a95f354afda273dbf5bf099961db4a4c5f296286dc0a51091a522398973d5527b2e55e0523c21fffdd0dd38527bc45959d5a711d541634e3139577312d678421eb37553c127beec64422316e48542a906cd7efe0d96eae3c4f2db7666083d9365a76cee4a207d712ddb04bf775be29ed9f030eade4537961737e3939a19e0769a3a8b96d055120c49925fe1ebc4a2ad54468421dd5465e8761b3e2e384373a971e408dd3a54907538a7d887986677eb192761959a4293523f81647a657aaeea"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_12(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d43927d1e633fc3433536cd03617a97a3a10a7ecad3f0c781602829f8ec7feb2"),
		nonce:           decodeHexString(c, "dd5922f2a2dee51db93bcf35100a8364"),
		personalization: decodeHexString(c, "3335a02aba1ea28d2e56973e21109e0adfb5068613c447e625fd83a8d0e34494"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bfde33c52407d3137123812c4818ca1e4b61878b8f9dbaec47935e3948a88d0d"),
			decodeHexString(c, "42597cf03bbee0e003d8677159918f5318402f7329f08e1d93c850e2a2a2f1bb"),
		},
		expected: decodeHexString(c, "e53c7d0b376a94809f472961acff314079014958935cd67acc476abdd919a43cd3f7d1462d0d6e628ef5d0c8e04a6d243838c61ea36b015e84d7ad59e49b45c9b04f6ec78687ba47156e429b2fb6dc2c0da4f5677d1f689cd28612cfa6d95628c26b5b3e01186153a1c25c02f5ce5fc287623358687d2034347b2433ffc1445a2d93cb0103ccdaf0c585f7f4e7d41aef310be127208b3da90523aceac5fa13ffe77eaa4d1fd058957c8dd2f355cae7f9e3d8f29ec7099599ba6c755689d53d6ccd84e33407a066506d97decd7e306d22ca6e0faa7b94f91f4eb004422ddf9dd6b1f49b6400ea55d40e25c67103ab50bcc92d100e89ba569b6d51aacddf02daf1"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_13(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "0bd69ce9a0a66dffefba83ae563e8df0fc6c7d7bdf491bf52cbf3f3777025cdf"),
		nonce:           decodeHexString(c, "92b32217f550a1fe735b8519b44b040d"),
		personalization: decodeHexString(c, "820da3187bc879cd1f40476fd9677f3b67e02b35b6632ab68891e25f10555b69"),
		additionalInput: [2][]byte{
			decodeHexString(c, "903b882de013695b4683316ffbd7c7809288d54c72e369f70cf172bff85e5629"),
			decodeHexString(c, "cfb5f494e76486ceef12dfe1bafd6ccf9b0754d8d2306fb0c41c0f4e921317ef"),
		},
		expected: decodeHexString(c, "ebad5e5a358ceab806ae5590d80bc0ba5d4061f49f4cb79a8a9da4fd1e8cb8f41cd8edc657c5180d18e62da2b53a50085b7e18b957eaf4edc975ca9d43e380434f51542dcfa947c322c708f3d3593c520717230df17f9341f02a5596b2058a27ba23f72a862b391be884570b22e20c80dd20d0a935f068465d554c8291fcd88eff608e92200f90cccdc82cb5697f0406654d9582e8db54225aaa28697bf2c4f47eba086a575298b991098c212c9e8d95bfa48f7e500c7223d9cbffd1df6f725909ab6e9aa837ff9e69158af434d18e5a7f99d1aaf10931f380d88344ad841064130cae50edf8687615743735f80457a228475bab7559015c4f45f91bdfa31d87"),
	})
}

func (s *drbgSuite) TestHMACGenerate67_SHA512_14(c *C) {
	s.testHMACGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "45784684d6004731689e33e45b344d7b68dc4fa841133cb2dd65c4b326dffa90"),
		nonce:           decodeHexString(c, "1109dfac2e48bf17f2fea33b412dc653"),
		personalization: decodeHexString(c, "7c6f4675f7a0b8c424d5be9e809efa305493874d9a950cb343afdfb64e77ecb5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2b2dbe3834d8be93f1396b19be83bd96823dd82740da71c5eeb7b21865021884"),
			decodeHexString(c, "49c322fc1bec86d3e20628d9bdc1644e6f5e0237c7c694746bfee32a00145696"),
		},
		expected: decodeHexString(c, "9110cec7d07e6e32724bf043e73021b3ca0e4516b619d036ac9a00914e12f01ece71989f55c1caccd542c60a9cccffb91e203fd39dca2d92c8eb03ee7ee88abf21dc6891de326c3190f25ee9ab44ca72d178db0f846969465b25a07dcc83777e6b63a7f9f1a8246dd31ce50cd9eb70e6e383c9ad4dae19f7cec8bfe079b36d309c28b10161c28b8d66c357c7ee01f07403a596366725fd5bd3a5de3cb40dcf60aac10635615b866ae633fbdb7ece41695d533757d9d16c6d44fd170fae77c15b7426ed6ec8c9d6e9245cd5e19e8dc3c8c7e671007ce8454413bd07407e8a2248bee95a7669db6ee47377b4490a6251abb60cd4e2e404ab88aa4948e71ecec50c"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate69_SHA512_0(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3be441b063a22fa9357d7ca654dd26a6d955a9a51c8bea4d65cec0bcc105edf3"),
		nonce:           decodeHexString(c, "228a8e6924f558da846e42c3e1294566"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b50a072e1abdd8f890bf20064f5148ff22c5b2eb16e6f2881d5c51be2f8ffad6"),
			decodeHexString(c, "963a1fa213aa42f9f007205cb03b045a5d64e8e0f5e3a36844b6cf64df78cd65"),
		},
		expected: decodeHexString(c, "e0d38d3c2c4502c0b8a9f2b31d18d181879ddc8857d0ece5a780d8cc0b9950d4629a69623bff6df09513f88c8865d5a9ecda0787a90c1220865005f2335cbd386e76e14653e2c9db306e7a03aabfaa4f5ede248a4204690547c36f12e92d244836b28c0fb477a32effa9927441540532f6d0b61e450cb49b8874e857525491f0dedbbeeeb1abc1014abdd764bd8caf68ee748a08298cb62c89154fca983f484b5671bfbefb0f899ccc0fdca4024181a44f494d010d09f1f95725a06c8ea0bb0b2a4e0301c9f4acccfb031f33264a07eb0bb0fd20116bfdcd0fd79eb2b34cda757d0ac04c2ab7d4733231177f1d2f726a214a588fef154125e6e57a004fc54975"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_1(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2035d88e64d9466873131beaf6cbf3453b134184985725801273630f12d95366"),
		nonce:           decodeHexString(c, "861ac90b63ce73983f8a080ae0a65abc"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "18aeec56ba07544e9ea60824d87d6a399ef112f6f6308c19465e559e4d9cf7f1"),
			decodeHexString(c, "e5809dcf5dd95bc13fe99f0fe94742c62ed6d8d91a690d5ceb8c9dda1fdf854e"),
		},
		expected: decodeHexString(c, "af01130e63bfd0e6b8a0cd5ea48b83dba4a1b0838bfe468c197b99f20a07761cd35c961d92c33f09914f1012054156f7cbc2334f89c67ba52e1cff9cdb4b55bc70e239cf8e5a93138a54202d71dd09684b37872d38cfaa03737157ddbf4ed49f8d828ae8785123849631f75d6ee336f0019c56f94c27b745c95731cff204c21f416ded920d483254cd4b5e6379b911e00bd48cebc97043d312039c0d45eaebf9ceeecbd5732d7e154feb91163cde82fd991d1bf96a639a85da1c08ad202bede11cae576e9aa02d5fdec20b3861198ff4aa9b5e180f5a8473de8a7108167b3319802fec12cd1d2ad2f3b5ad1a30f380c0e626f08776acc3f6cc4ac720e6b3497f"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_2(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2b5435f668155b6f33301f7014843925954ba18a3896c917c7595f8bfa54370c"),
		nonce:           decodeHexString(c, "6fa079fc6d57b301c0a43a97fcae6d2a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5f3a28f69b873d551eff06f5ad0c461a2708e760b45c23e83b12a9ead6a5fcef"),
			decodeHexString(c, "afdb3929500c23411cb7375fa422d5c951215ddbf456358265df0a66ad54c183"),
		},
		expected: decodeHexString(c, "ef3d42ac07b4e662bfded6b76b476a92a0b4535c4d02b241b3861439f8c3c27edc869414c323ebc78008e1f26e2021c8fb38dfc4f5601b2520df6c277657939e7d03e0b5862f327b48c072a64b99a41d703dfeae41fd833cc617861d1855c309d76e5834915b87efb0f86becee399f3f8c7a8dfc01a1d62284a54eece9413b6b6d4c392cbb44cc3f2596cc6555fc349b50ec0201f0cfe8a4f96cf3d5d1dea005e2c73f3e7eb85f148aea3395a634421025274a23d7de7cb73857517127ccaf310bd90bf3d64c028a2bf37eaab9832d248919114173344d789efd67bae89769e0c0cee047fe250e1ee6cff4892fbf690142149bf18e445beb431ad34798433e5b"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_3(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2a5a13ed0e320e894edef847fe8a83581e147701b7b98aaa2ee76b4d2a66399a"),
		nonce:           decodeHexString(c, "a93eb301506d1ae415ea92e1eb870cde"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "863ea314f0d52544140d82cc8bc615b223edebc7d130fd805e9a32ca7089e7c6"),
			decodeHexString(c, "f5d33b1506afe6f7701370ca34572930c21c465608b443db98594f7f0f44b8d0"),
		},
		expected: decodeHexString(c, "f16d6ed1993b88e5c9809cec08a3b67a8237eac65f5b10e8e80aa764684eaba31190bc222d4f5ba4c5e207b03d758389a98b6a74b74cfecac38218b685f5ccf449f718c527b10ac19591ec74f41096d8a65e5ed6588a8b54c6f942a8c3074d1efae44085b79ef96d9837f1e4ead7a8b02e95061419f948532921384320478d2b75d00da24605d73613b2c5ca2431039d2e6ac74f13ed043f6607ba0366adbb97009178c991d3e66a58cbe5ac5388c55a5de3b1a4fc5739261f6e9a50c4f764c29e08bc2ae0ac4333a97992b4295da0d06222ad86eab0890949453befc3abf103565af6739a1536828bca6332b8935c6688022658ef6c628bdeac85c3fe4f8d98"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_4(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d91b0846115fd4cffd0881fba7fad9dc43aaedac2c585ffcf928f4f95ae5ac95"),
		nonce:           decodeHexString(c, "0c21ffdb57b959c4561abfc4960f4383"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ee0d67f52101e279d4647bffab48e16135f0c045c2d8792833b262cf33c921a2"),
			decodeHexString(c, "7b2f1ae4964d4b8985cf4a19a0dc3d4d9bd83f0c988106ff677fa749bd6aca98"),
		},
		expected: decodeHexString(c, "258b3d74bb8099a26a1393588d079dea4df8038a0341027a396727078273c86e0c3a6b264e4ec09bcd5315d804d7d4bd4e6a9d1540e82aa3b237e3913c10ce9066a66c21c80be364c8f5c5df996ca6d2d822f971fdf8a02a5f3a511e764ace059c48a7cc45bca9cb93305597efff3ba485386fd6aa4e2a593b25dd0bb2ddf94b75cf3606ca44edb3ec8d1e8580c9e6905a6923f50adad3af11b8ed945ae47f2ee59a74e6b9f961fd582e9f03d96b93a431f548779aeebf9dd886f9167b84bf61097a3690742660f859c989b4835d64eb20b2705d88fb26821459c0be38ddcfa2964ee44b592435c603a5775d2a02726565e91857f589d30c9b9824ade79e4df1"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_5(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c42c2ecf33e841570312797edf38a80519e41a3d557b1c1fed2039a659f30c09"),
		nonce:           decodeHexString(c, "778ca5eee535abc320483166185411e5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9f27710982765d669372be5e3950fca2a8681dd740bb6bf89c1c2c4f18e1cd65"),
			decodeHexString(c, "c6bb4c83edb4b67855bbc521664fe9af92393f8007831707cba859613bc9c29c"),
		},
		expected: decodeHexString(c, "e5f2dc1f6c1fc80672808f85af646a59afba470467e79a112e33259e8f30acf7c1a271ccf56bdbbd13ad76d0c5c9cdf1cc6cd7e5d648db95a7fd2d49293c775f5129efd2e71bda8c257afa6990b6f2865639dfdea1293233f93eb5d4326c3395d3b847302a7e08c862ffd322829989d3a64e292afee8f43d4dd87364246b0f3965289c0df2ea15c0aeeef51e7c0f9192d360ff3a4496b1aca2d802f9dde94972c457b365b19b2aff75316b8ad6516458e323cc618cfafdbaa4c390f11418bb8db5f805cbfae13de6ab43d1d00023ab84c533f65005ccb57b2a40fe118571ecf936e5445050338bd795b5ebead38a747ba08d730268e52adccffe919e9fa4950b"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_6(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5b44d5c2c03f6c69c74b8669a029e776c62bef95ba8479aab2a85cc3f56d38cb"),
		nonce:           decodeHexString(c, "1ad75070506235f9f81b32c7ea8fbcaa"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5e6ff7c4eb4ac0d178ae84228985e43b38fbe84d683c8991816fe170bb5ea731"),
			decodeHexString(c, "75bbb6d7e2607e9b26a39457ec3fdbc11177ebcb8c747a68e989125254387eb8"),
		},
		expected: decodeHexString(c, "f2261ea0627e122c8363213d7b324811299decf7f9cef5c4fa513468549b0b41f0eb3bd6ccb669d05a455892b62ed2b07c32c0067dd9664a2363a3f827e597d5e2fef658c7610045c545715f0541ecdb31d1fe1dbe9464da63b297f7bc38bc5216b3d40c43c9fa9f3eed5b7a9f1407c1036b1e9629ceb14a661f0f1ca23b8d304aead80a4002f981fc04aeba46db169726da0e632436501eca10dfbc227362bb72b65bba7ce66c049234841e775245aec3087083090031d0c9a755d2681be65b72058a0a84bc1ef6166ae8abcba46f5b15de6e4d51ce54fd0ff472899ca64c65da4df0430155685445cd672d2079ae76efdf4f55f793190138192e1af930e168"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_7(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c46b390564cb8d4821bd54013891281e8787e380230c771919fe80a525c521f6"),
		nonce:           decodeHexString(c, "ebf67220adacc3bc9d1d8444a65fd67c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5f27e929d41a335838cece0e3a1973769a11a9dfd7761eca8141916e8f012838"),
			decodeHexString(c, "1e52ddf999ba1d43f7daed52823f755cc48d87955ae840ef90bc1459028b2b0d"),
		},
		expected: decodeHexString(c, "1d589251084c8d632a06094499724d4dd52da77710687e4fde9df4c000450b93ac103647a33f0afce8d1fd806a3eddb2e6bb0ee5e1f4a9f20712fd91d7353c6a0547beafa32f9ee05f9c0e30444820d40cf8fe052ef519cd54826af48c31f2a0f8e45fad4e9817e5fc6768683703284f22ebbd81a10df3ab05db51fac38a5134e54db214af9d7d97aad341932663212e1c245719dfcf476c1162ecdac8dc719ea2df89a8ce06757c6c3e9b38cafb937ef46d9f7c5511bdd028e433f1c95d662bdb687d0e9d89ea5ad44ed87675d69fa6e103e18d80d7f41027064e7ff7ea81d50b1289e8b25c4cbee96d142eb3157d377fa84949175ccdb6320ef6c497b03433"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_8(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d26fb0a704ccce9b7ccbd4bbf56c946fe2d8ead56b412e46f036f3b0d8e5bd2b"),
		nonce:           decodeHexString(c, "81e8cac75364fdce2ebc10c28fb2bbe0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f58379ca72fdf2fb310f652c063f718fcb66f62bc71a0d071c57907efa8506a9"),
			decodeHexString(c, "942fa8f536ad10f5f9c58e71ad44a305ea1051833dce8c28121bf0f3c5fe4766"),
		},
		expected: decodeHexString(c, "3ca0967e168df1203d05514913005a006dd41301aa89b23c281c8aea7f7d77ea8d2a6723114a75d5f085e892a0556b587c413675726f2ea37eb74e804e21760c318d34cf18dc7d376da4f107ed5bebb81f5d18f29b0a3bbf19a1305f0600fb21a788fd9032352da9a90b468e62101441fcf09950508d4179ebff9b718935d15763d33ada17a7405feaf00fba9dda9a04ddf866bb29ba45ca5900415df498356951664ed95c26b9eaabcc663439c8255685bfa69aed876147173cc74c49892eaafffd64ab62a96b4068496ca70df27ad303bf2df1a453ababb8a85e1c59350c548e4d027ea7e44970f093a5925b69c1c314064a7d6d7cd5dbc47fcfa6466522f7"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_9(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2c31f479f22839208f36d431108a955e57a9049c2f1cc9b4b8e34419c2149b4f"),
		nonce:           decodeHexString(c, "e52b789d5f955da837c9e36bc45065f9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4e1575b893681ee7be72f7f2cc185083041d2112d44d2127349dde3951931486"),
			decodeHexString(c, "b8406079d48af21e3624037296e99e32cc4954901bb66ff9ccf5c2add9dfa0ab"),
		},
		expected: decodeHexString(c, "a8df35a2a10fe5de68fdd266820ec3d23cc92bc57d1877c85ff0abaaf2cb8a5cf280b35774890fe4be2d252413e1543e03eb8eb8c6d999faba860d82e7235e5d8bdf248a679ca52f73feefd361bdbe7eb7ae7a48a11f5ad0b6c9672e4454f00e19af4811c9de56ca36c19a20ed71d40433bf09f1c19f196a392db1a096e660131dd3eb795346cf92af3936f1a882a61ae2b593d15d7b7db52d319159f51becbbfae305d5b73d81830cb783b4e57f16ee08eac9f1fb2746e052d1d00edf95dc8eacec7085fa8f3d8bd2ebfca2cdb024a6df0c4e629e23dfa4a317752e38640ca0158f9de9808b9a4e79e6941f0c4f7400be8268a826f45d3c64ba4ce255154a3a"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_10(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "06d347e4ecd8d4a244f3dd204f37304efbd673ac87b5df480d3b84d6583d1f40"),
		nonce:           decodeHexString(c, "3c57ef63b91a147882c513165b58df0b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f9801c6dc3132039c76e41f7c17ea6ae0cfd076c41cf2107aaed63ba5cab1daa"),
			decodeHexString(c, "a2542fc0bf60d6fcf4cb14dee691c31d08727e59a943baad07c8e54328e77130"),
		},
		expected: decodeHexString(c, "7a40fd8342fcd0cf2f4b16199a7f2031c5900908d1141b5e781b73aef8519be8f349a885bfcbfaecf89efc1f3f38384d2f848f83216c737aa5430422b4c5845541bbb4f44fd49071281ab1d2e8ead68b3296bb98f1d3f856d3426418e2bb58db45a508c08590ba488ac3344fb6e743fff24a0ef2d26711c35828d36ba20399c4f24b751a097caad1a73d208550c82a5d86a03688b69260de29b8af55f6976200e5080f8bff0c304ae548bbc090734e6233314090877cfa77d83dedc4310026dc9873d68f3ad20a0069fdf5347b2eee28288a45334fe291b7cb85bbf7c1a49cd591a235f6af94da5030706fc64ebe1b7f9f019abe16db5bcf3a0630850dad9c33"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_11(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e7317a5ee429719881273b0caa026ea3e36e689761ee5f5a304b5f691f3f99f7"),
		nonce:           decodeHexString(c, "94553e3cbb2429e404dbf95eee05ae72"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "28be12f035d008945a2342fceb12afbff2b3f321812942bd8b5fd8e0ed025383"),
			decodeHexString(c, "cbe3732ff6724c380ff6aa306b90920b3bb4f84b5453242463c2bd5412ac23c1"),
		},
		expected: decodeHexString(c, "cda5202b1ee1a3e5738eaf29491877e4e37066c2a5288de563dfa00ff7affd15940079a223fc61a798aeecb310e4ae54192eea434eee30d3208485c7b7834e8c60da3f1ff5ddff6f67a24c01aa6598f92a0d929fd762b7c0299e6809e882a9f151b52fa33b54ecedd0513ec2806ca970406de7ff930e404e152ff49f22afe048fb6a65f85ea8e5f4d03b5487434d07898158c6259902fe120f2d94cb4e91ae2020816c09e01347717cc7b193c2c9e4b022593028c4df2f64bd9fb39edaaaec196815ae602820615b1df64586c2a7744a03c8b63fdd0ae7daa7b34c3e6478406ea865ebaab7fac2b7471b28e87b06056066e04f559fa1d8a6b472c75f21c6afb5"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_12(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f2ce8fc5f39743a3a9c2723c45822bab8d80e7c277334aa589fff6366539ba34"),
		nonce:           decodeHexString(c, "68b58d159dddb8f5d25f930100d9374e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "762dc9151bd37f578e8f2b857ad97c9d44be221feaf52f08313134015d2a9b99"),
			decodeHexString(c, "91c0c1061855095040eb2f6555d233e881817632f9ae1e2642981e53c84dfe91"),
		},
		expected: decodeHexString(c, "86e780bc56ca72f763ac2edf6e6811891bfe402aefbb78e36c6d1c839cf7148eecf1ebf27418fbaaa1548e1342d61989a15a407ee9ace8c8f93e359cfa1a5cb169dcf076d42ebc459339b07e0e8374380bc29d82c4b02030c16e11f178f8030e06d68622c5077ec600a3d83b1e212aa60d46ed6af8874ef03dbfa2323a6a094874966f1490e0f6985bc6121ac01d99f68fe3558dbfb919745b87d542f4036799b78e9138a868608d1668fb0ab30c38e82b719317f200e8604cd2e014f9b67f49989096021070d7efbb08745d2f644bb0644fc02bd8651e8422d1da6651b3a32df941a4fcb29eeecf6ca7e07d0aa4a54977920634ed5ff82d23356cf42ee57ff8"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_13(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5ae114a0b760c9798c0cbd1863597d38a3c5633c5cfc9bf64d5343b446ff4d77"),
		nonce:           decodeHexString(c, "892341e2a2d86c05c9c677740aa774c7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8ab7a59f791a24461ed7208a9513bb5c8a654331dc7f1640b778ef8176df620f"),
			decodeHexString(c, "98dd2251ccc48cea44ebc50de3332cad730be6ed25374354a7f3ac416c98b7df"),
		},
		expected: decodeHexString(c, "6d1c77a4b3ca219cf417af21e3d6d0478cca7c4ba71d32f5c8e791157f8877fb6d3e5768acc27c01a44fd1b5058624d20b838651f0592a671afbb3ec346acabc57dd78cdbcd172a01f09589075d1accafe0a1a508125727eb930392928738759b3ca8d5f3392049ce5dc2ac9fe991195501b3d5dd710889a2ab1a24e43c0732493b307b74e13b7a6ae6ec9b6878c1eaa27e30845d305fea656f66839eb41d387ae413345255eb0e87926b35212c590db261cc0f6a676fc8a2cd8a960a389b125628192d697a3908c4ac0fa726dc0bdba6214c283ffb161b2ffa925e23f5aab9afcdb509f8412dcf1b5d19bb23360bc5baf1eaacf1f6994eb936773c776b18a62"),
	})
}

func (s *drbgSuite) TestHMACGenerate69_SHA512_14(c *C) {
	s.testHMACGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8ce8f693d5fe76ead823907734ddafecf34717982aba9e52c333e548aba009cb"),
		nonce:           decodeHexString(c, "fe318ec6a24311ec2cab608a7e6da78c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "48e994654ab1d109511a3b34f5fa9f12b8da17da510d7a71e3839ba86b493ba7"),
			decodeHexString(c, "949ee0617b277a3ddf4a51343104704775d91797be1826d78051496a87d9113d"),
		},
		expected: decodeHexString(c, "c4bce916b00a8583ebe1e85feaa1f076315ec9433e18afa1252061a62fc7558491678cb31048e4b4551b697e8dcb58dff951337f0fb7a41546d9a7838a1da149cb44558d324eab9e7ae147e8ead666e3d4eabc9978626efc8710ba8b5eb485d5693e5d6cac36ddd3a1a878ffbc77e9ec5d333cdae2b5803dcbba70d4e0dc60366dae5cf25990f3ae6147c99ec6c998397a1ac02b1b6ef6867aa897ca90b7fb938e3ddeef57e40897a644a4f08e37c995210e00f07145d5b3620ce673072525f9f74adf79ad703c4a09adc6eadcf77e76c6b032270d4c68f01672decf9aa0e941086188304fc33a28f53bf121df747b7dfdc00ddfe68f6d06ab7e82295f70652e"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate71_SHA512_0(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "09bc3030be920435cf5d5c813fb250be9ac32872c83d9635ddcc3829137d1d9a"),
		nonce:           decodeHexString(c, "43e577bbdc084d4d0332c31104eb2e4b"),
		personalization: decodeHexString(c, "39f8de35161a2509a4077cf9f92eb653603820db6fa86491553caeeb9ad46cff"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3d97fd3f3bc27d2806a441e0c300f36e04542a4b9c3464211767670eba8f970b"),
			decodeHexString(c, "bbb65df791d2100a6b81b35f23c27c1ed374de5cf6157ce9bad2834d2a757c63"),
		},
		expected: decodeHexString(c, "9d5ed4dff9962d280c18eb649964c960c897ca199802c9186245f987aea97d9a62312ea5d8f6a676f6c72febdee232257bc2bd40075af935d7dc62d988c8c03f6d276b1e8b74496188ee823cd44bad8bb087df4cb7c90b94b93440bf5dccbd111937221698c14693d2a1236513df271140bcf8af22b5884e3d116847c63dce9101e27603d48f8d94421b92aa38547d12fd7aa490267dbbb7ca142ab392f4f0a59553ba95ba1c370c2a55af5d63cfce6bb6182945eaafc5376c117b06e99a4f1ecc36a0a8682d66e9eadffc1567b758eec1b4e3bded982c097aef4fb5799cc659a2623ffc8fb69f5258083d42324344e61509aa29cea48cc3c3e1449b01cf7732"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_1(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9e32ec1406569294f80b9275618cd8f1641de6932f08a2fc1f588837b29e5539"),
		nonce:           decodeHexString(c, "d3e09213361f2de58201c70bb9000393"),
		personalization: decodeHexString(c, "7e680eaacf7fcde39a8b1bc7aa29361421aae124d9d365d383c23f6459611e31"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ae26bc465e1dc217c246cce54860a7c0fdf3c092a5b1227dc07a0cc3bd5352af"),
			decodeHexString(c, "345813c8c9d9a637758d5fbe6bd1f945bc3e01ea5997f7bc410032f5395c3350"),
		},
		expected: decodeHexString(c, "391db05a30b47cbd122dad7f1576f5e71702558c3a14ff6ea33f063aa5e5c1e55ba02b305efe824f39c429d2b310a21ecc13db90d42b1120077ad74e461f9ed1fbb8bbdd832ed2edc380d33f0d67fca9d9c08f8e75acdc719c188cf17c97338625f6ec4c6a9f81883b97dba36a3c8db5e7f9e69011a4d7df4ef058e6290c1eefa85fd6cf5da5ec55510c0d7eafc59342f96398312167a2efeb22d939d9a96c6cf4e447d3b3f44f9f588898920f2dd6e6a11159d9bc72a65292a36efdf3ea335ae4694bc7aba3b3253eed13c68a75a086c8de9994de7ffe46148e2b0de52b2dc9a6d17867c5094a7e199ca013c7b20238bc4a73d65fa0919d97bb4311e4827044"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_2(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "255e4f602cec552c3cca5a77b2b9ab5a4f1858976672e0c42913bb8eb5ff9d2d"),
		nonce:           decodeHexString(c, "8fb76bd15999e595a8ca37f3bfc0971d"),
		personalization: decodeHexString(c, "5634cb5aaa4fc6d629c021d462e22c4a133ae0388e55bfd51f4fb35f0039a16c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6135184538e4f3efbb2659fbed7fe6241d833246e728885f4b6e06fbdcbdeb6d"),
			decodeHexString(c, "b27267fe8849ad2f38b36b574ff6d8c1e6600afb235f48f2446edbe7fecd5ad4"),
		},
		expected: decodeHexString(c, "d765e96a0053ee69e94e0b8bdaa65871d30bf96e8c11c17c4a08f674a3b1a462466e4a3d08293ee32b3510ec42aecdcf7a15ded002b87c08ecf106eb47f09b79b4ba2fd6bf948dc76c798f8dd6a6226e4e4eb4c55ee0a1b12f66ea560fe3e3a25ac3e5d782ec404d78bc9cdab96e73740ff2eb7f91e4958c201735494bce023cd1dab31974fd2da6a4d24bd3e2e58bcb90f1461d8616a0df29622badd3c89b382ad2fccf2f5380552576ebc51948dd0431816754c4609cd4eadb8466a90bcb293600ae02c757362ca599aa2d5b72211473aac8239f1f7ca0f7df65f9264c61b55c85254fa59245f07457a01e06176a76e1fc71b573bf6bbe04a6b4974ad2c481"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_3(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f973a121c32528fa8053ddc12e6e969c954c31b21a8cecbd98936f26b49953ad"),
		nonce:           decodeHexString(c, "bf4b3f608fcc13fa4005a1e3dd822b91"),
		personalization: decodeHexString(c, "cc223ac448b9819fc6decbb791f022630d7be3c78e41d14bfc6f37ff7f551a1c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5137cbb31accda1fd665e3f9c41d7d37c98e9c128b7a1e0c894372f6c4a830cf"),
			decodeHexString(c, "bbda84bd4e6d5d19a938ee2e61cc25cfce6fc632cec2674be6fd580813bd97c1"),
		},
		expected: decodeHexString(c, "459adc32bd38efa3ad29f39cc97b5c35671b438ad918a4686818f0ebf4ba01225fdea29125fce08afddee97f334059a668af68469a157964ba78a97cba8afdb15c0c02aa2fba76e8aa92f64f72d1d18be67d81db84a6a2b8e16a11c07b72b6ba704e3711b3ae74f2aed13f72b007447f15a5484dfb261af20cf5d53d457f36b9baafd19e2c26b91f859f5d4ca3ed50a8e5d44cf02a3b5b88e272ae080cd852fbe2be2100e8eeca91fe3eaef95e8ee74a9a42817d10cc13c4480cba442b3359f62360882332a36dda3232208ab9cd5db2e24840e82ea2271fede6104d4cd37a657e0f133e75a6ef95902a3633790c86beddcbcc41a57e7fb147a3d81663714831"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_4(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "41fed837e359fb197cc7765df0042ac380b52af7c764ec741963e00820531b49"),
		nonce:           decodeHexString(c, "3ed63900705b09cd983e37095b5d0a19"),
		personalization: decodeHexString(c, "29ea5c2a8e27288fbdc86f9896b5c31cf3d0d9628019e896463375aad408daae"),
		additionalInput: [2][]byte{
			decodeHexString(c, "66b1367ee4cdbc696708381944429fd0ffa41363995529c2d2602f04def6fcca"),
			decodeHexString(c, "94eedb157fbee8e96d9b2e652e9f3f85a9369fd12f6e2cc8bbde7a9e79b891cb"),
		},
		expected: decodeHexString(c, "067d6acba9b75947bbd7481e04a072b45b670252d611bd61be095e700c40e4562769bea034e8ee806a695403f22a52f4d699ac3b6f11091dc40844c551ca12b9fb1b3c515d650d2016e14f7b77021727100cf8eebe8d7c543398fd5d82f62fddda0a6d30904701e5982d88589eda087bf4ab591fa6bcc5e162120e41bab3c2e6d8281ed8d8bb4f95c356ee7dee8d462398178f6ab38af7eaf25556a7569b1f6495f1bbc4c841ec3b17a9cd9d9c8605115219b4b9474f77d4ab8932da21c8d085ff6679fdb6110262f7370caa210313b4cf5b8d4d35fa90357eb98d10a6e862be8da77dfc8fd8769e5685893f16c30e364de413a8cf7209a8cf1189060af60dbd"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_5(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "46d98b6da00741d1a8c0924ba5bf4c6790bd85f2e9866f23b6aaf8b9cff7ba38"),
		nonce:           decodeHexString(c, "d48d2da035ec19d3d851860c6d8ef193"),
		personalization: decodeHexString(c, "c89511110bbc97f370b559187d09b99441274e196a87877b2d35c79046534cb5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6e3df828943252d6289fe453bdba2200b37f8c29dec413e83f452ee599926c9a"),
			decodeHexString(c, "a03f902500ac943600a98491151473f2c1ad814b40f598e58afe79c0b064d1a7"),
		},
		expected: decodeHexString(c, "c1e23e316266e6d26f1aa82b5247c0d5dbb0aa9a59757a8d7ba4cfab9c5f3be551041fb29de805ed17164ee39a81e4fce1f013c49f8082c0e5270becbce1084efae450f8205712cc58cdb6ac396d1e0b694072221637a4a552d7c1dcb5c484b632fe1f58c012103c619a8fb111eb7255bde01b873506322e5b701b5aa204c455d7a76b9557a6d18426503222d4b1ca3cbb371695ada52b1a67421e1bab333104db3dd2ee5fbb9f47e7109f91b74959933a908a4a34ea2779c30af4c8073f5d2ac04b9d74b7fd1c4cc08417d07e0fe87db55cc1b750a3baf510ad41655e60a07814130cfa2b564207237be0dbb79672cdf9f0cb1c9078d9f5bf434b2386f93d6d"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_6(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a142ec85e1420abee37d39a2aa41361b5950f73dd5ae616191c5866c50ec619a"),
		nonce:           decodeHexString(c, "c8b4516521853ca4d708d41041f6c746"),
		personalization: decodeHexString(c, "0e39e872ce1bb7b3b1dbc61099a5e9c715ebf2ddba4f089d9c970806f49b58d0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "79f5470d228db663a8a123f612b8b1fad4197770343666b0e3f1a30b2213539b"),
			decodeHexString(c, "21165763bc12d4a5219b98e729d054db7c9a1ca4e2b1860efbcad4f0615d30cc"),
		},
		expected: decodeHexString(c, "6258c25db7d14e99df23800a30f71a147de1b62544cbdb147abe28f3aee6f87c13898e3928e46e1e4c851d898d5cd30066938ba17bd8c41fedf6981b1f2aa97531646d75334cd1b7892b6119755410a0a554a4a942e11d744821b29a188145e7855d2b00e0dd9275ee507c7b5ec21483fd6c1f13090142161f5109accdb846ac3a6330a524043340fe1a9511403a46de1acf35e19b3cb4ae89f90bb4001648798b145da48e93c16d920dfaa656f74fdc4255ab082f74c5bd35743352c4cadbaf155e2830bdcf71b1582f414b92f943d3aaa90f47241178006de9bbb530e73741a1a9c0d82b747e939decbd02caf554a19dbef3a184c2eac5f59e05caeb2bbca9"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_7(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "fcb026c575c99789628f6627f8fe653810c3528e7200edb5523cf5c31635b72a"),
		nonce:           decodeHexString(c, "e94be2989d5bc708c4924517dc612e1a"),
		personalization: decodeHexString(c, "f1d42cf211135748359d832ccdf255b36e66659331b61488f3930a956e034ea1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6572b25a241f3754a8e93d8663caebe14923ac04ae7138aae4d642b4e0718f62"),
			decodeHexString(c, "4dcc93f9bd9233c4a81d92863db6e3cb866808ffe1c99241ace613a08d14b52a"),
		},
		expected: decodeHexString(c, "682e3370d5dd5281afb292c914abd205eec08ce92d2a24f8b84282df44af2b76d799eed6051dcf180932c19e3e4da6f7832de7423f451a084ae857c05db393e8abf2e03096b12b8ae9fcdd26d44191a0772265f842ed2dd9a4186c34fe58d180db8267b266a60fda74833768a2ed058c63bf10a93936a9e824ffc9056a81aed8da527e3b92429abc05707f8c298785843a39deca7756b8a9a97a72d6690689a422cac407e5e7e31a2f8e1f2475610351564fa7d90a26015294eb425922e8ef17ea88b91222fe0509a28728147b5cd489dad9565fbb5f843a2e3920c6b2663021bcd07d3c3584c704288895e6fd7a6c0e064ed45d5e82c81149a181c08048ba05"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_8(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b8c395ffbfdcd6c48e1a452eb5c1c1ce8bd38fe1928f72a3b37ef82424036224"),
		nonce:           decodeHexString(c, "74184b8aecc71ffc29a45ea483fc856d"),
		personalization: decodeHexString(c, "d4b656949099572c220490a38039f1af5292a039d9c0cc9cd673d84b6c236cdb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "725aaac264877f5768b7b38c24def1001f9b8a97b40987b0093591d1874451a2"),
			decodeHexString(c, "9f1f7c7cb474e4281d6725c61a3064bcba5bbe0393143e7785c11473a923f2ec"),
		},
		expected: decodeHexString(c, "1fc9cd1eb51ee500551d2c3a23e6b26f635679ad7ec01ae858299bf7cec3d436bbdc3880296fbb6521a1c6bc28e4de3a5f445ee78b0cbd47c0ea423889593fe66e20bc2b459a84b2e688f83d2f4235a3a91dc8e94a4d20abc4790b10e7fbd523d59da66d28e695558b9f1b4ae2d7df70ded0bc40408961b6fcdcc50ec727a8f002adf8612fa2bbaf94731ed230836fcc7603544e7438e1918a0d556796597a82949a5dec5b79cdbc1bcc4acd089f724a5b8e0ab95906f070fe8cdcbe0740b2fb9f3a3967107bb34a2e0827d2ed8b538ce9ddcdc34bc5aea845ae48cd34f3d13f7062768de95a2dc594f04e19b177e1991866847a287eb11a4f3118d3e50b2404"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_9(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "81870082f621371b54ede06633fc8cec33c4c377d0cabee3aa79e038e0782389"),
		nonce:           decodeHexString(c, "a2da4643e02e9ae7e8716fa462e91f36"),
		personalization: decodeHexString(c, "02bb318c420607a33fc529ae77b957d7c23e910e54bac3d17a082d7db5ffe5a2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3ff5ea73a66333934bab129ad76b4cea8c6971b02f8b0a882a20d7925ccb802f"),
			decodeHexString(c, "d8ea3fa5a1dd5de075571b6adf9243bb9958803222ca882aa65acc875a7d217a"),
		},
		expected: decodeHexString(c, "0dcc1e2292a177ea581c145ba3e2a1cbaa2510d2600755131d221aec0e8a9182420b3ec5b4750c57913ad9a68c64b5b57ced9233690a89026c94ea0b27a17511dcb9b20c09ef1d60e814f6f089879eb81bb09dd0d5681798664be953a5c265b362bbc26d75e21c941f82f6b539fa60a1978d9a64146bab812336895720c3cf84e7531a2a65cf3baadee3216cfb64888102f7be2c6b194397c8a799b6be682a21bd6f868ff1242c54be6f25a4bf05df20fce9bafba440efd9f30ae4d01d1a9aa81aa434c21bfff92419679c3ae03a52763a3dc844f1448cd350274cd7aae5af73336db4af1e47e0fe922e5c694cf3603deff94da69569b40295661d8c152a08c9"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_10(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3ef14d2ac21bc380799bf7d42d23085ccdef51f922d3fc51200bc754f6df0d02"),
		nonce:           decodeHexString(c, "28df3630e1561181aecf42ff2595c506"),
		personalization: decodeHexString(c, "62aa1ee92b33d7951c5f165b1124712dafc356765be5d02eb5e7ef777c767931"),
		additionalInput: [2][]byte{
			decodeHexString(c, "614ae253005a89a089b07b2662d1d971b3ed4b12b5df225ba39325d2157b1e6d"),
			decodeHexString(c, "23578b92eabc916024e8dd96aa9d44ea5b7db5f9e682422fb6a14d488a66d3e9"),
		},
		expected: decodeHexString(c, "aa61830df5d0041aef47c867d9ffe0d92c43fe81c0e7ec025f75a995bf60f52820fe9ef3b0ed7c9cb678240c1804797f55e86b63f8c27e167f65e0b4449c4553c68dc1450c6eec89d15e79d72209287334b3cd6e7ff4c366daf6a8bbd2e532a851cf656eb9145dbec1a6e5c39f76875ef66816c4c9d62afd5c1dbc6ca3e8a02bce5b6838e67cb0e36806e85a45d6afa8bc5b1692079dc519d8bef3dc26c14212ff5afe4d1241a32ef5ca92dde3d594ea6ca0fb9537bfe1e1b5e892375f9a4528d5e53fc69b8d8a669c78a3ed7a4501612c1c048103ff570993922fcf2519c8d0e2ae0f2973bfadd584bc8836f25d9a473c38760be5e66852bce968bc193bd295"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_11(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5d2eb072057b9fbc153b9503c8503ccc7149b715a0bb078cc27d59f73d2a1f36"),
		nonce:           decodeHexString(c, "6c014cf80e4a35b05b99f2beaebd533e"),
		personalization: decodeHexString(c, "da18480b5940c0367ab4994f3ae36e5d50b1232da85f492d491761a8f45acc21"),
		additionalInput: [2][]byte{
			decodeHexString(c, "951fe96e88a6c677286221e9295129d6450d31a69e0dfcec3e1b8416d96411c0"),
			decodeHexString(c, "b84ce0822b6d382687c97528a682a460390e7228b3fb061d8edd9404a0dd197d"),
		},
		expected: decodeHexString(c, "10268946085d7410aa440d93a26e58a182fb11afbbc60307b5ebcf9c5dd262315b6111a253f3d27045f6491701f0972627fc36e9c54e8ccff62f2aa51f634af2476009bd6c438c68681a9294bb632edc0e099d2386efc4a419dec4ff8f00f61cbf4ec5eccde8e76c48a2bc54843af479a6907f288bb7b5688a74ace87ed6c31fe38047bbffacbf850b621cd5c2ad88b499bc0b72a7d55925ef4a84736761d3bb687e115acb3cb04de2fcb744f2ca123390eb05851460fa8df29bbe909e7f9d269a80c30a6e9d633f1999b27fcd146295676def015cb1b1a43b30ede32e6c68218b50358af8133cf93b145de78dd026a8eba4f433fec083c5ddd82fc0849aa8f8"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_12(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "49e80feb07119d55de484cf22c0aca0f957a1afc8a12b56995c1a7082c26d8f5"),
		nonce:           decodeHexString(c, "432ee690466a4e3a500338e8f056a919"),
		personalization: decodeHexString(c, "d1181420b1665d62e6746b1f5350f717c1f573d916c1a9a2bce500ecfda00a51"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4382440ffe5f9f5b290084ededc67ef8b0f91e8b47c244be231a7bb39842bb47"),
			decodeHexString(c, "2449d59b847cd99d3a98d7c6071ca52c77f5262ad5ebcd521816c64e202adc97"),
		},
		expected: decodeHexString(c, "463505c6c5f555e72dcb1506c31eb88209c3736dd31dfad1d21de2f30a4ebfb59c9f7736d5407b0db96863d5bfbcb8521eb6df746db499ecef37c9902dcecee62b44d1b42f09b8102b1700f7f5acb51d8826938d787495c3df8f351d9efbaf1d80990b7d8d98f692dd9fafb6df7bbcc18af9f63cf7e92f05a439621c3c69a2eb1036a6112ec408b510aefc9307dac09db58d0a05814ece8fe4c06b230c5dfdc31d0b5a7b63265b69056175f08030b1827c71e3f5908d5f5fd67538396053ece3adc608ee76c7e0ff660025c1ae04ae980803b0d7d9947771060b7dc9855651db0f4ddc31db0a4ff90313771e865580ff1e31b2d8551490603d04281275bc3b35"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_13(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "739f507ecb4562e693ffba10383314724f915fba5ae9ce42e8a798b041314ef5"),
		nonce:           decodeHexString(c, "428313474198d8b4c4ea28e8b9ad5204"),
		personalization: decodeHexString(c, "46ec7b40a3c5f085be8f1a58c389abbb46cff788ab93da34519e6500f588b3a1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fe2b4c5f0198d1586dbdf33695db3ffccc9fdfc728444bae789888f8743ee762"),
			decodeHexString(c, "fc5f3b4159a09070eca195bfdac5d5693072ad38b79d5ecc889ae4c1de420b73"),
		},
		expected: decodeHexString(c, "b6cc790c42cc1f5eeb363315dbd5703d71ce447e1d011af4d6c78409569885947acb8c1021896b2236217436a9c21ea02553b4db941677f56410ff8e832f082ea725af008f0b8a033966f5026105c7dbbd06b7b82aa7d1913345e8ccf9595fe28a9ffa141047e1f9be89c9923a42acd9ee6f11b8c0c2cb494eedfdccebb5f0ab43507e5dbaa00a933d72aabf6a943e12c027a6821d38364d459190bb88d46124ffa7605e12a284899ec1b5394199facd996f0c8850a832acff9152132aabe99d2752c70af7ff67ee0442f0e4bd5d08f45cd4d14ab3f9fe4998bb1dd627a6bc683639ca2349c05ac7850db523229c45e4ebda037241a87bfae5873e00aba734a4"),
	})
}

func (s *drbgSuite) TestHMACGenerate71_SHA512_14(c *C) {
	s.testHMACGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "26a470f786b0dcc5d19e2b431664f3bc36075e0a2a21b97691540e5200cfe561"),
		nonce:           decodeHexString(c, "cd0a1ceafa0e2011794c4bc7f7810112"),
		personalization: decodeHexString(c, "35ce6b81da9ce12e38fbfb8fc2c42b13dcbdb4e7063f980b7b2ff05058b2566c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6f9f47857a60b6f3f9fe9a83ebcec5f16ca73e236d2af5b0daab45c0b9718f44"),
			decodeHexString(c, "e6628fbe4a774bc5383218302b7c565da5a5bd9f19db6182b444af5ae5f62739"),
		},
		expected: decodeHexString(c, "d701c1824a82ff1803c4b59f490c3f37850ce85b5905059ac4484f5049f31772ab8401bc9b8fc1fd6ca06d01f01caecb3cbd914ea9574f497df0316a0d56e2830c8a908ba78d1dbe243d0fbc560c407052ec02e9c77f7b12264a46316a777955ae87a71f2da9cef2811f6328ccb288343abb65a36359c07122cb4e6639397829c48dbf8a821ddf00ddec2f294e48d05adfd0f7a706bfc337387bb7923641d08c288d23ed5a2a20f34684549f9f6b3d74ac0f04e10c7dec04aceac369f505d7ccacdf30ea0662cbab001740922e9ac32b6968e0c5a640345d1132e883e07fc82858980489893d0e38960883e989c41e72ee967c00b9a943f0666d1f5e93e848ef"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate73_SHA512_0(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "dca330679bc48878079dbd7be18364ef00456b772db86c2c09d99e93c85317d8"),
		nonce:           decodeHexString(c, "d6224a1930274e5f55d570154bc331d5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "78eec2a99ecfae6ad6a8d8ce9cb0ada29b491fc50f2f3935f71de8ee4501bb51"),
			decodeHexString(c, "d227d7b53e8f0477df377e9292b53a32129d2f23bab95612a43ec21e23ded61b"),
		},
		expected: decodeHexString(c, "5f09c1d8b0c2f26e186434fa87732e48dfb3d24151e8a989ac354b8859a5385a8b1298a2300314dff4cf9ed621478df29767ff0499bffe62e93e63ad510b58c8201e89a64f14dbdc60d6e3bf920db5ff8624dee09ded5981e57533918f236491667dc4ec7d8a9dc2877b35ff64438979a763ce071adeac8c7c6198a8e53aba6870940b5e8ff3407098abaa0fd919e2717f27f011644b9f248aaa406c3f69ecd0d29c33477fa3ce0c193356c67b2f27bade247befc5876eeb5fde5ff8c6ea7027ad72f3325feac6ee40b8c5e59c480ea899949a1d509be4c7fed159df46c397f5b350a024d7f29b86ec07e3cf649db343510f3f1e1cd70ff2d509a7a2c814cf80"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_1(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1055971f5398700cf74e4b6299a784e812cc9456d6bd328529ee5073115fa92b"),
		nonce:           decodeHexString(c, "d8799ab74e8ee16c74b9344095dc1da5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5676e4e5203b2289315d261cda31a1619eafc6cd47b4eb712483936a079fc6b5"),
			decodeHexString(c, "ede77de0d09184231ce425e37ba4d9ddb2f2aa2c51a46e13feb086947ca46da0"),
		},
		expected: decodeHexString(c, "8d9812d72dd614f0f6cc0ab34b64552e9f64a328e4c77930fd59dc431044a6cdf3bf674a73e38913cb28077d68beb5d0741a045ad36df1e8368c612b4bd97e1f5df3153817e26d8669097d8c2cdf3109d00ddfefff98081c51876f602ce0dc0f007c691dbd71f8b0ea1d660782ea89727d676ee95e4fbde66f24af9c7e98cc0eb70e0a6ade1780637cc099a643edcf4eeac1b0a84a7f236478cd59a1841ae317a9e9c2111a20601e7631b36dedaa79d8924dd5e51e94ab5a7a7196caff7d26a92ccc92e9f73724b170df23525c401860e097038028634b38475e14a297606c4602ad8d029dfef7c626b4841f225ec771b8ae212526a5bc8c042bfdb766c64620"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_2(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "23a72ea31d61a0b43288b75d97cb8a94390a1e5e5efb644fcba2563fcaa51283"),
		nonce:           decodeHexString(c, "58208a5e38678556d2bbbcd805dc1538"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b53a5f909b625e60e78bd5207ca6be7bb3f1d9307f971e3a772fa6658ee874c9"),
			decodeHexString(c, "23f555d87c5c840ef86dff90110efc0e38b2e8ed10a7fcbdb5bb654998beb38c"),
		},
		expected: decodeHexString(c, "7da790202a375b1641878f36ef368b25b4829fd1c8e7a05777d738b76fe588ae3300ed9a26465a8a7a729c6a1100c2dd2b53eb92b7915b883599862cc1c4d9e8e148a0cf9685652deee9bbcb24b01aba227c07f02d43d1812ae46d892868e74090d70ff948c78df5ae48eae4e18b03dbe533985115125964076a5da36127d85cb8ac245df7cbc9fa30ac7262fcdc8c6bb4a4a9ffb19cf57262ab5f8c82275b35323dffbf1dd3c87061249e358e19c60c7cb1903935f2af48b070f65c7bde9469d0350510b767529a124a23061f262ee5898f1e0e1b9084cdd072a6c6c60a88893d8b52158774799739e103df116b7b3fca61db28950bc460b82559ea252c3717"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_3(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c2983bdd3c205cb1ee5fe6661cbba36136a495f94857a61643b24cc61b61902d"),
		nonce:           decodeHexString(c, "7a35868665b2bf8c7fd10101a6a59c51"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "038f68013b2a3d6568d3b90e94892b42f590e2c1a5146800296a5d01a144e329"),
			decodeHexString(c, "353c894c921c6efed6eaa1529844158e9ee8f8804ba45b5f06de96802cdcece2"),
		},
		expected: decodeHexString(c, "1f759cd7e32ed71bef27608d80889b26073e8522e89468d3c173fc8c7094ff34205d13cf78714bc1eb3561e4d7601c0607671c434a24f922d21ef73590415f3b441fde05a754e10bdf88271198efd03ecb3fd429f0496f073e34bbebfc6d9133ceb164813fb9366d67d1827197e1d031f44c4fd2d8f3c9ede7ae3eea92789e70724059db13b47ef0e6b254fce37f3e5c489e8be8b39e461ef37a6a04aa65b846706df043e5e02d22f759e3b6d42d1e12dfbce9855011e2e0671920492dbc63246ac6fd5212196e900c3781f243ca8073e51e74b0d29fc3daa7c5d1a76057ff63e0c518ac6cc28917556fbab7e0f000afbaa9ef950c60123e268848a5fc015a78"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_4(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "09b51083ae898da41705b2ad39b2dd6f3ab619becb7653aefa79bac5dee29741"),
		nonce:           decodeHexString(c, "c6fbeac7d823ef53804d9c9cf39b5c70"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "58c676366b3552a2428867d08cdc6d76202655cba6fb069a85e06afb652d9f5c"),
			decodeHexString(c, "e2f40323f480d5465b8490caaa162963e096ea2347ec46093c76d45cfd8440a7"),
		},
		expected: decodeHexString(c, "1124e7d660e90bebcfa1a74bf37dc0b054be0e970b75337e400d4583db67c25fb5fd7d15be0d68d09f0055bedd4981159d79b58205fef3270510c1d78bbb766bb31b42fdac0be9a746767f11a739cdb40d4e29ba88926a55cc997fae4a86754fd0f91528f254f976af9deeff5bbc59622b04c9f369ec6a664c9f5c5b117d04c26ba1d88e6dee930a57027773fb0db42173310f5e16d471a87c3cdfd2a5794491f7ad4c2088e125606e7af79ada104837236fbd0d7caf310916595fbb07566afa4e688f30f6fb0e03975808d93273c647ffdc212faf7ec8dd1df31ddd3275fca5bc76636f4bcab9782e60512f08d99d9f8e68c743e833bd248931def394040da0"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_5(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "aaf79b2b75249c5a7c75cef16490a3fddfce499d248f08fb67788de1578ee878"),
		nonce:           decodeHexString(c, "efe3579c0606c406ea78a10dfd8354bd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e4e75eca095d786c905529a01027a5e55069e060d15b53cba94a4154e96e1794"),
			decodeHexString(c, "08bf2b65a29750b16fd45374d34b7c5b6c18c17dec6bb0eb6b4b4f25da79c572"),
		},
		expected: decodeHexString(c, "75a572b3ac8d15ac2e4cc0834489756ca8c0307af89614e7021a42e836e9d840cf852b93ca87936aae761019eeb20deb0d9d999086b05b4fb7d28e535ceefa1e2ec6d1f96717f7b69079c9c54f72dd45ae257709356cc7b190fda05b938387c193b55da263be22bee2b6d50e861ae89c0d126e461de937739c047ebaa99d859e409bb1aea18f9aa89b2af61b25ccc599479b53607b009315b9cec84dbd53944ce27bc7782d21159b26e72afe72865117dd8e6add356d93a853ba3a2be85c760a53315aaffd0abdf0669a27346dc6cab90c517bd1fd655c267c889805d3e62182b690ff6b2e889680590e6e8c617b15edf304b6585985b9627baf83fe818ccb39"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_6(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "075ce14e5d9adf4e74605106bf058191a08a0af9a8da150c51c383fec9182caf"),
		nonce:           decodeHexString(c, "b689bff21ee556ef05fc1dafb0ab4f17"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "94c1a89f5b3770095f3bc19255bc9a5fe45d4b07dcba8530d011170dabaf8b32"),
			decodeHexString(c, "9d3539e9c88daf5d94323ced1d2ff66860dd0c086cc517403f274b942634408a"),
		},
		expected: decodeHexString(c, "ca7f2c99034741b7307492a24c0bef27f6ec538aff545cfef0bb9c6fc1e1207b555d09b3db88b83369e72a9cb7552b4b9eb15d53ce61723e8d325b496277a12c5fc740d14de01943221c10c3d6ca86f544f96bc4bf9c31877403d6099f5d70f5f619392eb33597f97bc4ef668364f3edf72caf4282df42bed6938d97fd938a04ac59be4553c5196ea7258f9c54d3ba493a4725c2dbe5845811ebc40e3987aa86c0ca9f9152ff6f4d279e59c9d189a5cf9512f72b39ec2c98fbf96a525fb23f7f6d90018db11b41f13a76cbfb7cd2d38369e94b6ddb6d60ec01bedafda6f8e38009bcbabd0bfcf4313a9de8864f6f2bb0f3587b301efd129796a44f038a74b517"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_7(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b80f6840170a2029a9bceddd72814cad5f6e7219451f4bb654f1da2f760eb08a"),
		nonce:           decodeHexString(c, "e4b79c220a017375d4fef8f33003a844"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "09a42fc19475f26b3a0d1a211d53ae12f2e5f10dafcec5131f18a43914bd3c33"),
			decodeHexString(c, "afc6dc5954026a5b6bacbd9d1c530f9781967adb2dec8f7255b4c843ad067a2a"),
		},
		expected: decodeHexString(c, "cbcd5664f060c9395cb3fa36e2b271692cf9430d61811ad61e0459d118c63c61c1d23925139cd20751b0727383273e7282e05915e38b99086d16ef7bef57251ea26bc603b4fb6178d8c1354fe996409d5d23e86062cad96f4d83770b56d92ead7b01dae92ef56fd3634ebace7853a67535d890e597b383dd13d12717f5a44748353b2e4463feff9234179cbab0625755a4e5f23728586e436275afcee9ece54fd1acd2d390aa423832d7e24da6690cd85f8f039127e7e29321796a3f3f2ef853503753768e1231256f1864f14ec77268956b37ff502ca0338bed517f98b897515bc2ac38e64c8ba4f67c231c95d91191c02712516083bfbb6c677c40ac9a0779"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_8(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9e80fa514a50d3a67cd26806dd4e0cd23a0f914c9c65f6c7497e79fa02533faf"),
		nonce:           decodeHexString(c, "6a458cb5341eb513ef9b71c2f71626f0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cea2c633f4ef8cca4a696a9b9e342cd0ec79c76ae39ce9c16c68ac64b3fb0b5e"),
			decodeHexString(c, "892c72d384052fe30d23615687b499f2d5c1f86754fcc9abc37b9b22b6db114a"),
		},
		expected: decodeHexString(c, "0065b7cbe4c7dd33ebd090cd492e67b9eeb08295339d01f45f29141a7458e3464fb393349ca762b6ddd0eda5320829919de66cef93bce08da0dfa88e540f6f4f352aee5f0df7c01019cd28bf6cb4c219952f19a2e3a8544c638ad40a14b3a5d9daba65867e815d70406bfe5b4e335b41e50e5828f0d0bbc3d239361591dc84d34d41b50fb259ed8ec63bcd5fb579f300c3efdd29120c3dd3206d90e01a8dedce656a5838c09117e859026ed3ab99b242cc57fc6a9840a8e33e34f5a8d3e02f619e2e3fd385207abdb7da4419f50809a645e21c5b335c181ee3615112b0e106d956b8c6d9f92fc7d4b10a3cb7d5075ae19a492a89cca8419cd9f7abdf7df2469f"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_9(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c233d84feded3b3d76256d95931faf82a23b5928571e837ddffad6c714c28d49"),
		nonce:           decodeHexString(c, "a2c79e02bfba7f9964cf344efe20b331"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5f7aeb3f5d6b72ad10a6c7eee488b21f7027a199bc97bdc71d13f925fc0926bb"),
			decodeHexString(c, "832e4bef1e0a300a5afe4b26d7dd32473bb0edb61793beb9e8a0e1bfefb566e6"),
		},
		expected: decodeHexString(c, "fea34cb540e4c85b307e50d983719bc58a042015da5556e1d017075611fa5ce6875aff1c55babac281e73ee6a0ed193d4409a45efd18ad9abab996b5e285a7747abff3d07fdaace094df6edab8e26526d22693ccfdbc7bedab20f8bf52f968233e25778c0146223a5db012ae7cb71fe9022e0a30e1ce7c8fce9d90229ce6ca8d90c64612367b4f774674cbe1a0bffa983e59c6459be93777fe284663640e54ce524784deca45726a483543861d2ce3d4656775d4b5effa7357dcc886d201b172c270f31a777da9c7d7793b6ca48dfefab80ed9625abe1dc5b0439c04ed12f2bfcc9d11c3de13bfaf2d8ae27eb348bab822d5e98c142e04d344b5e8097255b909"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_10(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "117250981d88d42426d260ed0635d8bfede995ec758f8edb25d60b1ae07c349e"),
		nonce:           decodeHexString(c, "e06b08bd885e81f4cc2c2463f10566c4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "635ac4f897cabe45e102bf6543a496950df259f09080f377d0df7ea3be8b4480"),
			decodeHexString(c, "59258422093cf1a9fce1cd688921ec8d180c9e83e6efb0a693ee830b0a031b93"),
		},
		expected: decodeHexString(c, "1cfd35cb31299346bc9448812db8411df74cc65a7a6b4f89570d123067fdc8d711c958820bc7a8c03336770dbd94ccc3123daa53f3343e951e7056128f8d753f7dcbf3edfd72090b1afc0de97b80d5824c2513a25153a6e9a6d1577ff4f8d078ba68cb598e88dbad0ff9c56f8d4855b3e48b7ad34cf6a6d82aa57d464e2e5888c2182c6f21acab9cc060a519fdfe3cc6793fef7e15ecbad54b63a2097751dbdfc54fd701c54ec5421188b2ae944190c5c3f8481b05a980d3f70cd61b664eb8e3bea584afcf596a59281c90a12181a2ee74c2a3204625486067d9d9ccca0e7c0ddc1d7da87c53ef769ef5740f6f81a6aab9978259b219aacf79a3fa67bb6035f3"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_11(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c571c17a6c1d64fe4800da9cca2ec486ca72cf6e2882526dc039a9ef1d449198"),
		nonce:           decodeHexString(c, "364b990d2931698f99243782adb4dee4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "323fdab714624cf9abbd89df915b96a1872d9ce09e407aef5a76eb8beb6b362f"),
			decodeHexString(c, "fcc9d0f6e5bd5b9384c89f4be70908bbe37e522b5fa2e53309a1e6f32256ce4c"),
		},
		expected: decodeHexString(c, "5b1d45919fee2d2b7e4209a5c316686a8a0dcb4cf3241a4aae490234ab1ddb7101a4b899202b583a337480997b3132d331347ad5246b5da691565b471b627fa77f57b955d7d4d237787e2883fc0b1ef93aafef6957a52bee5dc12f5c39b7931fa6e055c08bc974e3a00af314757cd972281a98500f2ffedb11631c1d633f69cb73aa2831aaf94c688bcbb4f920b076a6e64f4ca4c537120091a041e8d94b1b7c736be0023e2a11eaa2865d747c4150f8bc4c29f0bca3db739fc11280d35367b36174f13aefc564a2aee178485a1dd678d548c6db1712df1454dc8c2f3ebf9a17cf81b157d702d4ef150fb17d39f7a1dee91d56ece437f55452c6ebb7a3ce4db5"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_12(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b2a3525ce8412662e7b20722954428fef572cdf5b07d04d9d8b21dde198a9307"),
		nonce:           decodeHexString(c, "51e22484621970409b4d19ea0af1aeef"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7cb7a64b76bbb61a58fa67399fd0bf92e8ee4648f301cc0da9bf71c33a861426"),
			decodeHexString(c, "44c681550e2a09d16d0473d24ea7980b2aaa1fcf87139280423440ae95310e95"),
		},
		expected: decodeHexString(c, "edf2c5bb038eb0992a76211b9cb7683a31fa088a60eb9008894776ccfc384b09bd41dc6eba77ce508f29f5a8e16eee1092c3aefacd7fd963ea2827c1048554f7e563540735331651c32f7cdd1b8e9853404b1a6b174fef944e682a3a01051bb779500bc3534d4acd4dc67589f39cf10f6fe37d2f96115e7c2f4d4b45f881abf6a9f81f031b4ec2340dbcb54d5e276f098abf4e1dd9f25ce80f0b65a3430fe0fdabd9017611395c2e55d72acb5ed18d2be69b9c52d18ab3c2bd2a568599a53d42b39e93ef0446cb1f6ccc16e5b7d9858beefacb4ca7ab40c90fe377b594681f6d172f1c0865f022aa2ab56e3510cd44ecde2a5b7fcec6ff5b6f6f399e202a43b0"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_13(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c559c5f8ec0e26669b71cba2c06ec3b83fbe99dd9e70b14ecd03ce4b6f487200"),
		nonce:           decodeHexString(c, "637b96e7ec68f44ab14760df1f00109b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "35b8da13dad70c4ea6218dba0921989106a6f90edaa49e3b0037f76104ee528c"),
			decodeHexString(c, "d936ea3ec34c9d5191f92bd528582cb0d350a51c43e8d70d97005cc8e6c01588"),
		},
		expected: decodeHexString(c, "a3bd22c5b8b73f1d1d5ae2e5b3feacc14bca4a16a8f4dcffabefc3e79d616391f2bd76513c800529beb1d528aa4bbc1e2032b66dda8fe6a945ee6b91d32b51c9325505b25e91119f6f5321f28c7a571985f7fa065b67134b29b9d8e0d71f5d8b6563d9f00832cb7931eacaf41385058ea0c3c93a8689137ba4fe7e34c45c6eef2304bb262d9ae137b2224097bffb108ccbd7121365957f95f4ef81f6681decf1dc29f33372eb428844ad648398a20270edea6ca736952182b7e0db3d0e352e922641ecbc3de95c16592f45cff6229bec87621cf93517efbc57459f8de4075a2436fabd17df999953a181e196482c56d4274a2dc403c44705a122d6f83f9ca24c"),
	})
}

func (s *drbgSuite) TestHMACGenerate73_SHA512_14(c *C) {
	s.testHMACGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4019c183d7cb2d5361edcae35686953261f5bd1f847fb1c161183265a6186562"),
		nonce:           decodeHexString(c, "a29d6ccc04bb066817ca7c1ab6ef1526"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "db7b290176b65f826aac2190a912672f8a9c97815706af33732f68b1f757d62e"),
			decodeHexString(c, "13425f17d8fbcca3b4d7793a53507a85813f6f50d3365d680c0620d5fe1bfc33"),
		},
		expected: decodeHexString(c, "12d4cfe6574dddbf9de82b8a357bbd6e32a3addb7022c313ac401d0aecfbdfbc7229822f7db9012e8bb0e2907fd48d3eb435ef8368802e5eb948f1bd8d47569b694e23979652f6978b568d7e2288b596afbc67b6c1e0d662240356dc6257d9d273a9ca9f7dfc9bd4175a50ad5b328056c37046e734a76384d7418591a7604f332a457f2fbb277dce4fd2729fdd1319dc3a56b9901a50dc90feaf5969cd9e450bd8716e44253ca55c4e1dcf791658cc467cfba613c27a96f67bd68dd8ccf46bbca4294a0f548b919626d1712ed4290ec90c1098a082699450738d32a8c6516d83bd54a42413bc0ea0b37fe5d6b0663806df67f61d2c553aba3aed3f9aff111d2d"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate75_SHA512_0(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "7b3a81915d5e5de4f743bac84ebdb4fb1fb5c4f9a2ca7bd3500169284073cc7b"),
		nonce:           decodeHexString(c, "858c19f8f6e2a58713937cadb13d3189"),
		personalization: decodeHexString(c, "eaef7b7f98f96a154498133c5b4089327ea00d1063a6651449c225308586dcbf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f23482e50ab28e4fe6a4677491ef66720dc4050169231f7d8cca9eea674728b0"),
			decodeHexString(c, "b03ea1d2ab9b3cc661e7f87cb53ee1f5028a2a03c919795da17c4a5ed4f61d0e"),
		},
		expected: decodeHexString(c, "56b0c16d58584cbc29f53a7bea04b0cdad156e49c716fe56a23cfe5dfbefdf6afb2b8b7bb348b63d05149aa3257b4c1e653f53eedd7ce6d3088e3c660dc96df3cbeb39f0126fa963d4a060457959deb654aa309d37cb228d0299a2ea7761d09888fd45e4d46943402cc164e96503d14edf8201a7f22ef1c8b7c2ff5fc42a52bf61f227bca4c6c460aab6d9b8eae3bf060cd15025b6286f93dd7ac741e4f7390798ba4719c446fd0c2157febfa0cea4661f32ab285844b55d3943829dded94f67d705bb7704d5246612a9e5c47fd6b17effb5058b7f41539d763ce93fc474b8dde544be508b3c3d3ea7415e947af0b130eb01b39059a58dbab10ae75a709b90d4"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_1(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "56c7839939abb1e64e91d016aaf8c0a17c1205ef34ce09a5b8ce316d11ead5fc"),
		nonce:           decodeHexString(c, "37684e58bdfd21397f0dc7f9b08be256"),
		personalization: decodeHexString(c, "75d20dcf7b2a40fa63b7c2b7f3a12190d4e6bb908c14e19fa5ff6d271808d0d4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c857fd57ae571673aea5449a28072fdbe1ba155073fc0a4f1ead3d44d869678c"),
			decodeHexString(c, "d6a1d3c63e3615ba1e47a6c5432608c07ad1db498d694edb3d115e5aebb221b5"),
		},
		expected: decodeHexString(c, "d38e0bee565d8b64da84b7f3fdc7e494743890feef09977cf8f894708db5091b418baa14fed835c6aad306a61bd00b811ec58fb7d49af05d7389cb7381111aa0ec93e9cb4856783c0d3a1b4c9f6b1d969570f06f31fd538c3c5f231de627b133c822f6b74f3f8823bd6e539cf124fb6ea1d380eb3bec076ad863843c59faff660f0e207aa8dbe01700f62b4e5aff385f7b1f88446cea9899aa30ac4e8fa1aa93111e8b1ba9ede84f7ebb57f5fb54a2ba52df1ad14b4d6f4af8a6e35df92ac818eade364afa637e72ce5435cf1548acaa42209d688a9e4103b035caa1cc2f4c64955c7f7634aa010ea30297da048f09f676e57a12b310c0e2318662f94e3162e6"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_2(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4d3728655564f8e03049e2edf580dd5ddce55090fd305c83c1bf2ef0e5ef2eec"),
		nonce:           decodeHexString(c, "7c99487dce3ed31999384173f946bfe7"),
		personalization: decodeHexString(c, "6d150a86863c78149798987a78346ab6257ba9beff05dde219543dfc63b79379"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4396635271fbe8220a63db6052caa53b53e3ff9aaaf2021b16cabaeab1994fae"),
			decodeHexString(c, "10d77b8b5fac2248ea75b042a0cca8ac75142d00e8cf5dcd236c49ecc485ecf6"),
		},
		expected: decodeHexString(c, "d80a588eff1672318bcd946dfd3e56fd6d4b7ad0a7af508b1e30def6f4faa572d2351591b26a800119b2312ab0912a4dad79cd4472a6c40b4799afa6906c2954e1bb3f408d53920888922389483d306ba69da763fac38097a037987da7c5fa45c0b46d4819b93f1afbb073032bb61fe797632d717220ca5cabd6d05b158340b25f727d5900a8b2aaf99499d2f7967e6aebe764c7c8e215b3297f48fba84e91898996e40447a7eea521992b2ea3fd7d2e179ad42b2d5e4f14c6bb7e56a9ab15a69d9e7f4522bbb118fdca77e4dbd751424650ec8451c4c2617492f79b67f5aee11cdfc380e70f522816f735cf37a03a2ead810b6121eded78aa8b6d9c2ddfaa0e"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_3(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "7e1be93493e037a987815c05adb3a1782a7c0caa01bf82d6c196469255dbc0f3"),
		nonce:           decodeHexString(c, "cab66ae4483bfe4adb83f3912889f976"),
		personalization: decodeHexString(c, "1c6c0b6b0fed5a83bb9bdc1226fa272785df0c2a6beae6ec15dc3a37ff93f589"),
		additionalInput: [2][]byte{
			decodeHexString(c, "adf1ae0b09f84a93752f3beb6cc59e50bc3faced986d03658188515d6fc01eb8"),
			decodeHexString(c, "70edba7b2460704a9ec2e77c69a4cf9c7cb9bfa7c13b3f2f9587d29c06d17bac"),
		},
		expected: decodeHexString(c, "eca9d2d99b56401c7a642bd215a876b2740aa60dcc8c580f091d9bfd75032f951d50e46e42b65998ade5b7b2a3345ef950db609a9f91dd69fb5dab5c49d67548d2da8a38dd5c16858d6728b9a18c52e6d11605408c4dac7fb0a11769f85c44c7b04f3d1971f8b67acff2a0f9a87fd76c7313a753aa7a7bbfd2edef13fc2ca7552bd8dcac7cf417bc6a33d602356b1b26e0c75fd623d7b65a449089da6aa9dcb57721e06796cb030473d1574560daec8385d9d25cb977a2ca78f772241f2b2767bbc9d760d8e48ac8fef648e9ea13a9419185028de6c22499643762aad5bb67c336d7292dd5fb4f5b3beb2f4b3b2d94e3549595d6255cb865d3829bd27e899e5d"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_4(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "0295f8d1d700e72f50a7b31bdf46e95d67ef65e1e5838d0200269e0a91a8ce25"),
		nonce:           decodeHexString(c, "c23bd3621609f6ab3bd6b1fdaefe7c14"),
		personalization: decodeHexString(c, "112f56fea75e8a787789d9c6b1aa3aad39ed59377c8a6926787e08b0f9cb1456"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d1d7b9aeaf88a0685d498e176dbe749c33b7b09995376173960c0f9673e6d61b"),
			decodeHexString(c, "6c55e5742872472cc7bd82efeaefabb65c318ac4e3f320ea50ed4100f03e152f"),
		},
		expected: decodeHexString(c, "13c4ef07a2535d4f187fdc9f2bb3895f483ff7e84e8b7b296ce1b037da06da74bd5e0242b14fdd1208fca43859386ba3d7fac294a0df922c3a0ee7bb7cb8bf19571df5de1d634cc549619795948040c3de4f070f2fa4b5f7810c2f8affcec034afcb1256fb6d78c7a215776141494ff461c66ba6e46fc085035039080b1f04ec1dec14f8ec96cd32129a05743833257e3e66a83ba53daa21c93c84c45a09184ef379ee0282157fd990d93d4b78ac8785fb31d83ca0d4352edc1fce4a29fa21296ff734110aaff2a00158a4cadded842c75454fcd9d0feddf03244bffc65caf05435a68cbc68acd0bb30321a1309f64d34cbd043587e1c98815d8671c1eb68064"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_5(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6eb0c84bc55c1527d4ccd1b3d7aadcd4a9923a137650126ec607c24bde4b386d"),
		nonce:           decodeHexString(c, "f8b737daf1f599176cf5c3673c410d35"),
		personalization: decodeHexString(c, "7a3025f73a1a30907ae556c10512bd334f6587ba2c1268015856b0c66505b5a6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3effaeafe622bd78c4160091b1133a225ba564d9097cc54e6a77a38f4c403134"),
			decodeHexString(c, "83e79b5a9543c271ee7f0d61c196778a191e4834c1f3e2de685af6e0cf15d7b0"),
		},
		expected: decodeHexString(c, "c78921f981e0c7ec67ad1760b970fddf14af5cf6673dba3e0efba8a8e541feda880850a40cc516549dc4faefe9c333408f7a180b6707744fae1bba1f4d26949d9bfd00a226907c08283d4aef3444cf82dbc7a02e2b086dffc09583a79f2c8a83ab22590010f486938dc5f2927519dae3b2443fcbaa04a1ac2b60c46c05e1edc0eb280c0d93ee200c6fe7e19f2ff7a0796567d3a2142f50b97d9272d8defab3c7e19cba1dc49e296c3e79e3f58250837161f2c67b8e8b6a8e71708b0bae7034f32a76207f2832e637d23e80efb29533a572892da2c7d4e5a453cb37dbb13298e42ad86fa632456727043358bbcc914e60693268ae529321bf1c6cf56287971897"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_6(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1febde43e4c44419180b980a51cf4a76fc13892cd91891c5063952046c124baf"),
		nonce:           decodeHexString(c, "b4aa99f656be6d073acfee490eada249"),
		personalization: decodeHexString(c, "8766c2eaee8513569b185e328b42da53caf8632e91f26729c55a8f25b40ed8be"),
		additionalInput: [2][]byte{
			decodeHexString(c, "60bbe1bdc20ade21bc8ff8f11b80c13d8c811250dd49ee9cd8c1f1f0421fdd9a"),
			decodeHexString(c, "fe1515dda260323cbb45278130a5b55d279f41c97bd1d801e0b9cb098af38133"),
		},
		expected: decodeHexString(c, "10b910e4dcd9c98f8b1b3e35dc4acc7cadcaa4234d7993a72959b4b4cdb7901e51c0824c8571cb7b7700910df027b14538a3cd9ad3eee3e94212dff6bfb21a880fa51bc31fc443a5c91ed10c29ff2f3f613d7f774847ac7e94812a98147d7f30ed53601ccf72dd16a08fdcabac1f5c8997605845b40bfd4bc67e65de7f8ced9784d3563fb39ec58aebd5cafd4283edd98aaf232ddb3c017482ea1d486ad4292e0dd1d7400165ff0aeed121d70ce5fe476e2370b4dabdeb09541995e410880050f18828b33e7cea2e416ce919a9d2d1b26127b3b5f28ec92dfc6db6acf0fa5cf7f189b00b2d4cfdb9d19f2d1759022c89d7857946b72b5c6f93dc3f02ef03819c"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_7(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c1037e88a42696b097cb17b79d315195a343414e91c2543304157af79dbc1caa"),
		nonce:           decodeHexString(c, "1ade27e246c387497dd5fa429ffae8a7"),
		personalization: decodeHexString(c, "8d519bda15952217c7702702a3df23fd2bf300684a343c17363cf66d659f10db"),
		additionalInput: [2][]byte{
			decodeHexString(c, "db801361fec564ac3875cd362e8f32ef555ddc8041c3aa93ec27061eaf7f5303"),
			decodeHexString(c, "b45a65a3a828b2e999f1e2c1c5795c93df89e7d70f514487f60e3f8858b69e50"),
		},
		expected: decodeHexString(c, "9ce60b935284f845d09da63aec8e36947d4e6cf77edd2ff707fd87bc30f155eb9efc13736d77a02be116490b8f8ec6223f8515165a4f4fdf02ae7a6655b95426f88f9313f58180be3cfcd073680598f8d50e5960c71d95f6546d082af0fa9f7c0444b19af0d0cbeec55e9622f637db89ee08dd45a4b4a1cc0ec188bef984e8a0eb3dea2d6667eeb454278a7b9069f3eb3c08f97401bd75fc5efb1478cf13d77331a1bdf1b232b36abf4cd015fdb0369b510b461a7cf0321e995a2a41231b0c36e411904bb72c63adf5329f8e5dea67d0822a61e19e493f4f46da728fc83876f5766eef4254105052f93df6ae0f78618dbef4db40141469a348ed8434aecc1283"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_8(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "305a151591a2f4d6180681d2a94bc6f91a9bd6f3fba692d69cc93735169a218e"),
		nonce:           decodeHexString(c, "79da15d407559320681ab815c0ca63f1"),
		personalization: decodeHexString(c, "e2ed74af774c389dcc0dad145d508750ab9838a16ac94310efb5618b87ce4d91"),
		additionalInput: [2][]byte{
			decodeHexString(c, "48f03495d498520bb9ca485f5bdc554818a91417a785b61a1f958e3bcf5d22d9"),
			decodeHexString(c, "2a74a432e08e98f52ccbd63b719cd5550da74c91506dc9dd9536df6dbdf2ba08"),
		},
		expected: decodeHexString(c, "8d2411b7e86f05d8922d998d09bb231ab9c19bc0d3a3548b3c3164a45ec65439e9e98e8bdd5cc71a6933756a521c2426bf6eb6b6afd26609ce390ca181eb373c7f0a26c7dc9b5482b2fa3173d1a35a4f1cd6107034e094f29f55c3dca5669f4b66e363f05fcf24942d826f5fe17ac4ff57a9ce46d8968b91c164a7d1e751f4f4a200bbfbf634496348f0ec788c81c588fee3ac154b56f39ed15fcf3a3ce8cb52e3d8a47bedf2a9573e82024c9c539e5d03163cacab7cb8c54612455dcf0bfa33c5ff02b5abdbb439670556314e9029a62a7fab7987e0701dbaad103ef0a86675c3d198f33ce87ebab684951941f3f3757544f3ffb0ba8159ac0b4c43841999e2"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_9(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6f772fdfb0f199b445a3772db02dbf97794e8f360834bd9309e1a709b7e497a3"),
		nonce:           decodeHexString(c, "cb8c3065c45218672f882a12140c321c"),
		personalization: decodeHexString(c, "2572b0d48ad946c569ed55a546aca0b73227ea8be4e8fcc1eb550b4166e0d415"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a52971fbf209ca54e2304a63b0f89dc2fe9d84515677b84da165eae137d96d20"),
			decodeHexString(c, "1df310779604df75bcfa7172e6534ea8f1177c239af950d20e42b2373a795356"),
		},
		expected: decodeHexString(c, "50ec19b64cc9c569f3af8af2d2b8b462ee6bb39cae0810627408b11ce49fe140c3a9c3fe8c8d48c8b996e7536ee383bdad7202fe50b99bfdc0cd317f482c1830cab5c476b3795bb6c23b27242436b557c803ce3df28a8581ca0fa056e7abb5af8762967b75a562159dd27251076b7cd467313186edd523f6b75afaa6ca180c45f24928789443c7fd0072528445c4e11600d008f23be676013d9202ae0aecc6e0496b64975fe86dc5d451ff28cfd8ba0dec43a7218e91ed8633f0f2e37f260f39810aaca8d15fc7feda93ce9501731ee345639e94832996e199dbac2a4e06ee3504f24c89c0d85ad50c5b0db95afd670f3f09a77100ae897a4d6d9dbe3b45ce6f"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_10(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f10380473ae97c18efb69f62bfdf96a9631241df6f8ae3b5c9bccd487bcc296f"),
		nonce:           decodeHexString(c, "2820f64b276e0a27616cd0ce24a260e7"),
		personalization: decodeHexString(c, "c8d40a0697031e04e8ecec2af6f22a56b2586189ab17b761887aef408c28f076"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d6a6e4581068ac1b19def2a5deb78f105b4a9790135c3d9f006929f5633a70f3"),
			decodeHexString(c, "8a2fd4538cc2c293152c6fe323a440be096f021ce0ad432cd6b58212aef59782"),
		},
		expected: decodeHexString(c, "9b33563c4b5e51f5b7c61aa56ca352c22222cd9b189d3814affaf64d3901dc597ae085ee547c179d8ca16b8aba97daa26b2a89d6233d44eba7c9d0f620d83c5c59dc56c4307176cd9f07f8df359cbd8b9ccc86e20886fbccdcabe51b84a0163b12fe7476cac6c92111ee33060aa1051909ec21c10f91e0ea3ba0997ee9b1a709b1c0d51bf5de65a4becb9b863a3109fb3215d48c82d7c6255078ea870411fecabe43df8b7f57a1a885434fc98e614d83068e5b179ba4c23a1e6562606d89c1b28a8e563e4c8e3398956aab7c69101c16a7de53fbf77e8a9b21d8c6818d679d71b0f21c65a5b6f0cb7d16d343a4ad1ade1cf175a2bc122ff913092c9085592dfb"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_11(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6e85668f6e32bc628bc223ddd388cc0183fa97f7fb4f4ed5dfe34ebf8b30e73a"),
		nonce:           decodeHexString(c, "94c09f8a846e4411906cb4625df8ef26"),
		personalization: decodeHexString(c, "3d8799bb91e42c8291e79f832e2b8da4298de1c3813675b02419c0f0be5db1b1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "852e596b80f5a2f84da026c9dc683807e1454e55925896a684824ea366dbe230"),
			decodeHexString(c, "8f206f1152f9422ecd029a52adb06d7d1481235cf9a0d3ef810883204c2dee79"),
		},
		expected: decodeHexString(c, "8f548e2864b29471df6fe601a8c5a3d88ddc84cac7dffbc982534e2548cf02baa8d0492ebc8006a3f8c08ae969f42ebe02a1265fadf69834bd39a97e669d3433e02a03fbbbf2bc065565c6043dfd03b69ea6f52c126624487ceb1eb0561484acf7d2f410cfce76edb71ca1cb535dc938459766e8d42d90095ba4bcc2bbaa62c746da9f49e289389729dd38eef8973a5c68f5842f161e6de345ad987809497c28a2be795bd7f90fee14431feda2e56ed7237f16e4c520bca327e40031dc2e52157629710056bda94583aea590df7afccc24c839a8b617d6fee2a9f06cb1477bf0e73af7326ef73f4fb98588c874a26bc3c5185d41b5c3050c7f6b7a24881247b8"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_12(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2d5d3331174e39f1f473fce5b314d357bd860f5df70eaf58c7606a386555520c"),
		nonce:           decodeHexString(c, "0446c5fdd5fe4d3b6e9dfe1fad1bb55e"),
		personalization: decodeHexString(c, "cc47cb1978ede43f08fff54890b962b0baeb38934d93159b3fe30373919d3cfc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3da08347143de1d72bca6daf1c4773773b8b8da0efb728796306ebe406fa6b9e"),
			decodeHexString(c, "ffc462b3943d2593dfe978e37cfe89b596e8a1fbd960695190112c52a8ebf2d7"),
		},
		expected: decodeHexString(c, "0b5ec2d34426bd29b44e75d0f02b689bbed1ceec754ea8da30a6dbf8323b9b09f8c5ae235385f55d01dbea2ee02b4d72ab3b3db34c12170a9dc4ac1327c9dbef3c6507383dd21f27b2c07d6f9429fd36b6543f7ea46c422d5beb4528e2c41838cc59b48c9db6e340b20ceeabf52c8b6c821688d601ae86a44eb473d3f2c71697cad3ed1f2ceaa4618dadbf62540783278dcfe33266c95804a72ca6d66b09bdbd0695bfce6026d4eea3679b9b192cdce786b82e6fc2736827b6945a5f68ef9463e1053b6df159e9dd55a422f61ce8e33ce0969bd67a1adb29dffb3df3007f2bd1581133bb365124d35fb1e74b1c04a9e18c0f2b59f98f2e8148fbe4b91b3ada81"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_13(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4754cc397a9c64527a04e34efee599e0f925f0ce0d262959e2d911eca797f773"),
		nonce:           decodeHexString(c, "325294ca7629cd7e2a313426063c374d"),
		personalization: decodeHexString(c, "fc741ba5d5ad59b4a3ab023fb5b29228be8fe1ff53688e6c51f673c5d5fd98a4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "40c7834e931d7a801ffb819d996a1aa5f2eb4a6ef64714dc370d297ad5ceca4a"),
			decodeHexString(c, "9a7b8319111e1003a7aadc70749d07c2a45e6e35285307ee9c9c9a4aef03725f"),
		},
		expected: decodeHexString(c, "7a0a7f3e19f79126e1b0dcbe1f5be9e4f92f80ee712a8501e8482ad76268adde28c4894de72a7afa8d22f88416e0a15c94739e0f03b65e5f30e10a819bcc784995155d8d6c859fa52988e97c81d52ef57b3cdacc03af07a96563e4191e5bda7cf832b310519c933f496b186b6afd840abf0fe02da2ad71c7f2dea7bec0ef5b629a3bf8ee8df9f52cf91373b55d249ece5baedcca7688156b384c6730d7cda18ae461e2bcfde2788465342f5fad384ac68cb6a039a6b4314bf9c59569da3a512458a905cda4ccfe36e2a93929f04fdb4ada2d2b6fbd4046d72f7fd61dee0e97c3c57096e9de975d7720d764911ef2bbb90ee4de8755e7f3f3e50f25499d508ab8"),
	})
}

func (s *drbgSuite) TestHMACGenerate75_SHA512_14(c *C) {
	s.testHMACGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "cec4e6fff029cf6b087ef12a8d5f542c722c109d277f1638fe9a318815ef2f58"),
		nonce:           decodeHexString(c, "8cc7248c77c705da6c57f591ec015632"),
		personalization: decodeHexString(c, "18a8d2730025abc2209580bf6b5cdfbf98414e0e837f166dcf26d489d55086c0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4adc98c66aa72da2c63172aba2a6c59fb20aa7b195a0b79edc709bfa994134f1"),
			decodeHexString(c, "83485ecbf938b8035d047956a3a1bea5adb66c4a7a24b21dfce4269681c31bae"),
		},
		expected: decodeHexString(c, "6c69a58a3b27c73ac396840a93ff914219fa80241d39d65890ea612017d7b92b12062fbc0e3c39508c86023f7d70e9b156b4a766465c01c554acd6b5d78568d2087834b3b14f3fdc4d4b959e78ae2fa5298c87321b777afaea4a5c271a584a23a262f8b679cc8198ccd116c88dcf529a6677ebf5189d287f56eb445ad7313acce013b3fe49fb5212cdc3cf8c5ed15aa26b1135d7d9e0570719c4230c104a652fb36ffc57e219e735c03346d18eb57bcba813965bcb39b6a81da624838ba7b9a65d3b684a021f4071c66ce705974f2bd0ce1ad6727136d77529e3b400db0d14ffeabbac877cdf6a38ca66d83492a90482343a5a427ae8b8f77a2f724aa30c11b9"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate77_SHA512_0(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5f53208e154142870bd3b5e7699791012f159c6fa39dcdfd616076cd077b8c99"),
		nonce:           decodeHexString(c, "b3dbe0e037582ab6a069c476403ff299"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "815e324f0a2a9049a706800f8f324e878b25acc3d41dad599b2c99b463eaec2d"),
			decodeHexString(c, "5e932309c4a6d905fe2d9a1f45f999601e7d7e33f2716284437df58cabb99a60"),
		},
		expected: decodeHexString(c, "5dd8c4bcab8dfe2c317c294b0141ef8902b0ea34d724ba331308c223fe8a5f2c4a35b93e0195c95791db2ac50d8cb967fb3de881e9dc7e39f04c361a11c0709daf35b1190141865f1a5790ecc91e0440020089e0393f0dbbd7a0869557edc8d9c040b9bd675ee8ee383828de15828b5eb630df9974e7468f7f762eafb66649a8e2275662c9804fc427089b519edb4febab2180ec6f3ff67c0315f28c4110f64c2adcd220cbeefcd8d2b09421ee8afdf414be79dd127e22e7c3c61a4f1320d70f1824f5e43535e88603d308f36ef7fe3a407eda266b848df00ca98e4c47b5c0b2e3564785acf4de9d96d7c24e7617eb97b80e5471425d7742fb5d6b13e5bf505a"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_1(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "bb818f4f8a274a389f126c58c15f061d62c411eaa899cafdb7935b8d00e566cb"),
		nonce:           decodeHexString(c, "3390166bf88800dc613ea80b2ccdf4c2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e08809f2532e27334c401fb857602bf0456dc0604c6c41fabfefca66ec0ecbb6"),
			decodeHexString(c, "966fb68f44729db7b190e26bc5a5579fc1e4235d85cdf2f358756721b92ca11a"),
		},
		expected: decodeHexString(c, "ae5c1f18ef751caf3d68027560756cfd2735a32965c5e2d4158f5be3f3fb5ac20d909838b2a70d7f296ae131c1d2537f38a98cdf8dadc9408734cbd91b297e7580b34cf45b0e53fd9bc82f82843e4c2c3357cd9fa8f4aef427c80f9d9f56afe52bc0ab4e22ef8cb59947eb36234d8c10d9f79c38949d2be1f84493fdf1d77de2e92ab574562dfb880359ba0a810aa3f8120880cc13ba01e1f83d3135ed34ff0dbcf784be88e9cc9411e9f20442fc648dcc95375e18d8fa72e0a1e2db5a2671ea95d892ee1c005316244c582cc6754cad181c32d9898c859fc84fc74d259314561a4f15541b06f05fd38a4c8d239e79eb125a0c28b30a0f40516afbb3fb2ad1a3"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_2(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "dea954fb58c623d5a8d3a3bd716ae4d76b03d5f330379e4f67bb890effa29c30"),
		nonce:           decodeHexString(c, "e90a327c9ba71a8c36169d8f9c94281b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "40344d2e6579f10b751c0844db402b3ff324cd526459b1f40a176a7ad6d4d2b9"),
			decodeHexString(c, "26a9b743844cba645522a13f60ffd612a7614db918262b8e2a93f4258089aa49"),
		},
		expected: decodeHexString(c, "88f2f7499df92259ad5f83d06c9af216887a469788fde0061bf4a52c98f1ee8863d0ed4321830a29181b3cfbaa4375f458dcfcb9f9477c0ad323601ad253c68904ae726277fda9f5f0a9ac4b012729d178f68fa122b8d60226b2aea534b175c7c46071ac1698e3f3c0edb61fb69267a174f7a60f2d7320b1251bfab3bf392e2a5517f0c3befa15b89ea27f045e1eadc79235adac3c82c7e6c8f03c24fa339c19e12d9c31c61881609d9274dc6aed93ff42fcc205cf0490468ca4acf51dfa07560b276c3a58f30d9109c6c374848ef72e0254b52ee4fa2ea570b6b465562989ad4f401e4191bc965bc6a6586243f77bdd3e0401ad8da0ef10233c026a462df1d4"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_3(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "820908ee00440802209b601f7ccaa1fb7aa7fc966204d5ff8fad79e2b9239057"),
		nonce:           decodeHexString(c, "d6c900d2d66902aa4d644622ea0c388d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "619ada6cd00fe08da88366105240ca2ef102fd81895bb947e1ce44b3fbfb1d62"),
			decodeHexString(c, "383bb8f61fe8db188e9d1301997c82bae5939016737b213417ff0286bbcb2adc"),
		},
		expected: decodeHexString(c, "f7def9caca640ea612835f9b3ba79a1b59b46ffd5a158b387aa26fb4d25c2d7d97d6710bff02185cfcdf66f3fe5f105800b6a3c7004e1e28e9e7b7e1a032042229faae9039466b0f03da7494529e4ac47be1ff726c132712b7c81ed8aa3ba9d22a4b5ddbe5559660306a0dbddc50bf6c0ec6c0b1b7374a2c600268d56d3a555bd4a7f361222aa46b9f955370566c25a106cdb304f2c27686f36e43599e3b99537eee63feb307d1d289c548bf0affa411b6f9e2e208c269dd0680404498195fbf3d0ca0b52edd9db35ab08973f13011b19c5f5e1447f801135def683dc08da9b6bd470f332d9ad6bacc54cecf423f344143eeb8da4735c65e490de4b50f261043"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_4(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "51cd23e202aff376a80967e00ada6881ddc313f2b4d49c2a20baab822d00d68b"),
		nonce:           decodeHexString(c, "16b14ea136c036895bc99cde1b51cbe9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "88890ae176d1700a9d02ad8132fcbe9c53253198b0480a7b9ef88a4117b35a35"),
			decodeHexString(c, "eeefdfe8db8974d99903ca7d73b6bbdb0c2144db32f14881679bd1910abfec9b"),
		},
		expected: decodeHexString(c, "770cc0dd8ccb46c9a6ccde3e0fb6ef79ae32876f925eda7748e11143f26218283e1ef6e3ecfb3606460e930bc058127ca2ceced930c98f6a5c352eff9f162d1a711b9498f67904daefb32b4f3d904c0e5675bf01f4f0e4622e9e3e3a963ed9bf8ee5dfedef7a6197d25ce5504a2c95146b040beef60226731cf9560fc81ebf7571cddd6af11b28c9addd5388e59b70301eb7d06a7fb6eaa94df67c9c12f2c61d317fa5588d1902607a0b89498d6ecd6357adb779ff188e105b1e4c73b127af8882b70df611d28cb426144b130e8f1ff86c9b5507848393dc8a5019b8ef5e8049d5e6999017a1d72f933aef9b839b3f1085bb1f73fb54efcd1c59aeffd2a52f13"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_5(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d5d6de67a46ef58206c34edb08ff608a67a3742a9bdd482d16a056fcca001003"),
		nonce:           decodeHexString(c, "b011b34571594bc09bf9079c48c9e0ff"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f50640c96a263bd03c79a00cd5468cfe14a3b634615336ecc99639922ff632d4"),
			decodeHexString(c, "6ad766d17667c50de86883b1776c66881561b6f40b1caeec3ab37de9104af2ac"),
		},
		expected: decodeHexString(c, "899c67ed7545b4ac8b00194d139e1f11526f0c979df0ffcd3bcc0ef9c4b6104ad634b4ef51173c6d1a5dfb974e8a348dc7469bd6a82f176b0397598d4c36e9483426265c731843697fa3eab07d74645cfea34a704e36f14a5930bcd85320689a61a1315776153bb2da8e564a72f35152dade1db717ac4b2b9e5f02aaf134a195a7a53696ae140d600e16556cb17bb0cb8547c978c3aa659bcd21f83596968143b52d6bbc71ae2a14298e05451bf603e0ecbec8df6d732ccbba1aaaa4208bb34b7c74ffc94a3a4e8972d3e9326d8b7764e20a2f7075eddc93fcc3e254e5f7550115429cc41a5b11ddb194e81c34fbe382d87053752eacf1359a4fefb3a5b61743"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_6(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f7c80f935ddbace79a6147809118051e8141423645a2e1eebf57a553b2ac28a9"),
		nonce:           decodeHexString(c, "78db18cf3e634c7732b4ffa2c192bd29"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "82ab9e0d20e003dd3dea69ef9ecc9abc3fe5ea082b64247b51f205eabfd4d6a3"),
			decodeHexString(c, "8836a391fef74c69202479046b7580df4eb4cf303a8eb1114f8037f4c0bbf68f"),
		},
		expected: decodeHexString(c, "13dbaa43f4816f53389767757096586cf38e995f077220db6fbad6e09886f808c6c36754d3799efe1b56e93ad0fc477a383fe7eba6fb23c8ca11c2a4aaeab85c2430b404dfc547103ec4666b23089d39936e9c8df701f9ba2879700b54dd15538a1d7950a74751ad6b064df8173db56a0e6649abdc4b32323f4ec4c1090242b62af08d20fbda2a80baacaecb038e74d88267d5da9a1a29efc2624fc07c6f05067cb6167d8e1dd6b683ddd29b2d752f2b94d689de199701dca3dd9e46bb3b5888719df46a2e85d2ef59a82ce6068f340800eaa5f86e757bc0d80edd9821255f1147b8d6fe44195d8954bcb0bcc21cc01111875b023d6b363a0f9622f2e64bb5ba"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_7(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d134f611e1567c375a31df7a78d82ab95141206f1683bb9ef68f3ccb1c4f761c"),
		nonce:           decodeHexString(c, "1af760c8b834873c3eaf9acca1ea5af4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2900cd4c73855dadeb86f3a30c2be038f3297fb4415cfdcd21e5be7c7bc56d7f"),
			decodeHexString(c, "a0e3f8ad05c6fb4886681307df507fec0e4536904dfbf3fdc0bc2e698dac6db3"),
		},
		expected: decodeHexString(c, "d84e7542049ce66bd1e2edbd80dd2e06a2e24b022f65e2990d1583247af3b8833f8ca82acf4c82edf76acb42e580f08b91292e77887835717554a2f3f20ce5b0015be903b4d12cde464647a4d82d8ceb6731e01b3e700f154a3e1bac8c0bc716d1edcc105408e301a712d3be7cbf126a01e8d93f485d5ca28e55658fd3967dffaa2451eeef46293d10613d9dae4438a44b4381a4ba8120dcf7363b89a3980b87e82b2e523070a5fe07692863f6a0df4ce54f4fb5bfdd33c31f7908a20ac03333b066c78406b549e386678cc72a31f5bbbf0c5d1f0b1a68377ed7494b8c179a61b4751a225afc3f9bfebcbbaed95817107c7d99a08b0ee437742926b1ba83e368"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_8(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9a3e502d7da223add9f3c8fb3527f20f3dbb97a94c65bc05eb7ce54db88ed783"),
		nonce:           decodeHexString(c, "706802aab465532b69543cc639ddc05e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "15f0e2ea6a98cd0cbba6318048ae88a7ea657d426f4a645b64efa61caff37942"),
			decodeHexString(c, "fb5e7247715f5ccaa096d9308cdeebbfdbcc97dcf4ddf1b297aa992685f194da"),
		},
		expected: decodeHexString(c, "db0f1565840badf175610755f3d1fe64f39a4d371e718207b2b95d10331b7d39307a9f7cd8fa4162749bfd78850a834918da20b4139dfe96ad96771f4b7433eba33c261a7385e56c68bdd8dd1e6554972c2d9ff03ab1ac558d1ef755bf53ac35d19fe2214a1696f520e66a2d9b367cf8ad0366d7985b1263e5e96d4de261c95b7563aa321b8bc33725b64fb561ca1e80a1fe0730b4b1aad4253f473608fab97f97af2cb189c662693f3d61aa1e8c83b11462da8486e14a1984c759f1c1359d1211f6a83dd34014fb7652b91f5e6991504cea02d5d5cbd3ae925c466d64881e14e3ddc6f04dc87b4eee3bc12c8d47e106c90e9b8d21d538f25dabf69fb8d54872"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_9(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8dbe6ceda79f9ec5968419ee111be620c583570fa490a49a071405ed4448b202"),
		nonce:           decodeHexString(c, "f05875f10d53da7f51678265d1984a0d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5bb5d934e6e1b9d39e45e1fe7feca8ddb04eca581b91b005327cd785fec7147d"),
			decodeHexString(c, "d7a3fbd3124c4a4e2ee1625f376d46c3ca67da15e07c44bf9f3f43a1713cd9c2"),
		},
		expected: decodeHexString(c, "dc028d494668d26fb1543c61eef669548f4b3801d94542eef20fca7517a7ad157eb4eda652953bfcee238865a6f467eaeb06202a5a023d4b76e023e796c0a9d6f178b9692e3a4d39b251eeba404c541f4cab9b1a5de191312ff4f849cbfb77f475a92dfb66872e34d8fcbe44dd8ee021b5702964fdf1cd66e11af019086544504e67cc41f5e9b122caa64ab754d4f7474dbafa494bbef2f4a986113d8ac68ae0eb1a28fc315b47c0513184240c226a8d23405313e9304e5309618677872a9528b470a98f4ad836311f16c96906779dca6a7c30632b4308115ebd68b3b914882de9bcd9c27bb8052e22aff9e64f273505e81b9d62288c8bbf348e10667fec1d93"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_10(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f7f6ad0895eaad1ddd1cba9ae3ea7e72375113373bba8ddce7a3f4265da162fe"),
		nonce:           decodeHexString(c, "5ea3ee6c43057ae0abb63e20114292d3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "10e9e13d7c5eeed771b055c7800a7cbf5adb31a375eb149eb0f5a0fb6e6a2a3a"),
			decodeHexString(c, "f57d802f0a785cf091bc049c8d89218ffb0496e7a3454565042a4faa7565493b"),
		},
		expected: decodeHexString(c, "62c405597f42a01697505e7451eab48c9a0003d436e335aafa78c852f9ba4cfd0725d2d89a5800fd2a7e27ef6a684b784d49cfb45253ff821b48a89dfb18e22df31bacf669a1c1468b95eb5e98ce5dda8bd7ec870bc945b5ba6a00a41b9c33f3eaf9aba275db7de27cd5a378e240a203511fe8782bd29dd9b6c570a48497f9a304f021bda8c72573a4c17cb88fb9cc6c116d1040849d44bd574fef14eb4bc59777526aac55d8abffdae8f57c66d6ce994b344222c0f08d9406add82035d5d9415c0bc7087a07c4a7e2ce26949dfa8f50a974ac6ca9a75ac346b902220a6096e87011de6ca322651e45a065c041d86935c22697001dde6eb32a520e593ea997f8"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_11(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "57bc52e811ee4b385592bf84c17facf8ff317af891d9aea1c17d0cdea612879d"),
		nonce:           decodeHexString(c, "fd6f5af68a70cf478ee8fd3f304a6e8b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2f67f07bb95aff6be49b5a4e3f8980423b0ccefa8829ae3fc9ec71e57989e95f"),
			decodeHexString(c, "ebffe7b78896b7370b6296fef497e157c078386c26802c5dff1213363456bec1"),
		},
		expected: decodeHexString(c, "12135b33f80f80619006e163b58fbce3eff54d661d009c587cd7ce955232af7df372b705ef2944815a0ff042988d146bfdbd164b4c7980f181216fb0a314187acf1d0d8909a68ce8ede9866e660f419d926cbd867ea355fcb494dd54b864fc134441b50bcba88f6acd8af11595038fa3ec74797c0e2aea3309312cba16c0ba9ea64990a74290b324d2f8fb906a4a980f8ded2c7e55cd285870bc4944b6e9aa6ed44705d7123971dbcd093e5340ae96ba5d3b32a6a7502cb5c377b7012807dcc61bf66fd3bc714944cd7c1bc90a749c6abbea31b2b2ca81ca3c72f39ac17b249a63c5a44ed0a67d4aa5a9b130dc6f1911dbd37ff59414796c4acc80cfd2a9d9dc"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_12(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "74ff892c65ad587d924d3bc94b39d6b67f9e0497a4e5c90bb5354ce288f7cc54"),
		nonce:           decodeHexString(c, "793256703d13afa4042e306cf82d2979"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e285d66fdba2d8e54e7b8b82f9d917a4c44a92168e006c808d68fe3bcc120be3"),
			decodeHexString(c, "8172748d6351534fe7fb89996841768e56de1235a0bc7166d728e12d6b302434"),
		},
		expected: decodeHexString(c, "ee1cd769f5eb1b9dc8d757f250d22d714b0f8b03ae3532699b45d22baad8d4a0847d93787dad403dad8236a15b13629cf488dccefcbbf27a5d542daca2c9fa78f5aff61041f70570b245085e83ca5aa2fafe531d352eb59b3e8c29754c3f9b3251b78bccf8e4e303cd13894d0045fddedfcf2caf6266aede9797181436b507d6b0f3b64a4dd6af93ecfa30f6e48c917e3bbb27322520af2ec8fa6ed0e9b76b8b7fb96ac80d836f4801a1f3ca128a276f49d1483afce0cfb1dff280fb995b7d5cd5d52a437d9476fd4de49f282f96a15427ad9f490c08eb17fd5d9d2c66a0e30625de1ea267c811f450a06d2fb118492b059b7efcd0efa66486976592d41af99b"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_13(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1bd2f883cd62ca34f206b5bd3b6548a0d2e19d6aa02e41066bcd8d62ac693735"),
		nonce:           decodeHexString(c, "300f3444d7a7dc04b1e602f79f57795f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a3add73700d673c7f68370de1301ec6cf5c74fc67318e41ca91540168a1a0d6e"),
			decodeHexString(c, "b71db2e2cf972454c681e5620512c7537424798f4fae53e5c843026449ab09d0"),
		},
		expected: decodeHexString(c, "669181e9fb4ecc48d55bb1a1ab958cf1512908265a14a899e286abbc0579bd96f97db2f1777b03bbf0fe1d5bbfd223ae8ec9e078abeaa2a0809971b67ace4351e5eaac19436592b57f561044fdfcd801f71fae90f6ee1dc153f538b731b94034b4466b3cc5730ab6d2a8a8327bdf065b7e1f0e2a4ada21c61bfc06ebc6b93e9ebd694869fa293391b1251ee7225dc4cd8640ff45d3f8f95fcc3bf2b06669c47d14e8f2c3b831b93df6bcfa91cf65dbd2fefb3a95f3953c26cd349c49bb339a64623c366d43da3796d2bff32bcb203de3f3e430c7cf0a736b50b15c39123a995b4df0e6cb4649590e80bc3aefc14ef89bbda00720baf50c6ada1bac658004dd27"),
	})
}

func (s *drbgSuite) TestHMACGenerate77_SHA512_14(c *C) {
	s.testHMACGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "eb2e114b4da9bd296a0070862a38a5149ef575c828b68738782e6161ef35a792"),
		nonce:           decodeHexString(c, "4838a73c4ba16c49d8410d9226b54bb1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "967911f9412d40f2c62e43f48ff965bb1579a2ace388c781e125fe70f4adbee0"),
			decodeHexString(c, "052c401de1053b8dea309196bb8e326d4b643371976d1ff6be0a6ea4ad27e5e9"),
		},
		expected: decodeHexString(c, "f7e8cdc3f8d2796414b9c83486d746cb8b1675b37d0d7546392c59622c693045dbcb10e9343524a6e7a9cc757717af22ddb8127bcdfb29cb8da409bd69d42aed9708cb2f904dff562a695be004ab25d31b8485bdd677c96d156ce8037726519d1949cc15e91acfd1c7c0bd58058b72c7d340b2f0bb12115ef44af6d20ce5f429d681b614e06bcddbf8ba00b40732b4dd425d1a87b663afce0e9a87b942a543b055f00b2428de12464a1309fccd0a15d512691e3858666ea4dc6084283deb075877c0162dbaf8318c9cda01ca611d72fac0b386a753ef35f438757cdf732a61a1f6123d1de3f61eb072d022f56c679a86f7a05bd6fa420ba39ed2973d4007b9cc"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate79_SHA512_0(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "7daffd52fa28b43e757198330e8bdfaac82cdc5e75382e853a784ac217ef3b61"),
		nonce:           decodeHexString(c, "ad296a73e050479b682d52a6a6c40002"),
		personalization: decodeHexString(c, "f69854804e703d05806f19f92252d967fb60088dd50f134b28233a6d34692c7a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "65139b95508799e5f084992ad67eb8791e227b2855b83aa9a2b8bc34316fad9b"),
			decodeHexString(c, "7f5b56bd20063b6f441ec8888357f563c44aaddbfc93ac43d82274d005ec993d"),
		},
		expected: decodeHexString(c, "29cce539d22fd85edada8bc7e47d0d629a1efab369c4a8fc7d9193a77c4501bdc91b92e3fa7e149fec80b5e160d3e3817e93a5a2218de2a084dca4d5c869b5a1e6e448e4fcd709c373b7cbdf3174972a0c0a5cb44f84456ab682e180006be754f612951bf63c14bd55b636d92e9263d54871b2ef2617cac337a508cb1e2791595181d7ef8a888bfd87c218e45fbf02d857457a443d54318fe47e28b545948595ecd45cecc1b39da86aaf151d9b33bc2bd8808b84aad54ed9be103a2654fcd8d588d2163f4b709a94d515af515a95085e4f6eda8db25c428a6b6ebce0f73e193ce72bf2dfa725224452833f7f3016ed01665c8e347c449548ded796f674916c26"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_1(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b29cec37319ab7e660943db72115bdf573cd0cedb96617b2fc1a267a1863addc"),
		nonce:           decodeHexString(c, "5647a7847e096a18ef465c263c5dfb31"),
		personalization: decodeHexString(c, "b54306ea8f371a62fc303a0c07bad5628cfd573384ca31468df3d69b6e10791a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ddd2bba2e52e8f2cedee4824839edbdcd12318f0733a3df131e1cbf675609f3b"),
			decodeHexString(c, "9f919539828030ebdc8a9aba819c682c9ba1c0c2083c04e28959f541f6f3b295"),
		},
		expected: decodeHexString(c, "cf199ad48ffa3a72cb0c6a8dd3b72085d0c7cf1fa0135709054f47ffe5f750c31bc6a3de04e8951d3e4defa3ccc59a7ad54ce13bf1d23be0d719557194f7e7479ade1f760ed9a3c70388443d529e1da92688c7dd9ea25a75d2d61eb187c575485ca2399b53cae426870194cb3881f500829fda6b8ad277bfa0e37e56d824856f7c956faf3bd7e7d4b51a4c044e4f4927737f1ce993add43cccfedb2f5d433686c67225c490ccf65b2e7fa6edb3b207c27c3d7634702692bf7693ff33855eeb3572d01d99585300c538b987fad6ba9ca0d7c3332905e0cb48ea30e6ec2ef11df51dfdb9e16ba2283b6e5f7b33a0a7492a5cb525b8a1b0c56332323451eaf23795"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_2(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "154dbe61b70ddeb8ef1b86467d7a654efc44f714cb9581d4d9ffde04852979c3"),
		nonce:           decodeHexString(c, "d3b764f00ba26e7c3c740064a806a22e"),
		personalization: decodeHexString(c, "c036192bb12e9251d3a82d545c68f30a3c126d32a46cff77b8f4d2e7c418210d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "968da3cba08e923eb6db2574b5f5448274c45d77772c55b38c975c8c3f5e7170"),
			decodeHexString(c, "0d28459d9e1c03a3ab4dc025aa66d0571d1b29afb7a354d1bf266510ff8494db"),
		},
		expected: decodeHexString(c, "40bc58286b9d99b318569de5d7d199c023256902de2a3a5a0f1e38745100110274ac82eb4ce76b224725a97b9467039042d9ef066c88da7007ab0d02b9c4294f1684c5f8ff125297d3a6c42eb389026b693a67f2db928fb36712027643e6be20d43d32d6499de412516ba2efc5ded5879b7502fe6a982abf9f7285840fa65b8009459b00927f476161d8a0776ca87a1a73b3d5dff57b49dae18eac183c67ea6d0bb60b6d6029c588e8e36356adaa031880bed616dca406a4423f42c5e027ff4a1bc3742c2bf4c1ce5125e1c30a276cd63882a352dcf3881bc6eda8bf9f1a45e75c1c9b8532ad00799256056eec5ec0b257ccc131d3e016c2e2a1d5bd4f2bc13c"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_3(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "47c502f2daea3e077382bb976b50f7fd60b60b21969ca08b776c978a0adfcae9"),
		nonce:           decodeHexString(c, "569b613d34046ee05c07f324f890006d"),
		personalization: decodeHexString(c, "7991d29722aeb95dee02480b916b7c19d890e1459f0a109f9ed4a06164ffb5eb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f61a95c3e2cc52206c71e94ca33764d6557c1057a2315e016304b53e12213380"),
			decodeHexString(c, "943e708c9f18da2de784d4f7b83faafd1f282aaba638f422b46e34e2ff625409"),
		},
		expected: decodeHexString(c, "92409d22fb6869a48c3e516891cfc50b516c8f27e165fa8ef60a2d9ce0f19f692b6d2bb733faa71408e4146cebfefd18844c22a9c4099a6600e7d4f26886b8a4c2581cc1ea78137c996112b89a2ab44028685abcfacff96a50c6d57c17f6834dd5faa2c97ee94d30870f0a5663ca7162e0561b78cc55873405ca1a6312b5a5a6f2c1fbdb5c5f75d4644aeaf57666a6e301cd1321c8ed00146948e16673009346b924cecbdd1f8285417e42d42a5fd15f6d7c6918f26e690daac352269967e697ed52a2bce2cafa32c11f712ffbfb4af77542f77872f4d87c74330203d096febf4756d5a09772e49eabdb8556115c8460676492e139efc2a763538b99fb8916e1"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_4(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b8f2ad7927d7ddc7c7c557f7feaa81b844241776c39af7846664575466a824c7"),
		nonce:           decodeHexString(c, "22325deca206a0fb523cfa203475a0a8"),
		personalization: decodeHexString(c, "6ca30c83db364c118b5578626a25dc50744f881d06ea1ad7e12d4b2dda86ed87"),
		additionalInput: [2][]byte{
			decodeHexString(c, "80766434c23002b8f7fd6ff2d0570cf1d58306e930b4e52dfbf2cb54ce8f0a30"),
			decodeHexString(c, "1aa9df37dd258e9ba47627d302b052d36a10ec99194d5d8a07312c39a1be522b"),
		},
		expected: decodeHexString(c, "30adb4ff0102209fc1d945cc117aa41ac4a63ebf6cdcf0163c44668b752195c1298d7228dba7742229afe2db33483fb971e03f533a306bd1e040d03e1dc5fcc8a995b6e960daa221082bff726b2e3847e7eeba0cb7a50965af57e881bc3275bad2a9ef24eb5981d5789f3710b0ace60a5043414f8ff3f9471e6059aa4e0e3eae0f6df7bcdba150bdebed0a6894c593eccb85d5bf92328a6d86d965a66954c69b1e2ece9bfbfd2d618063aa60526074989bcf2d55014427336dab8a43fd35b3a07cf48399f71516c785ae0edefa71c1752a9ede22db388160424a9d08fc63189d941c924a2a11bf80ff3a8460753e1f66989188ccabc80b5c6c7152426ab0d5e9"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_5(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a117f14412be652efead9399b431153a7e06d166e451c218e4d566f3f3223e9c"),
		nonce:           decodeHexString(c, "1bf3f7bc8e4fd7179fc50b15cf1f230c"),
		personalization: decodeHexString(c, "d53cb9b946a4fb444bc6806e6ef8f6e9768d8b716318bb48f4ddde7ba6e3af7f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "00c0635c761f901589560ca4c6d3a4b3af29e4e579148fb18a679966a50624e2"),
			decodeHexString(c, "4f85cbddea01213ad0389d2f3fbba61d006c0ab7db93b9b2762a070851873c74"),
		},
		expected: decodeHexString(c, "a55fba38162ca52fe0ffe425697a0b706ac4217324e998b578b3d000fd422e95c0c1402aa33564436d90f9b9585c692f4887223628f769784acc981ec7bd561592c5ad0ede9e8c49a032afb1c40c47a692731fb5d36a4ca8c637f7e16be7264e4f88daf0995720afaf949d69a12b4b860942c24fede4c0f216f72ec46073482bee058a193f5957d38bad2b0a0da46e5c2d3d8c9996c9cff64fa7ad0420ed4f518e3c52dbe42e478cb9f58142139a6b4862c8b0bafd8e181216cc289a106972438a708aa7da67c744732922d3f801cd097b72ccf8d60a08fb3fbedddcb19e109cc59413a6b4093a8460197a8158b59a21447b66d8d9e0faa45efdfbbb8c285dcd"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_6(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1abd1c8a15f923c8f7e1034c081db9926a22a62c6cb76427939b7e2246597faf"),
		nonce:           decodeHexString(c, "a36bf9cff5bf8882680b26789a485b89"),
		personalization: decodeHexString(c, "656772a1bc20d83e9d07eb1ae969d653e5e0f9c318cfb278b7d0d3b6e9798b7c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "04c47f15cf1d1410c8aaaf6d36221b71c3e25850410f503c1c9e72f23cc4fab7"),
			decodeHexString(c, "5c386aaa8bb81d893c09d5a48eea4c9aa81fa4545412b36a9630c02dd6b2f28c"),
		},
		expected: decodeHexString(c, "a05d3f5d21575f00fa71f372783484613eaa76832bf6facaf0c3410405f571cfbe6c611dab18d6497f326a9d5e7a91de3b649d8a34e120898ea17f8583c68e9e7c5a0dac5cb6c75e0a70718fed21ffb625ff40c580faeb9b4f1ffb9e960f84b7f220d79d7069072a9bef93608ae0b650488f05ea9fbeedc1b2ef79ddb2a7d3006e18b16faadce43191ef72e1f513a701342ec88a40cc74d444bd8c6467fc386f995c1ed5a7a1efee930bca7ed04fa1a2469aef2f193f51ca23299af29330e41e2651f600e92a90addbe07d87d18634e558200b6d68c151b5ee54bd6650cb3e33923207b6316c18cb866cb6838a54fb2c8f13d4ee1041c57c2e9014215a1e1ccb"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_7(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c7fd8cf0d432e71d6a06dcd5ee01dfc61ee8be3aadb95f34b892bfda01ecf63a"),
		nonce:           decodeHexString(c, "a0bfa7a995ff1df2bb1dfa94dfb5bf5b"),
		personalization: decodeHexString(c, "513a68a14ebf0d7a6b84cf1ebd7d01a575b98bc0e30627464870c4482729aeb2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c413c1b84d2f3a2357dfc4d7154ac429e8372a1c5fc670fa55314d3b67c5569"),
			decodeHexString(c, "5e3d61358b30bc14a4c04388472e27ea5e287ef6c8f63a1280fb38c828c9c23b"),
		},
		expected: decodeHexString(c, "1196d784a57514303c36658daa4d8e375de466a6cb78203ef35a7ccad0377b4878e520be7b5d416a7af820b576f2d83e572eee478c412e463a62e1eb779fb6bcd022409f549b4928f41393124f7cb139e3779f949e3937b1102239b9c1d2bd250e990c035af31dfa3287d024bdbf3daf469935fa950ff8c8c2d72073271b84ab15d1d974126954e533929c5125e19eb187eebf76ac56159ea3ffce28b6a33f5740aac79df500964475137e65c05cfff4af0fa31c924bdd8d3609f92308d664c7a6ff63cae83b9093ba794f96528b83aac8bcc91c3af89b5eeaa531c0cc8aeab68f9c6f6179757de6dea533211ccb2ca3af34696c06a1fe19ea3aae74e68de7d3"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_8(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "abf54f468cb9c22a71fd81bb59aa554cf8f04c2ded03c9facc3e73f38b75a383"),
		nonce:           decodeHexString(c, "89ca26ee8e7b19e3589ecb3ebc7298c9"),
		personalization: decodeHexString(c, "918fbe183f1cd95e1accc8c041acb0c0b93c261f706714913449e17c16f0e761"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b2f866849f55c6cb34905348c52b4b2c6da7a25953ad798ade917cbc16b25de6"),
			decodeHexString(c, "03b107aa9b9cd034f58bddf19ec01f24de19fb76a12a460bfbecb5602f243d63"),
		},
		expected: decodeHexString(c, "81cd29ccec8a8627e56b3a14d7b7fa3e17a62746909ca57c9dd82932d92c50a4e38a01b71b801690e7f7f1c38750cb221fc7b122c74c90f2e51470361236d69a0546351658ac51ccd9c29f496e3d37ebc970cb120a87074f5fa84b128b8b46622a261d575ac3d12a50eaf9547d131ce6f8406539bff3fee4d54512125f20291b3d15c5366760d75d4c5c590a04b963427b71c6ca8ffa8e7669f842a91895cf990607420dc9d6d8fd1a2546ca783b68ffb2abf8a2070215eee230c8694a809b1eae79be74cec05bc45c8f463883eeecb3c37c2b965f5e2053df4efe6809b3b56e72f02bd2af7357cd954e112fc38806e46f424ae9141f28e56d3bcbf1114afb05"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_9(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e0a3b6ae60dd17bad65d97821ce8c90cea1593a4f4a37ef0e5c8da0febedef17"),
		nonce:           decodeHexString(c, "4c198cbbb3ae70c04a06af3b79582ca7"),
		personalization: decodeHexString(c, "0b20e39a7ed66ca9e61da96c97025a4f4f56e667ab528b6a51de62c952241e43"),
		additionalInput: [2][]byte{
			decodeHexString(c, "75e3940f9943df4a4f7e0991b10bf4ab22010f204b91ee3bd0c07dbcd567531b"),
			decodeHexString(c, "5c3c6b8c43c53f23ec921da7570db2f6256b4c41ad5f9dfcdf493702a21830aa"),
		},
		expected: decodeHexString(c, "891edff707485d4426c543e582de69ce5aaf47125e75158994a7dc47def6f39f11168afc97919778674b03c9a6bf9246ed609e484e9e4c9e52ec9b6bca4b2f7d108355d2106a830ef4e959ae326836f4199c93dfefe536e06024164f52dfc3a00a082d4bb1009a9a487c04b3c400a04bcf679add29b30cf1e6e34ad480e4a3dfe4510955eee0b09fca5792b94d03501985347117f106f8fab4e30276f5d196959a9be4d402d23c6087efe0966dd47f3de658fde943ca2e72485b745afa2dbea5d007fee57490f55305bf4cdc943f149d2d02d8637481ce13915abfe3f2c38f5d4ce2e5c4341800bba3ed6caf88d1e5d90bd0795978f34512ef998f064b19d46a"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_10(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2edf89c11e986c3d7563ac9252a48d1204610a44e1bffd3c38c40747a048f611"),
		nonce:           decodeHexString(c, "fb1e441ca95c2d4065846706e9b3c4a0"),
		personalization: decodeHexString(c, "01ad111387a92b19a6a5d6fa9bf7510a94dea22235c9d30735cb71a070c5a1e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2be7202a1971bfbd2fbe3fec604ab6310a65be22d9cdf40957b0a0ee04a6f3f3"),
			decodeHexString(c, "66d348269c32338f16bde77f92db62c5b53dee123cf0d428b7516bd827eddb69"),
		},
		expected: decodeHexString(c, "d49467c5e09693c9ace01358015ea245dfaa03c324b4de5f9fcc385a3ba73640fda11832fef7be1eb2e820aadd5627091235f521776f12fee44e73350fa52099819db2b365de3f049cd366b410454f8c161237aca945bcdbe38b0d7d3565f2bf01d48df462feefe5e852783584d2296297e5d89df1e5bc280655d90cc2873031868305b13df01bbdedb76e55c0cb9bf5900975ebcdd855c136d87b9419af811fc7457abc340c01bd9e4aabb110f048025c4d80d83c245f2ccbc70dff40507afe889952cade50bb7c3357b0ab402ee49c51d81ea0f5e8de8ac22ca6b72689abfbca940fdce47d60d49b56a3812102f6b6b177c982fce8f52db7fbf0c73c19842c"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_11(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a2df1f523094a0b4f7d2569f332a381ba5900d19e4befa49600cbd94a43863ae"),
		nonce:           decodeHexString(c, "abb5b481776c8d95c9585c514a0ad948"),
		personalization: decodeHexString(c, "582d5025e08cc763e208f855eee90562e62273db55d2675d4b03f31eb6d55f7c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bfb78c53c93f25d4cd6520e938d2dae2f11209da0b20c1b88e75883aac8009a8"),
			decodeHexString(c, "4d7e8f65d99faa9bf9cda25cb3d88d124e10b9090bfb1812d7a5cceb453923b8"),
		},
		expected: decodeHexString(c, "489ccf70a7dc43400625bcf131b11c71e87d9d6d379702aaeef579180a1b8d1a32930e174f97800bc44c7182b39f11484c51567fe920fbd12ea841869da9aa288295320d11ed52c95900ec1323227ad32fee5d414bc7662513f318d25c1ae8b4ea3df087f0bbe96ba87ad30ac38bb316c56bfd2019dda6be6b30c40e48f90fd60c6b8422f5c214b5114cd4106edd324f254871cadfc3ecc518ed598236a396c37bc6d8be856337c87ce6a7bacb88054dbb6e5e3ef49d0b3f14a3ec85ea9b7afb0885e133c12bb35689a2604c112dbb3e31295c87e0ba5844c92502abc85b07c2449c8b085c8eaf3074197c9dea0d605e01f2463fb0e528bed1db5dbd9e7c0fda"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_12(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e5eed8ba95a7412a3d49db1a34e58ff5e8f4c3bc667fb077262b845859532bb9"),
		nonce:           decodeHexString(c, "da75e7ef316abc0eff6c27f34d37044d"),
		personalization: decodeHexString(c, "b9a68b0b8f5b7c06ddfa444f925b1571f4e7c25d476191941a7f5da5a16d87aa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e34da55fb4ba95b815bb6076a6542183ffde47cf078e6bc263906afa504712f5"),
			decodeHexString(c, "b7dfb1c01fcfe21bba3c1447bf54bd9f61271957485fe757404e0bedaf7aa374"),
		},
		expected: decodeHexString(c, "1dbee8e755f966b501a6ff6fee38a829e321118eaf31da441573f05c55b5bf8f2a31c5da69da035094180fe18713f48c319ce1615d9747ec5bf67f94ff355c4857b7f163daad585576f9254bb929fa360699c2449458237fc923fe4cf96027bf71f2dc137480d0525b1a27aeb7bbc7dc65c59a6822aa70ed366079390267fe921127461663c436e11e5c397062e3e302bcbea1e940dd48c588c19e6b5943e4b07dd5e4b40688644dffb2f50dbe933d6821ddf243c3922544f5756c5f8b637eb6deab44eaae55c9691ba736eb805d1f5b1de1fc8a0a1fb17ea83fc3487677cc29390dc8701ac829e44457e4feb5d4c1dda43a5edb194a926dec649db7d99480ec"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_13(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e53fe5a7a467d45de79b0d4c3c6b793cf8f81bf61369c9957d125475fd2e9925"),
		nonce:           decodeHexString(c, "2e607a6b31992614addf46893f26c5a8"),
		personalization: decodeHexString(c, "f2fa633d2765ccf20f57e372895c06d93215c99820479b963e036cf850a58078"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9dc34fb473efadc12d67952ecf5704448af5cf6954adbf0f9821772e56343fcc"),
			decodeHexString(c, "e1dda8e77cd550a7e298769e94a10e77e824afd5d7cced61125281e3de9da4be"),
		},
		expected: decodeHexString(c, "cc569e20dcb43f2bb4a21f0e2f99e21786f6723a3fc3beac5b7cb93d8e119dfd1fd5075e7663a19e3b17d029b2117f070ff4304ef8566065cf48ed4f4812ec693ab0f3974686455bde7656370282465c38e44f11f62bf89ec685f09be50f8b940b8a06e3749bc176a8d4f1c54724f77a3eeb49deb767f2090e8c8be04a09ac6c9a1feef0798a59bda8fdbb07efff1f9e6f29fb20a63060426dd7eeb64060a2ed76f3f7e5826acc75153c3e48bfd1031ae3699565ab925eeb4ddc834478e3ffc53718730102bf1ad11816fe0871caba164964f5266f4fe3181fd1040ac86fca0efc82db69445880d3a97859aaf032e2e3cd7048e01579949706239115ae83e443"),
	})
}

func (s *drbgSuite) TestHMACGenerate79_SHA512_14(c *C) {
	s.testHMACGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5cb31019c893de9f16cf83328f7e115d75a64f45339b75ad50037bac082d7ff4"),
		nonce:           decodeHexString(c, "b2d6bf932af6ac29c514fcabf1a85134"),
		personalization: decodeHexString(c, "7101f575d4d0289c8a82d82f5adb761da9bf0b83a09a9b2f90ab6fc7f92e4152"),
		additionalInput: [2][]byte{
			decodeHexString(c, "06df99a38f4222b9e7e1e3f4a6f488c1dfeafe847129d54c93bccb16493069c6"),
			decodeHexString(c, "3977a9671024bf0150752ba10c9f6432773bb71aaaa9d23d1ab72b90b7f0e088"),
		},
		expected: decodeHexString(c, "cd4fa86fb559475f4cf4a60f111d3d0f71646d3d25111889332f2451eda96390c607a0178e1e79e8124c7626ecaa9822495e5341dc6f24818f97951bb29434c7c48d05838fcf3b43b8314827d3acc8fbe2c4ae2ab066626c25c32a760002cb1d980169f7691bee5e329ff1ff4938d3bdaae583f3561499563198a5eb69e73f6b963a5d072d23e07b0ce48cd04b31f9ea349c2cae355ba478e26a5fa33d8f03af84235fb1743d30910f5557194e3609494019bd705f8cdbf3d1b4dafaa09c9d8037d2e0ba0f96948d4302e981162c34c12c2fabe1a42da517b7e5a1f796980371420cb305d0a316bee56767ce1aca9260231839b92fa26fd75846d9304427da27"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_0(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "63dafe5bd5470640d3bab640f2dc121ab4c3c315c7bd9e94"),
		nonce:           decodeHexString(c, "ee95929b8b7bc25f9858441f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "157a1cbcf68f5b3b0569b0daa48a2c6a026020daf456a5f8"),
			decodeHexString(c, "6b89d4ba679688056f6e441510a0f458fa9cd89b226baeef"),
		},
		expected: decodeHexString(c, "406eb41cbe21780e6159b9dace5d0b0151d5145993293ba0664a4a79757b6233dee1b245aa05653870c4207fb90858bf3ca94ef904a7b67bab3d8cd4f5791e246060f163b3061039dd04641f088edd01485e9c9d71e20e45e7a8234c4ff0c49273e5ae847f69cfab18c9965791167019"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_1(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8385c0a8389e3566e48b48e581da179dc6d6639faff4e1d4"),
		nonce:           decodeHexString(c, "a2938a5a871bda9869b98d7c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0f0e61d40f561d8cd459addb73aa0a360f6941c76ffe9fa0"),
			decodeHexString(c, "7c2ad17442c70463c2a1a3c2a4281a4d95be5c55332fa0cf"),
		},
		expected: decodeHexString(c, "bf16dec355433fbd3babcb6887b9dc305f0fc32063a956f00af0b7f4c09a52b2b443da7a25a3695c33fb773c603a55c94e86c03de24f0f468226aa1b287a2192bb8856c1297098f9c3010bb3854652cebdaafcc997fa4ce844c31d15b812fd21dbae760da96c50836dfdc3d5c19a1b6f"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_2(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0295eab95b2beab2152ebd3b3df31f0a6bf7ca55bde682d5"),
		nonce:           decodeHexString(c, "9eafff0d6c47dc3aae40d8f2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "be18217c79ba99d47ef91bee75b2bbeb21d830790bbc684a"),
			decodeHexString(c, "efc73b84496469c5eda8b02db076f9c1478650879496431f"),
		},
		expected: decodeHexString(c, "ab44dfdc590b7af12d537b4ac6699b6258ce6a2c866a5d09616e17dd58a1a7d46a21cf074b7b9dcf5d95778415e7a8b9762a45bbfb6fdcadf6244204e1d0862df791ca0df2f5c5c648cb04660bca5582972ea43a0a0f1bdd23683799113f0efa26ad31fca15a4628ad157d405295f0af"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_3(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d0a435f96461ccf9192eb7f68676a9aa125190b65a8c31f9"),
		nonce:           decodeHexString(c, "087f18c1e9b7c69e272ab149"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d47b0ef89ddec88ca648ad2f18576261260f6aa072b58764"),
			decodeHexString(c, "88223f5f0e52a88f8b464ead27f194bfa1dd5cbfada46eca"),
		},
		expected: decodeHexString(c, "f45b7f407499da13604b6edeed15c5bca77b0a70def50507e8acffe228b083654cea602bdf3e40ebad7f35e672588a2e01c332c2ed8a9c829274898c8e2305f63c09a781dccb1870eeb841b6b9ec5f33fb0aa70c9aa0c2267ee4cd093bdf675dd51482d7607afb3048787984830ebf27"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_4(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "959b6bff05371e71e7c6d38486a041b57a667001dd8e92e1"),
		nonce:           decodeHexString(c, "48fd2a6be61454d85ce3ab25"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8339e74baf3c107aef29cedbd16c099daf8322487acba8a5"),
			decodeHexString(c, "6b7d13415e1322d8143965cfc7d1715d381750a0e091c3c8"),
		},
		expected: decodeHexString(c, "e482a5e24f11bec3dbd496e0773b818c50c96694cbacc292a45536fb93588bb03ca5c15edf59ffc918be6ab73f0b5ca79a9f0c09a08b0e458dd864207c42df2e2ae45489b3519594bde53adfe96b4f4570357101ed5434d90ce71daef9c438295e7955a5556224d9d176270e99f29037"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_5(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c26a1c4c88cb02f417abacd3a27a31921395dce2b08c81e0"),
		nonce:           decodeHexString(c, "1418b871119d9ccd33dac434"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4c93093d0a5c6f0a073999658f24d8b3a5f6ac8eabd59c52"),
			decodeHexString(c, "b41b61809421a996d36f24962667db544995ebff11e72370"),
		},
		expected: decodeHexString(c, "7c6205fd871f78031c6a8a992386d4d38d4a057c5569bf50def38e3f6d83cda024cbe3c8f76c16d95c5f75d6fd495b1b6f49fb27d5f79e6e02333cadd93a2f7d0711536083dd32169422f0b3a7f15975f672660256b4b4efdceb22d6249cad912f8571ef4cbb6331e9473381469d43f1"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_6(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "4b7df454ca5b2c86507580f8a4c9b0bd9f41ff1385aa0aa9"),
		nonce:           decodeHexString(c, "1b52a7f4498ffd144fe34399"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d89fd1e8d903c34c5e35d0786346a6df5b0f34963b972b8"),
			decodeHexString(c, "097b39710a4f83166e5f1ee294d52648239469492a03b8d7"),
		},
		expected: decodeHexString(c, "c5a9e88502350e53c00ff52690261f1438191d145d1aacfb40f8d6b13feb6f11380f080b1d0b5d91c3962a4b5f77ed7e43e6b025c28bd6f47a99df3a3a68ce7f23770a60fb0686ef730cea393df718b25c81c2d10da0ecf55c4d0b6b2b9729cd3caf18a196c27868c41970013cc93ac1"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_7(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3c2c85cb8840d5900a7f5fc1d0c4e1bfd090ea8c354e76bd"),
		nonce:           decodeHexString(c, "4d82e8b2a7d03b4a5227c57d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1a2d581f8baec211351c604f25230d0824ea6c32c73013f0"),
			decodeHexString(c, "19c8e4022f023d3ec597863affeb772f28280a421800997a"),
		},
		expected: decodeHexString(c, "947536c18d3a7d6365351106fc087ef4177c8ed32c81ce0e5cd8481239ee148be7a59940dc8580d2869fc06ff18da2c58693102daff817d3bcc94803f28126816468596df1d5899e42c6346e24fc6aa52dfb01b17f58a91101a1ce3288fa17cb56454a3e6fadade70131d875f7b27012"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_8(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "a60f3e68bc831febb931685388d20c3384aa84bc22bc1cc3"),
		nonce:           decodeHexString(c, "10b715ca386b573dd61f47cb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "01026eb2be8698e9205a8849a24d91fe51213603ba5375ad"),
			decodeHexString(c, "ea8486e1b817ee73b97dc36fdda6e06cc73b0071cb90a734"),
		},
		expected: decodeHexString(c, "50d8d3dadfe6b90d4035bd41f3614f21c2fce7c548eaa2b56e814396771bddafc3c784a962093d3c08edd9b4aac97fe857807e1a238a598e7eac874c8c7ad4e6e471481061dcebb9bee8447d1fcd159c0d4a20a6e4cc99bfda66fe77d9051315a8de5622e3d2ad3e4f14ae0e04a347fd"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_9(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d95eefc175dff8e45d1d6235feeaed46fa61e8d05da75cd3"),
		nonce:           decodeHexString(c, "d4794d842266513d37ad302a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ab52641b345da4b0e2dbf9ba684f3cc8a1f6b835f38d1adb"),
			decodeHexString(c, "775a69105c74e1e69ec24d4b432bf940ef922c90eac7b825"),
		},
		expected: decodeHexString(c, "aace92c24618f06ce42bcfdcb7e197e8f84cbb05ccf42c480283170ea4760525a441bcae91ddaaa51b594f6a8ff19ab6dbfac917b8839397a2c9ce3f7e1e7ecaa9ae01301b72644b283a6948a71a76d80ceb3391b479361656927da044c9396b330874591f0af3960947c36ba51f10c7"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_10(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "b4d878c971f827313074841750dfa5d2733620c48981645e"),
		nonce:           decodeHexString(c, "a1bfc76a29052a667d345a9d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9857236d6834efbbe2c3993dd3800aa317672d82c9d47499"),
			decodeHexString(c, "507124f8cc320d98d178b21bc3e6fde209e07bc046225101"),
		},
		expected: decodeHexString(c, "311f2a5ca649ea2f58d06f3cb44b78e3de8b074857c02c3728f90e45e957eb4fd8c633dc2a871fcc786e73ac4df4586c07203ca23f0d460e36f4be0b089dddaf93d82b42a7f36dea4d91a60d8d93a6e9c9ab4852bd893a6359fd129b25add102d91878a87d9cfe3867185179782f6e9b"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_11(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9ac1ed2be242ed5fd5324e56857c32128c68da90a07a59c1"),
		nonce:           decodeHexString(c, "9264729bd6de7d59843d37b6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f25d45f3a74890cd0fdc522ab295f0703238a8bb725af061"),
			decodeHexString(c, "9ba58d7a6bb20dd5039906c897fdf7755fb50f82ce518172"),
		},
		expected: decodeHexString(c, "2d578c2fdb58cd91f93819591efc3cda8ed3d721e3ef2519134e272a1c044f2362ad3271099c11b1b5733de692fa832ec8ace344ed2cf132b8ee51aeae8a3f9f1842ce4137a3ddc2737d861ebab6b360502ec85788445cfc38bb0c427d0ad26966aaecb699df46c8010b4f4294d76795"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_12(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c76928e0c580912f08275acd65c72966152f71afd7596b3e"),
		nonce:           decodeHexString(c, "9bd5a085f0d2adae355b6273"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c3497fabdf21814366f8aa1ac244860ed2caa886e97aee04"),
			decodeHexString(c, "1172e889ca9bba0f8b38b1a63a2720f83a45436b8ee36795"),
		},
		expected: decodeHexString(c, "8cf2f71556634f6e066f6dba2a5c51ac4d3c288b772e1db169f8e3699f613061023b3b4cd63d66e678ad8fab81632ad221550cdb8e9455af21b30b3d2988d97b70524a901eca88c5484daa7fe1a56ef7598d18b7370ab66408dfcb85e76692fc42be36f550408c26271698de04fefec4"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_13(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "ec7aadc75acc09e795048474173a63376a6dc401433d52b5"),
		nonce:           decodeHexString(c, "eeb567444ae6c4698005435b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4239a623a2130ad435e03147820cdc06beef91321d3462fc"),
			decodeHexString(c, "3bb8ecf4d3ca275b298de723460c7eb1e24c699d7ea55607"),
		},
		expected: decodeHexString(c, "cafdea1e07c6d56eaa45abf259bc340b8e96101403ef73393ae0d65aa694490288e5be90db700f7bb190a17db4f90763a1edd3e7f8bf9c48e95baa429326a75bebbecd817100c73767a9b6c5643520c09b2ba7c4247eaf4a97fdadb7b9bf9c8ebe54bf8dcc4e258e8bf6ba48baeab4e5"),
	})
}

func (s *drbgSuite) TestHMACGenerate81_SHA512_224_14(c *C) {
	s.testHMACGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "4d997980b937c73e2fb09f4d0d64818cc388ab0630651de8"),
		nonce:           decodeHexString(c, "393cfa1d7bf9444f4f1801ad"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "38ead8a466e462f5c0617822c23294cdba07a80fd51dc241"),
			decodeHexString(c, "cacc9efb209c71b123498182d25081aab8f0159bed1fc0c6"),
		},
		expected: decodeHexString(c, "c200766d5caf72e64a77a7fcae1ae3d14681e33767ba2ba7faca26209fdcb59c7202c381b18adba07ef0ceef443d9e1c5888366bfd953d614bb184370b45ea2b44a251e381fd2bdb80bf4bb8dfe011e1b143032bae9ce82c2869537e70d36622bf23476163a2dace9ba863a5f0e3d303"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_0(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "46ddde45b98fed77037fa8ea68fb43ba6f3392cefddd2eac"),
		nonce:           decodeHexString(c, "a45f96b7a1336ddbfe85ba81"),
		personalization: decodeHexString(c, "2c67fc5cddc80426e0997498fd33aa00fd4414607f868d74"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bdc24367bf9d8cfc09d26e9530d2cdbb0db31918ddb15c9e"),
			decodeHexString(c, "89cae49c4384bdc3bc660693cddf56cd1711474def060c6f"),
		},
		expected: decodeHexString(c, "a4b121425727d5c73ce3660728cf20f7c2caad3315b8309de92fa479adb05926a26e065909f3e4888bce158558234def80c1a37505edc3568f69b27791e78780cde40c1e3e9b2d271ce60ed9b48bd087f566506526c1a459980489cd0e6ca02d350aad9dca3d0e364296b961760e2d38"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_1(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "58b347f846c9b315104bf7c48a04933703825b97da941446"),
		nonce:           decodeHexString(c, "faa02eb085823f290bf2dd2c"),
		personalization: decodeHexString(c, "9e02fc504b0ccb7839138bec99af9d9ac507e01c3f34d02a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cbad01dba02f838f5f796faa3b514ed9f475bb75786bea79"),
			decodeHexString(c, "fa720a5c03a7f2a350f68b82cdd11d17ade8bda0f18881b0"),
		},
		expected: decodeHexString(c, "d6a9a44fff51ab1c211a04118bc60c4904f7c8e7b7375142036f0c23da33580339cd38c37b1bf8d9ed742beea284ec03565c5b4f6abd87be9d9b8434d403a8e52b6c0d9f0684d9e0035cf8c22fba4f4b7e4d33ac699662ce6ea69008ee2521ad0298193221310003811d39d96d381ac6"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_2(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "74632987157805c80df8ceb811b42ebb1a8d6be6efdd4926"),
		nonce:           decodeHexString(c, "5eecb01070fa639be1874bdb"),
		personalization: decodeHexString(c, "439a0e3c6ed0e4ab53c5830e77a0eb4f556ea41911b46825"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f6280e33413814c58c136646633f5567dd3c7958b6661229"),
			decodeHexString(c, "082263d9c1025131d9b1c451ea9ccc332af490ee53ccb687"),
		},
		expected: decodeHexString(c, "a19fbde9d5dfb2a7c11ec095eb2931f85f613329ae89a33eff13646d67ccc0c42b176980947056f505d2665fa12d959e8a8d32c4f006fc51f8432d38f4cbaef238bb361aebccd9d21ba97af9cab73a4fa5cb6b5fd8c7559feef742c968261ab2e33da38fac1d630d0775e60d3f9382ca"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_3(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7deae19a703cb88a2361d86326b819465499a7679fd052ba"),
		nonce:           decodeHexString(c, "0fa8a6d75f31fe2db5a11d7b"),
		personalization: decodeHexString(c, "7ccf88c1a1def998da19cf98ca066f476840b5e4bd695dfc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d7fc4837ad61425d589a003465431546c58ede4110e3cf4b"),
			decodeHexString(c, "28dc09ccd7f1b9c616b2d45306ef250ac58435160a63c740"),
		},
		expected: decodeHexString(c, "554c29e5d2707c66f70e371020e8d4aefe5938b061dc362e810b5bbc5da1c83cdbf6441754bc0db10d0178383d700ebb56e8c4be777241f3cd7dc56e0b057d30bd326cc028a170f07868e2d9b7491f02a5888c8d67665294d37d324303ea42f13fff05b01d820cba0f4748e460f2cfaf"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_4(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9563db55a321bfe87d7d09319bf23235d9228160dd5fe156"),
		nonce:           decodeHexString(c, "a2abe2ee5b683a2e37b2796b"),
		personalization: decodeHexString(c, "345034bad8c3148b28075a06a17c2d2892d7eb5fb608ed8f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a95633eb69863d2a84f4ee91d489b008af687e7bbc160bef"),
			decodeHexString(c, "b4ff8d84990345f7962f4847140090556e48b6a747632755"),
		},
		expected: decodeHexString(c, "0eb5c1947f3c9e8fc39b69ff69eeaba9643497f28011799203a82b2c39d1910040b6a12f7168aef8209864c0dfda672334c4253a234d7bd21f2b7eae18a28f4c135e596a9adbe79226a03ed9ffbef4a58b564507e464dc5a8a1d4150127e89954b98085f78546aac878429cb2d749d0a"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_5(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9c43382b38f9b820624a0b87fda180cca680a9865fd9a94f"),
		nonce:           decodeHexString(c, "9be1db042f7231b5e9b8fd5a"),
		personalization: decodeHexString(c, "2e72b116abc67661e18c839508b85c8a0624594e031572b9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7c95ea0277483aad448e213ada79602f952c990935a9e605"),
			decodeHexString(c, "010bb82c853baaf66f2371a60763f64c7961394ffa8eb780"),
		},
		expected: decodeHexString(c, "3b33f8643ae9408c6bd95105d7cd8e807daddc0adf7db5f4b5184e45aa68287244cd9f7ffdb65ae1a29cedae6b2063fe5c0111da109357e6dffcb3230e0abaa5cdd4d7d6ddcfa1aae00b52d5ed0b36833aba9cfdfa900a152ee259045a5291ca584661afbcc140677601a0bde22fb137"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_6(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3a505aebe4beabf45a1547ccff0e486ac9acd0bafab5b118"),
		nonce:           decodeHexString(c, "3efa4f2cc667db0a6086f174"),
		personalization: decodeHexString(c, "f8c2b4b2d8ddd2279d73b01d801c299334756149915a395a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8d43e5acbaf6828897ed954a80954ca2460ff794339ad186"),
			decodeHexString(c, "a19097bf67abee1a038b1dd5a88a20fd2429f100d3d69fd0"),
		},
		expected: decodeHexString(c, "767f0201be1a01cd68b898f5aa77874ebd5f2c940e86849114e6abf2475e01774dce4918223ed4f2fb913144be07acce98eb31ffe1a10aadd671ab60ab2b814f3f4fb7f2ae683beb327352819f9b10d73d8f24e1ba2496e3542e7a654cf84b925ed64045c26b11778ef9002ebdf34fc2"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_7(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7b5e5fc9a09afacd1ae4e71d248c4906fdaca57c85a79c48"),
		nonce:           decodeHexString(c, "d9fb65dbbb02224e2f403784"),
		personalization: decodeHexString(c, "6f3fff13edc6909f817d022994fb1fe93071e2f6657b34fc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "33e51ef5a8b479b6982337fa77888ab85f40357647cc361f"),
			decodeHexString(c, "139b3c166f174e53eb559cb2809abdb5b58ad1deb8b9e5c2"),
		},
		expected: decodeHexString(c, "60ce79ddd122965a9e6ab06160e576bdb78195332cf29c9c73a37a9aea883dc649f0df395e1c7f89a52f55bd80b19506d0e8a78641ed7661235cb71c81bcb5654b338aec635f4b5c86b2b64158b9689e307c4a97a385bb9e83f575f67ae331e63c4333fda3b8040027bf83b579279451"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_8(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c2319f76bf25e8ffebdd64b0fc03a2bdfbfde4d6e2f78a46"),
		nonce:           decodeHexString(c, "a0d8fa1afe79bc40e6461b41"),
		personalization: decodeHexString(c, "ad96097ccf90ea129d9b1721d93ee4086020e355e476463a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e68edc4dc49169f681d1f1353b3b2d55b49846db81c5a31f"),
			decodeHexString(c, "26ee0c941922cc16c5ef7b8ffddf48f2a2a4ea0e0b49e57b"),
		},
		expected: decodeHexString(c, "8e5cd4c0f0717b06d25e1c54563228d0e6f751691c7ad902e380b18f09bd0bf46c2b96bad60c106ed9d26b399b80f074f745055fa7c10e7375cbf4e02a2cb7f062b4cf404a0182234dca2be69f0b0625f897a9fb2c596169fe8be0acd0f01f83ad5bc8f618242203c436197c679bef3a"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_9(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8e6d8d9efcfcbbb8bed7f3323ba0b04cf815af9f4a4805e3"),
		nonce:           decodeHexString(c, "b40e689ff92667a912b8ff59"),
		personalization: decodeHexString(c, "1d6ce0115398c5362f6e9ad62d7d37a4a184258f5a506e7c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0bdf19bdb27abec77218768e59214b0979adac536be6222a"),
			decodeHexString(c, "178edf54f5f96bd82e93e577d4983d2f153bba7996e29408"),
		},
		expected: decodeHexString(c, "02d79a029cb7d601c13ffd0913ec9d53f42e647c1172aefb48694fec2974bfc9545f9fd53c99fe70ff4bd9983c0da886f622315927e49c982128a64a6882d1ec0c7513e660875ae298e4c6582558163e299f9dbde5ce8dec518d546402c9b41f88fb6326d1f0be3c27d2a2213330c7e8"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_10(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "827e8e215bd31ffa8df600f99b6e8c969abc1f1f0f2ef40c"),
		nonce:           decodeHexString(c, "b55aebf8ffd0c5e8ce2d1893"),
		personalization: decodeHexString(c, "584355cfa8e990d3387e9479078d42e8d8a590fa8439901e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2ff8fff65b445a7917d8d82b4740fcb3d8c71865764901df"),
			decodeHexString(c, "cbae7b65632eea51a2418a331b366ef9eb629f011f58094b"),
		},
		expected: decodeHexString(c, "acb9a14f721eb5aa378efb4c581b2dae310047a3f935d52c187ec611ef09bd0924b429857290c69813e3257c6e141295c4c797447cf13cd53f6903ec5e52139fea40af0544cb40626af6605833839881b35886b11b740d0898ca03b5c4389cd522d8aed9a1e3d7676913625557b49cbb"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_11(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "bdb56b4118fd2ad9b059ee7b11c27811a1c928409a7db3e7"),
		nonce:           decodeHexString(c, "43f68c453bb36a6577eda89c"),
		personalization: decodeHexString(c, "9f6fe6edfe933dc0184a61fd06b272efd84a54ab37b36b35"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bd082b306f4bc5e6e872aa654d3aa82c11aba5eba3ee9555"),
			decodeHexString(c, "1781a62f4c63f16f5eb4633edfbc8b9e653538340f6894f6"),
		},
		expected: decodeHexString(c, "1d50ccd513be2a9c6283becd42a6d6ebe187d09fd05b4b7af914fda1fea1413d6ec59285b9f8a156da96e205415bf623b7e42e2e94b6cb851c0482cfcc705a3b09ee1f5a6db2d4a7b0e8e20879df1804a3f7dd03725cb01df9bcf185bfc1895cfe777a2c6b8782dc95ac91df71cb8daa"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_12(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "95ba955b8301837490ef805c00b487e7b4d9cfdbfbcc6fdb"),
		nonce:           decodeHexString(c, "26e75277374188f329ae3173"),
		personalization: decodeHexString(c, "2d90aec09ecd7f8b1f44585b0e6cfd035c23eaf8cd35acd3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6642eb07b42b9b2268ebb4c77deb8e1198b8eb4b013800e1"),
			decodeHexString(c, "57ef8a5552a77a016d7da606e2706188a446eab1c41752bf"),
		},
		expected: decodeHexString(c, "6c53aa52f02357646b19e0b356237322d452324a805d6e55c37b02a77ee9135c6b61ea6ca3fe47f67b98892015806d20580132df37c37f98818f0e42895057d83e67454f3c91fa8a5701d74433538edc1e1c1040bfe3bf040dece9e7521972970c42e7f9842f03640677d806b238ac29"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_13(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9bcc73f7f5156b43ad8e435e5dda09827aa6527b3295c2c3"),
		nonce:           decodeHexString(c, "93e36bffe4d423a1d84ff20b"),
		personalization: decodeHexString(c, "d9ffab14c4ecb7735548f2c1455d3b594894ebd3193e2667"),
		additionalInput: [2][]byte{
			decodeHexString(c, "79f393fab3becf59ba5d64c2339a98a8103d88937bd083ce"),
			decodeHexString(c, "16cc2e1e2a9527b3625f7dbe0814adcbab0a2c9d1a6e7012"),
		},
		expected: decodeHexString(c, "b142fc12823400ae680f391cb3917d6695941d97a9f15c26780892269046a4056d7e7fb94465aa90acf17ecf0d6cdab45ac3eeb67d1e8d02694e48312b246be9a77f6257924ab5ab61e3e59191e3644b49b17516ba8d98df7df2a038f97bd31b23c048cc1d4b1722d023895ff656b026"),
	})
}

func (s *drbgSuite) TestHMACGenerate83_SHA512_224_14(c *C) {
	s.testHMACGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "fa4c240673f669f70909659c0d029b2777d4ba4608035309"),
		nonce:           decodeHexString(c, "656a121e15ad6f0910c4863c"),
		personalization: decodeHexString(c, "73172975a452683cb4d0068b449943fd7e90bd173c2bddaf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "23a781948449d82ee235d0495ca48d61aeb399d7e2ea68b8"),
			decodeHexString(c, "b52421e5b0e5281920da6975ee18d74ceebdd5d5de05c018"),
		},
		expected: decodeHexString(c, "c878a886e24e20a8b7e22e41ebb33a2b6e9a0168f4c72bebb78f0955c8449592e91c6a2f1ba5554c9459bf2702e67470c1df0b5125d651facc0a9339a2b7c921a51bc7203020f085c9231b3acd850ebfef0d0e13dc8bcfecf1f9853930ecd9b262cecaff0e2bed9e3b5b53343b733766"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_0(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2a374f1b9e48284b53fa6b65e7b2c3a8f7ad212f4495cb30"),
		nonce:           decodeHexString(c, "502aae33e7d4f1d1934b674b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "dd2af86c53672c100bb856e468b4e42dc0f7b0d73e3c3ba8"),
			decodeHexString(c, "2962f344b83a91a2346bd22fab91fe0bd0b23596f9cfedac"),
		},
		expected: decodeHexString(c, "77b751b44b7816f93e024a571fdcb4f909abf685cfef2ddec2e7a3d7cacea7ef879653458d5db7398bc1569a5ee4a979f9c8c973883b2c866dc41217986abdc8c534ab6fa3f623dacc1888df1ece46892587e288fc4f07ed4506eef4775ae6aae9756a704b4ae3503ecbbe477c18c0ec"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_1(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "453da7383e61244dcf6c49ae18ddd190e1214080d01425d7"),
		nonce:           decodeHexString(c, "189b4405242d913dc7aedccd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d46ba90eedc984d542336b3625a1739a06f7ad76cbeb5ddb"),
			decodeHexString(c, "e6fea8e1a7a0534fcff5ed7ad2b0ccd87d44ac98397686f1"),
		},
		expected: decodeHexString(c, "62d6ff99a49dd80751c6bbce4012c8b6b84f818d9e5f74ebcfea24582175a6a004182982d13f4a07d692f7104da2b28d60d70de62605728674b7378a862382700604339ce4e29d4c93e37d521ed35cf00fb08c9558caf2ad981e4b14c37e29fd4ff926cc35a623d481580a51ff7f3937"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_2(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2a1a528f725c2ec6f73423865e068c5fdd77399622f58bd9"),
		nonce:           decodeHexString(c, "68d9e0855b8542b33cb8c974"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f2ee70145e3bc1a41cf0726a46323ffc84d59440e476edeb"),
			decodeHexString(c, "3b508eac8a11aaf32e5b5e66cecc55376de2ab1ffe383445"),
		},
		expected: decodeHexString(c, "851df59060efdd1e1e89145996d57f865c0904b7887dfad3a49ffcb2a46871e35b216866d1f79ae8f6b9cbaaa9e98a498013f86abc09fb73807301734214c367207d351e7256c0794702dc052ca4965e60830eb12572e5164df08711551efb6e8102b0201ea1391032e2752fecfe12e1"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_3(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "a7db1d1fd5523e296004111ceb2b67eac91ee1fad3daba27"),
		nonce:           decodeHexString(c, "2e7f522213ab9643c4ee517c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e1607ec4d62af93b705ccb88ec089d39219c964aa70210b7"),
			decodeHexString(c, "c8b628c45bab8d44f2b49428340c67e275dedbae219b202f"),
		},
		expected: decodeHexString(c, "8028d91f312641c56a8e3604fbd50132df7ef4d191f3e97d70f2ccce6f5a6718d0ed00e14b7bac235a2462f1865d86019195a796e7c62187c823192157f00cfd4c98a2722be766dff8d2ef89f616b6727be540513273c510c8d7570c6739507f2560bb18dd4cdae337e0ff8222a7ce49"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_4(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "78c483a5e54b968f81b3342d86d9250001691acb66599b05"),
		nonce:           decodeHexString(c, "5ee32e6664bb4e5f30e0d079"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "00b801917ec202abeeabf7ea78e6b03b9e785f7f36298dc8"),
			decodeHexString(c, "45c22ea281c17ada08a6fd3634d6615c018b097f7b7ada7d"),
		},
		expected: decodeHexString(c, "7164d27163e571f970baeebcb4c74e197c3fa0d93a0db0545d076654f6f64b7bea5801481bf7f6fa30924f58779a72108bc621e50ac7008dafbaddc61175645cde5e63467ccc85da3ac0a23ef565f6fdee981360a7499a9d1d6771d4a3d3f072e39566ac5252a66828d37b2c24b3712a"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_5(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e7a9e9d0c2a71b6272bf4587888c0f6fd553c542c4d4c2da"),
		nonce:           decodeHexString(c, "0b0dcd7cae761819f1b4a42e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0dff8772462c6a48ae96a0f0e843c26287fe543a30423ab5"),
			decodeHexString(c, "e9106acc0e9498cc906d0cb15afc41600e3bd54f257ed8a1"),
		},
		expected: decodeHexString(c, "421c4a839698ac3e93bf795046da5da0cb986714e9235cd96c1a21830dcf352f526adf04f1ada8eabe770280dd615105ca00c0adb8e2d548fa37ede6c4007eaf9c8686d3cc4ffceea6194e629ab41fc2271ede091233bc570d134037d5e33908570344ae33a91a5d2a2ddfd9f4b97242"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_6(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "a59ec5b841e942983eec7f3c03acc4809ce393f8397a86f8"),
		nonce:           decodeHexString(c, "a65242a7dadb5b78e979ed74"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "167cb7ae8565561a781b5894cdcfb5062233075fc80f1c72"),
			decodeHexString(c, "9291401c131b56f148e7514a7dfca06970ab07758aaa6533"),
		},
		expected: decodeHexString(c, "500d2df6741712710460426c2c1b4671d7137c3410ecc3366d124b12ea790dfcec70b1a1293c171174c5de88e8b74ca67a2173dc5036430852444e4a7b76b74993c2b1ae1b23bf0a852c5fde8de0bb753163053f8d3331510a3a54895157378e57f05ff1bb56046aa318d9bacd86dbd7"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_7(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "db38a6d0352ce5a84c42839e36f28a2b9651331330a193f3"),
		nonce:           decodeHexString(c, "1765a056a954819a7d88c513"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d24b06d2d28fa36adc5c13932f267d9790340b1421b7b302"),
			decodeHexString(c, "f6ac582cd7eb332f1313071b292c26b8c9d827c7a1e13b80"),
		},
		expected: decodeHexString(c, "48e6da10ff39b284fd57d7d3f4a7d035d0bf7c67e9149b8d031973882bb42d0431648b9f91b2bff4bb079b79abb40a565a391d306de9f18d258bbdd12dbaba48db62cc4b657df4393a607e4342d2b71681e8b3a4d693ec29841571aa7bdfa442db7e4e47b89a84f80650f70005612668"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_8(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e2c9d56b67cb3a03758ad1d959d012967291ad22e58ad723"),
		nonce:           decodeHexString(c, "8aabc6606319643aae9d1756"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "07726bf6b72b7c5d70729332f3c35488b60c3be8fdf05902"),
			decodeHexString(c, "9b3c1cebd6715cf179c422066289f4cb67d1256fb443c79b"),
		},
		expected: decodeHexString(c, "3e2f34815f5b699f3e3d565525f7c70e5a3d016596b31a1022db66e286d54b8f9d0b33b381f67a63e2c4d0b0c01aa1912ef6022ea647675e3120c755a38040cf495102a448d1a24e0f1ad89e4feb13bf99ceb522e6c5a54cfded9220369f73674ce8fa5e9fc75466bb1ccfad9a31b5d1"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_9(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "854c45caa4bc9a416c089db8ad30a31eeefb875a8cedec9e"),
		nonce:           decodeHexString(c, "229b238f05fda43798705df1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "092ef6173d7fbe83ba285d7863030b2e55f4616870866619"),
			decodeHexString(c, "c1cc56e32151576144f1f53bad44baa753d23cee1462f4ea"),
		},
		expected: decodeHexString(c, "5c92987ba6193017ee002b023417e1f3da2b16e6a07d2dc7a94345e3b2a8c7367b46a76ebd8be6c2daf9154e55dcda7612d7378f800816804ac16f5c57bbe843b0d23fa0f6720bea34bf0797e6c81a32f9fb366c26b5c09b8140ef51a7f56412ecf44b6e1b35f80b0692d620c0af2b79"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_10(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5985a1eb66c44d136691b1364852a7ab8aa9c7a59f8b1cff"),
		nonce:           decodeHexString(c, "61f3a45bf46be1e707978165"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8fae2a00f4e40c1105d9e147a5563d48234c67616ae92fbf"),
			decodeHexString(c, "e0f1a6f3d39ff1f80fbabfe9dbb9ea78823d7195b1733a14"),
		},
		expected: decodeHexString(c, "0d7c66d66e92375fc1b4d8da02353c8c55c343d7c2bab01dfdb0865e23f15bfc19da44a72c168cd1d620f98a81763f83201555fa6cda1a3563401648cee1c0a17efd86ae7d33756c518d635d4cd8dd9921098052e81833a8a2e054af3d05e6b0be9373a595ca57fff3322e30bf64198e"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_11(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "eb6a7bb8c9bb9c13cafc0c3f936ccaa6f0950c34bfb82164"),
		nonce:           decodeHexString(c, "67485bc4ac4a3c97762e8ec7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e9481922f448b56d7760e5abc7a8fda1b2c6dd0eaf78afc6"),
			decodeHexString(c, "1c395e4b395ec43e7f385af0514d7ea64b0b85c090eb777c"),
		},
		expected: decodeHexString(c, "7fd067ea549a95b7b5f70e76e686a2f9d61a5a6720b5f77a314904b3653e5f7e959b9bbe48a2fffddb6b193ef3ed2f0d2e11f24082701c83b2e824f82e34b31e713e3927a0485f3b0c1c43ab95410796503c9af3e201a7d5c36b89f04b1a7f48408d21fa008bb80b6aa14450cadf5ba6"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_12(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "b4630e1c27ee087559d02d1559925e13a4e24c22d5b69ee1"),
		nonce:           decodeHexString(c, "266237a8750d6d3f5394af00"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "65a0520a1595f6f9043f95a1b1f9985fa0383ec60a67aa68"),
			decodeHexString(c, "1624ccd7b38fb92dd7b6a95b7ad25508a20be2ecd9735cf7"),
		},
		expected: decodeHexString(c, "b13d6160c6b96697b7d723c151bc0921a5ceb8885e893e2b0278af356d61cbe1bf7dfdc4cb2cb8b4924aac495915251d0595d0300ed72a8597048fbe347bedc42b4d2015a6496f7454cfbfde80e8112f649d9b5550750b5b8fda0fb8434a5b5afce89edb0b6f696023e2ba8ee0f9537d"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_13(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "6fa1deb8e9e3c10c181d2254e5fd9bb84cd2934188f71f7b"),
		nonce:           decodeHexString(c, "6c4fb17c1e78e6ad32a203fa"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "55e9e961cc54430c6de5f22735dd6414724232a79d0ae73d"),
			decodeHexString(c, "52b8961acadf12310149a01f23555a075095e30363e71728"),
		},
		expected: decodeHexString(c, "d6141bbd4ff580df7ad8db354b0508fd1f80ea7303248d03e3f1c39cc1949762dcb22aea5de6af795471db2a57ed77ccc9573fd08a47a8ed45829a86666cb12afcb6a6c3085351f891b5107742fcc1ea31a7eb48a0bb15af8db9571c852f8c56b39a80c0e55d418f8931906b223656bd"),
	})
}

func (s *drbgSuite) TestHMACGenerate85_SHA512_224_14(c *C) {
	s.testHMACGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "13e82fe78cc31a8cd6182de5041f013bb88c8507539f889b"),
		nonce:           decodeHexString(c, "5a01e4ec918e6282c62f8c0e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "fa3bc697a6bd8ce341735365ad6e214d1e53e8d6d0a2c206"),
			decodeHexString(c, "bea0650424d1f26e75a49ae2dc529f1fdc552e3a0aa50948"),
		},
		expected: decodeHexString(c, "4a718257296a3a99f199a5a24decf8f3e6209a4a7fb0b24913393c8309826ffcd6c47208ea6879921424ca55e63a7e5bc63a030cc48be7648da78fc9f314dacb2b8568635e5b14a94bb06a709a2f023a86a871dfd708204c911d94ef3690b3634e58de03fb20091d628bec834a760dd4"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_0(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "54b0055affad0e71d23d83f45ca49224fcdeaf01f466ea42"),
		nonce:           decodeHexString(c, "c64396b801efab9220c03521"),
		personalization: decodeHexString(c, "9114711d6cbef07525c4fc0773b71dc499504164278fffe0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7f1b2869608f86a28d9cab4362cf9f61fac61acf305991d4"),
			decodeHexString(c, "e61973beaa0574dddfe68e7f2ca6ec1390063bfb628cde77"),
		},
		expected: decodeHexString(c, "b690aa03f6acb761a4f338d956167f2225479caf73aab84f064accb59240234c183a097a906afce703c0b025b0385314eb9e3275e60e26eb6a6e814ba7a9bc5720e904a31ac15d847035883798ce95d7292cf033eead3854264d15025aa8e4541fee4df1cf7615e226d1a4607ec69865"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_1(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "6e186e536fe41e9d15358db2597f287fe57d018fcc0748c0"),
		nonce:           decodeHexString(c, "b9856170d5c84fee7fc144bb"),
		personalization: decodeHexString(c, "0ca903b164456491c4a0be232472d8c7354a1171a2c74dad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6a5cb69de6fb23f7f971f8ea9f1a88d95eae40013a317910"),
			decodeHexString(c, "246452f5f59015f096fd854fb5fa032f21f9563b1a6c6726"),
		},
		expected: decodeHexString(c, "872a48dc70969f5b1c88f76d50c9aaa25b9ec4cfb1091e55fa7efed2eead1fec26fa64bbec2ad5f0b1d8e16b65fb7c28a59a1f27c1548585a73e0bcadc9c3634fe3993a24ff00c8fe07d688ff1024efdd2b2fc97fac8e61b93114854ec37f5be20331d92ef919b86c383f78f7dc1789b"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_2(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "6ac2a32f1dd17b95999f24b2acc717105f9d990931cdf5d9"),
		nonce:           decodeHexString(c, "5d0bb25aa82e66f86519e6fb"),
		personalization: decodeHexString(c, "555689475c716d88ab2e3a1f99feba9325f1b1d29373230c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ce4077ed89813174863e4103b70393f3c3326ef13936a645"),
			decodeHexString(c, "23c391d7ec13148048448cb43e5899ab3bd924af4b44b75f"),
		},
		expected: decodeHexString(c, "e3765ba7a62972a271994f3aac87f94f2862e00c8462f7ddba1f773a059f9b887756155a5b7b00d6192255ba2ffe5ee6308e26867d363bb6968329789a622ef657a7c59f5919460ad5316d9d30e22439add62651912685b44b7f80d771509bdbaf9e56ad67cf7f52c87c4bbf450e6f29"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_3(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2cf506ece0b5ee12a70d8ea99cbfa29e60b51261a1055c52"),
		nonce:           decodeHexString(c, "b646d938449fd38095740a80"),
		personalization: decodeHexString(c, "be5cd5330969bd712bed97c68425aa9e47cca9468dcef189"),
		additionalInput: [2][]byte{
			decodeHexString(c, "af11b59ca3903fb9f1017d55d5dfa3e115f1f4408c029d75"),
			decodeHexString(c, "58c9ee30621c7cd77187ae3b97a0c4b662c5f942de05dbac"),
		},
		expected: decodeHexString(c, "399190fc55f749c6c6c3aac0706036151851081a35fb057dc69905d11c641adbff0032face2b014bf78c51bfe5f31f73681b5d2c858be306febc762fe8d5630174e73804d3d56667511b232f238334e56a5e7d3a432fc9c5d8535887ce10a011f33323d32391727546bdbb8cfbd5c11d"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_4(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "928b96a549f48c38ddfd71b1e26ff7d15a8a73eb8ac2cf4f"),
		nonce:           decodeHexString(c, "f8e919552e1dba184bad9efd"),
		personalization: decodeHexString(c, "9e4c74a0ad86719fe0b71fa323458755b7cf74ce55dbedf2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cbca1bade06a9e225e29ad77fa09e198e50afb5a5440b175"),
			decodeHexString(c, "f873153bbf917594f2b3d20d0cc643ae3cb6d6b9ce29e41d"),
		},
		expected: decodeHexString(c, "04816df161de286ab408f27193ac405724402d6293f27903412f5ffc0b466683746cd08dcc7f8be5a89d0eb020f8ea3610db3e985d6a739e1d261c060af468c4bd9a1275fb43558bdba5c64a0c20d4fe9dd77cc4b240530ca336a5d11846942cf0eea57d2434568e19683772e7729e2c"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_5(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "778e93102fdb42936b697feac3620ccbbc61a16fde121eb6"),
		nonce:           decodeHexString(c, "a5fdcdf6c1920fe552d925d2"),
		personalization: decodeHexString(c, "a203f263ab77286e6a80def472bc5b775202cd607d1e6d47"),
		additionalInput: [2][]byte{
			decodeHexString(c, "05add19da67b9f4608c770dff556c0d783a69d8ba5c8e95c"),
			decodeHexString(c, "7add6db36627659939abf112cc25216fa2799a8851bdadda"),
		},
		expected: decodeHexString(c, "c06a1da094c5076e3de20cbd107b6800c7946514e45871157a2a5cfb2cfc24f41fb396120480093a5a27a017321932705d7c79c96ba851f0a82314d201b0d7fc170577e02f3dfed405a2e0ce623d7a1d5912a2ecc840015ece833de30f1556e8708a491dc7ff2b9b6e6dc4c2e49d87fd"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_6(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "075549db0d3eebf7df75dfa667a5e00e397067ebe76bfbff"),
		nonce:           decodeHexString(c, "91dc01521c3fbb72f1b65a13"),
		personalization: decodeHexString(c, "fff91043b91ae77b30de5a822e11d4f4f41cc4442e032155"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7f719aba39bf0cd3f4e5e9ebaeb4adb0fb8bebba47fe4009"),
			decodeHexString(c, "2c298c32e7542326707d4a56cd4ec004dac31c2dd5205e11"),
		},
		expected: decodeHexString(c, "f537c48589de81857f6e1f0475c465b45d5cf754e1332c8baf015c31f00f4e346148ec832d495c92d322bd2d6218df1aee3393b889364943c4766ed3729bbe817e6b9b2be8619f6c20acd4eb50d7b61c92e99fc0ae8c3577a5fe42787a699e1a7b1a3b27f2ee542cd9e2d946045b4d2e"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_7(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c8586a9f2a5c9207d0b24e5c491e56dea8b1f84a39c1f374"),
		nonce:           decodeHexString(c, "8a77ff3dd4f34858c9082d36"),
		personalization: decodeHexString(c, "ff1cabddb2b1d349bdea575dac3b8118107d9f54abeaf94b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a8a8ab52cf3cf5e3cf6463c4a7f0730af07960107ead5aca"),
			decodeHexString(c, "e2cda5c41ec6b0b425e18398fa99830339e7c21650e28c8d"),
		},
		expected: decodeHexString(c, "3ad3dbd75978b86d39f014613d43d957b8fc951ba9e4aacf5a39676d56f55801b6a413ad091f5c98713f2c7f02b1042110665226e9c9c162c5c8d3c8416aab7dab52f6429bb468d6bdd1f471cc3ae8f2da0f442bca1311cffe07a17cf94aa6dbefaa0887c13dbab302040699e2c28688"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_8(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "07a9896449003b02e3193fb6fd538724ca194bd74b562142"),
		nonce:           decodeHexString(c, "8d811a873698973262083650"),
		personalization: decodeHexString(c, "a15389911cf299d5ac71b9d17f27c315c19107e96fd746fe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fa7504ee15acb030d8fff380d1b406c6aca886b590fbb2f9"),
			decodeHexString(c, "112d4e8df30d9819eb0ad0ae236fa0edb2ff3fe342966073"),
		},
		expected: decodeHexString(c, "48caf17a456d82efbdf5a795dc491c718401c52a818bdd91a332de54495e5b82af8414b9cb07cbc2d89580892da4383589e82528981e4c74a85f9842356789e03cc9316527a71876951a5f5587e32f1050ce9fb2c1336ccc4100d9e7edf8411ce74592456e67716bd9998055fb4418a3"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_9(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "895e848b2df83f81b22237c9594946be109f81acdd5e782a"),
		nonce:           decodeHexString(c, "370eb1fabf1e5464dc86d3ee"),
		personalization: decodeHexString(c, "d1d99dbf06b56a97e6da7efc1a07c892a7683a1323ce67ee"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aba95292449651edbdffcd0457fbd40461c9527a30e09c5b"),
			decodeHexString(c, "bd2acef0b5cc32572ba7b98dadf9c7d05f75f280e48c863b"),
		},
		expected: decodeHexString(c, "2bce5a2e7ef91b3510b9af12d13eb304c7f3430d57ac1364aee98a7168a81a0b7303778d3f92659eaf9a518cf1f2859d057fabc2ace9f40ed6e676de79ae3d111e3e1aa8ce67a99e77b3d6299a3c0ce89851026f27b2c6b1c9e0416e03111c53e3d10446ab2826211e7ba1876c486495"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_10(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "764af072496b6db165add0985d9a431583318b0fef4dd7b6"),
		nonce:           decodeHexString(c, "2b91490376096a4156d5fa8c"),
		personalization: decodeHexString(c, "81b7e8d587e4cf2d2f486cd46761e4fcf7090510f114be5b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5a5b16dde8d7f39b3df2fde22170e784b3d3dfb8f9e0194e"),
			decodeHexString(c, "29421eef64356a90b793493c76d339713edd13fbe872171a"),
		},
		expected: decodeHexString(c, "5464166d69ecd2b4b59a6b17997bfcc77e8aaa3f841681cae499e4a9b7e45e2112d36824e61cd06835a5ef6281aae377efcaf837aeaa9cd9203d273adc89e8c3c78ab3553a341ff86b575997ba31939271a0d04c49aa9d59c4c0cf2c4755368c41074c16fb1a95bda2521ea45142a298"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_11(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "043179c8959545b4d13ffce89d0b79644d5417ddb1188da9"),
		nonce:           decodeHexString(c, "3aa67c89993c389edfde4247"),
		personalization: decodeHexString(c, "eb51d748010fd54e65af7902037c43f7527a04ba40ab1868"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a8190567c3b9a5af01bbc43a1139d8a23d7e95757454ca3f"),
			decodeHexString(c, "44f0eabc18f76834330ffc32c35cff6a46079554ea3e5ddf"),
		},
		expected: decodeHexString(c, "60bd0c67f08470b637c913a729e6c5644768d21f83fa632a5bce1725a2c5cfffa3460ae191d6fd37e33ce15391d3276202df55d4254c0907b62a3cca113353e981f364babdef9a54064aad71ff75b33879575c4cd4af0671223738c1bfed07ea564cce32d5607a299a747049832dfa58"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_12(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "dbe412856752a4fc1759b5aac831ebb146a215d87abca852"),
		nonce:           decodeHexString(c, "4b88bf08e289c5115d8bae4a"),
		personalization: decodeHexString(c, "e2de76ffd60730606b6ff456e3514128c9914867568fef67"),
		additionalInput: [2][]byte{
			decodeHexString(c, "62fc2611e5a0aca6e8f2b30a8b131a43ce558a2d17eb795e"),
			decodeHexString(c, "dbcd64f2fb49e75b1d6770516672005f467221e8b1cdc5cb"),
		},
		expected: decodeHexString(c, "eb8bb1bf2e123a4257926bdf35b6a63175d9611faab63aa8977b2893fe7177a17a861534dfa92f724ce05bbf5b7a3bc54e4927706201c128ebae396ecd2e54d1fdd4f83dbd51c2906dd9b23223b6175c97bdcdf32d91464047ff620261b28729e09f2a97b6232e4c178e60511da5d42e"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_13(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "bc7ecacad555e18187331ec9862e76b9aa4e5f3d119967c3"),
		nonce:           decodeHexString(c, "979cb1877e39b0248495aac3"),
		personalization: decodeHexString(c, "eb815140223ee40bfc94638db0210c23289c7964e6f25242"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e644ba98382beebe2215e4b7dfeba6acfe2bfc39f583a412"),
			decodeHexString(c, "799ded9bb39308482b40f3e4a0e8acb373fea073cc98c557"),
		},
		expected: decodeHexString(c, "02398cd48a76628f99f333d3497eabf3a12c0566f1b2a82fbb6a9657b074c0073990b426e2a2d3f77e7d1db534fa2f21f9b909f542631cd00bba24fd9644310bfef5e6207c50ae74f91264b4a9b7bcab01f3af3c9aeb6c4a8ce8e10a2a84ef48a09022c6e6684308635942d0e40afd05"),
	})
}

func (s *drbgSuite) TestHMACGenerate87_SHA512_224_14(c *C) {
	s.testHMACGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3fb640de81434ff8279f71dbb75b13f6aa9fe6c4bd42ca8d"),
		nonce:           decodeHexString(c, "ffa558724a7e029da8ca5313"),
		personalization: decodeHexString(c, "0a4f559dddf77d5e9721b5aab4d30383f485cf99781482a8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c375af43c11115e995f47212f81cf3cdca5801d184d82235"),
			decodeHexString(c, "d2eea45f69c6d82dc3a7bb3be69d595c86c5ea5b4aee6001"),
		},
		expected: decodeHexString(c, "907452bdf42eb168195313eefd090a2fe1be8b668b8ec7153a4ed4c07e6979244282e976decef02ffd4fd92b0d7b90bfc453cfd81a823dc162dde29dfa926f20e395d7432e0aea61c72e05c1673180bee3b47fa171cfba98864fc2bf83878e37c7dc019d465788aa1500ab3db8997d3c"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_0(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0e6e1cccb8e464dd9a13ba91635d65825f7822f6b2e442ca"),
		nonce:           decodeHexString(c, "ee334b65e55abd2db6a49cf0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8513c7d32b08dcf7e405d69d36843a3a2e78e0634134bf27"),
			decodeHexString(c, "7f924c1464e9b4ac1ae742d798ba819f2baffeb7ba961a9c"),
		},
		expected: decodeHexString(c, "dc99d95f008a2374a6c3cea046f814078c420163db30ba1a976b6b1cb15dee69652032189848e623f81c5ab55019820aa61a6dd971d5804bd412db5a90ef3c9dca46d3000d18e99f06e7649eefb8f0b94b764a089daf4e7c0549c52b6a54d3873273dd3ca9336cbf7b42109332030058"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_1(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "453f0245024d4e57bb264452a8e6614c367565883c198567"),
		nonce:           decodeHexString(c, "8f5879dec21ac15c6945613c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "89c0a5d097052a8f89016ec8762e2f3613c0fd967ce24aaf"),
			decodeHexString(c, "3c333b324af72cd05c8274dc44e3fabfbb1d8892a40d75fc"),
		},
		expected: decodeHexString(c, "3701769ae1664a69ccd58cb1106e7a9a71c2ec9ee889a997078c313c3b73fedfdc3f4a7cf14cef8a0b09a51ca1a27e3e205a1d55e584d63db83cabce33bdacdec715a98e03afb2376100c5b7a26ad35f3de04915e9f307b081eef2e9cc638aeaf3702de6ee94355dcb3da2f910b9618d"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_2(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8d0da6d15d7478ea1acf1c73c47fe1b5e825ff297e8174aa"),
		nonce:           decodeHexString(c, "558a3c84bc80bfeca60c57f4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a267da03894381f931a87cebfa13eba71a242fbdb94998f6"),
			decodeHexString(c, "b8853669a2e9071f1258e69700d3abef8d2078e86536b6be"),
		},
		expected: decodeHexString(c, "1ba4829e43fc7cedafb34da95cf78f705be85e0a96f323b9daa27c14c56844636023fd4967a9e5ed794ca06873879e7d008bbb0499c166e985d252ce938ae6d942b6f052db77fda59f232f74d72bb8054269ec1a04f614638d0f7797c2a79ba5cb3ef37d1b5f9cd8e7a45c870b634779"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_3(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "125e75acc1edb675f6ee035a2c7b4b02d60ce6cc26957010"),
		nonce:           decodeHexString(c, "bd4d4620804a3779ecb20333"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c0bdef842b3127324d6d78b5d4d84661aecadf326a71d8bc"),
			decodeHexString(c, "26801f937a23856721a18e10c506267b8ed0801cd6e0bdaf"),
		},
		expected: decodeHexString(c, "58ab6980c180d32c1eddc0289cad603628e578b771eb6d58fe432f4f9d6808c4ac38fdc0cb0dd44f7c1aa7f5909d62e1d0c84f69f29cacf711521ac7a58ef1db129c54a292aca92a8337c0a5f87539d3a1fbfae207568fd7fa89aae52936972a8bdeeac4b5966f5e8d23aa99eea4a748"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_4(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5a40002e4e008d84afaaa4dbd899eab9ccdbb411232fc8bd"),
		nonce:           decodeHexString(c, "112b4263fefdb2c8fe0fb17d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "db54fa2732fcb97cc5567418ce0c5746c61aab8c95bf252f"),
			decodeHexString(c, "853baaa33146a9ef2dc24116fb51bd4e47366a916d579255"),
		},
		expected: decodeHexString(c, "de1e72076639ca9a60a679083e97bad71fc528a114fd0ea019b32834d1a00851cafe7779fe56b49cb6d055a2277c17957e75f0d826780b24a3b2fe00bb9e8dd7eed0ddc037e62e9259d04577321d3b11860b9aa0a1e20c82076a0eb034de10a6190e87c6cb402226cad5d7068883f0a6"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_5(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8902e5e69ba65ca55ce35e89b1967ce313d46fa5897b0718"),
		nonce:           decodeHexString(c, "246d4710654269768b35b2bd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "df40878148cbb395bb2955b2d4be6ae5896d5a85228bda4a"),
			decodeHexString(c, "19487b55132cf08898bc32c4cfec04de50635f781d6d354c"),
		},
		expected: decodeHexString(c, "39b901dcc914558c45b7a85f6dea0e1a0ed398bed8e182bc703e3473b1967fb7d58c30cdcf47c9cdfce83c79e9457875c549def68f3bb91d6dae891bb558ddbc51ef499e1bf510fc1ee5a09f454d8dd68ba6dd88a003319debfa3bae19e255c6ee8625d0172f8fb396d7b9600f44c9c7"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_6(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0823d9b62ca3961c4b8ecdc13877076d1bc9a97d953418e9"),
		nonce:           decodeHexString(c, "cab41696618b7e6c601e35c5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7a06ad46cbfefae2a68b1cfb4ebd0be0cc2f132fcfc66507"),
			decodeHexString(c, "487c4927a71b6d1d389fc396306d48d6cea06d440ff68715"),
		},
		expected: decodeHexString(c, "6e420136ed8427c8cb45fc75d3bf95896bc89b52c12ca6e1fae7853d98306880b62b0ce42d5d07d3c0e4df8692f5fb23e00abdc29c76dbfef999b3835db2de577d50bcc49cc6b13632bea0bf1b9eeeeee91706c7a427d14625730da21fd0b71e74efcb207d5cba53cf98c57a4c7ec5af"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_7(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "ca3317a230007266f80c76c3e123b8a6e72626d1281507c3"),
		nonce:           decodeHexString(c, "30f75131e9652b4eff521c63"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e75fb0011a8e5aa7da95ff3aff5c6d425daeb2493810d895"),
			decodeHexString(c, "ae4c746bdc9aff3694feeee3195e7b3bb85f200062e2cacb"),
		},
		expected: decodeHexString(c, "a6bbbc9faade4da0213c78f2c2c89939a18eaa4b450ef696fb1d58ac884c87ffd719c2d50a5108c04aaecca17aa521eb44c65d34789a93d8f099e84f4767f61fc0f0065bcedb78881ac130b1d259f51eef8cadadf962b29fdfaf0aa16cfcd46c6df7c3bdf9deaa70db7e049f42a3ac5f"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_8(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9259c798b6e62343c61e9407a2c2a9c1f2457675f4d280c3"),
		nonce:           decodeHexString(c, "e429d3824c018d1fee543f7c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "901c5fd8d6b39c2f51fd61028dde69781f7cd5327ed53010"),
			decodeHexString(c, "77ba8f47bc6407a5c696e729056bc1232644a40b4cefcaac"),
		},
		expected: decodeHexString(c, "f7e6caf28bd9afe00771590a476270131e57d602883d4dde9d30cb4dc1d07a8a41626174999c4f13d1e44cbff77eef6dd0d2842f404d87544423f01673c93cdf4847357c6a70b45442036a8147501a8ad11bada963352a95cd9eaac8a883347c4e20f4fe0821353164c0a4660f719155"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_9(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "eac11f37733207819cfe399de3c7758221105acf2e56c127"),
		nonce:           decodeHexString(c, "0fc0c2200a446d20d76c2303"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7388250f4342ddf093dcedc6969258ca46daafd367311d63"),
			decodeHexString(c, "28692218a9cff95030439c02774cba5f128d731e554ef7a5"),
		},
		expected: decodeHexString(c, "df0c95c0afd6018ae5700ce083a4618154d27596dfd7d3a81fe652f89987ae6d45cbb13d1b29d4f26891e735e0cce06d7ac4d3d8387d1193759cb4a72ca388007a2f8d631e15dec6808e4a270d51a2f8474781a34a8f0677f49c6a8488923e495272d97fd6104e3806fcb4eeaa6d2034"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_10(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "daa498ffa9f01126e8730143f45ab8f0a3d9b1752a2eb11f"),
		nonce:           decodeHexString(c, "1a82eb2b88fd118c3c29039f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "53b461fadf4462428dd1de81f373faa88b54bf8fd33a0ccd"),
			decodeHexString(c, "835dbe0984eaaeef6feab85abc5229eefebdb40b1f2fefbe"),
		},
		expected: decodeHexString(c, "44b08d6b4048ed246004851303f24cb6f3c3f9cec28598a8d75467090e304489380f35c494356bbdec92f645c695272d9c14b4d8ec2244d4da0e4b899e244ad258f9c94c47b09d522a8ec637dd6c25c4a7d710b163266b1c6722bb811136148788b9f3c9058cee41f69cb9348161638f"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_11(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "4d48741a39422fe84c6c89cb2dc3c9c0ac17841993b6683c"),
		nonce:           decodeHexString(c, "001e5f39ed54a12216b035cc"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2fe05cec456217b82b6feb7184d94b6afdb6e9c1170ba0f3"),
			decodeHexString(c, "f9c6a0076aa46298ea09dfa3608a7efc62aedf91abd98ec6"),
		},
		expected: decodeHexString(c, "49dfd444cd197625de0b928fa57bc23670e8f1d084f19da9f8602e56d3090495a7cc45c215388816c7ba25aef2fa661dbe27e59632e9dee092b86e0aca0e335cdc9f86308e32aaaf19b9646d7947dea97ec856c873c85ac2f16473dd2a2ee9f4faeebbcb009e5f20403c29a422f998c3"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_12(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2739a0a0020f4cfd86cd6d0f4f2a46c5ea88ce2e7ea4fd5b"),
		nonce:           decodeHexString(c, "6ac143a15a0a945f3004a325"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "048590374d554aa89b26d1772735bdc1a1a7bd82ab9742e9"),
			decodeHexString(c, "2062c228e3084eb84ca1aba4da82b1ac9556439913bfc7ea"),
		},
		expected: decodeHexString(c, "ac9482058f041f51e8b1ab2dcd6ebd835d64c04fb6047b925b95dd3ae93bda64f0139b949837a138b4fca403a8ca8d91dd5fe05953436017a1aa741de13df644f6104cdcc1e9b10f50e80a2a75bf434097534af0ba5e5ada6cc3e2529e91c2a9398bdec97360baf1a2791c14875e6a61"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_13(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0b87675ae4b4691225484df9b2e18339f77a20f7e80e85b5"),
		nonce:           decodeHexString(c, "701d430e1df0f941892b0a05"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ba93d17624a2b25e6112c58994cc7ec00d2e53588ff18b89"),
			decodeHexString(c, "328782892e879d5e314b989f55cba533a4d13e883d7a19d1"),
		},
		expected: decodeHexString(c, "977b945459a0309a767882379ef9a7629209f3f724ba0f12c9d58f62890396c4c6f5fb8bdad336837afb932493cc45f23143bdd89b3a1c801de2b3241c08f4c219e77398abf32361408b3ce21236e4059001b89536ce19405d01b73ae163f7f06f2dcc3abcc6d712dee466dc9bfb60d1"),
	})
}

func (s *drbgSuite) TestHMACGenerate89_SHA512_224_14(c *C) {
	s.testHMACGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c90d2beedee0534de8df54dfef40729c5d1dc00340f97514"),
		nonce:           decodeHexString(c, "43323218555c85907739ef84"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9fcab4a8d0d1036a6210d56a894f861fbfacd4b20c081f38"),
			decodeHexString(c, "e279bf650f812b8931662e59a0da7ab799c193da1f6eef1d"),
		},
		expected: decodeHexString(c, "b3ec81a3cc8dfa4e1ea17d33566a4444bae9969244e7a8970eab02afc8797b5fc85b6614ab009625b81fbe078bfa4db78ced2d8b3f1e3342b477a3fb42cec7d44546585621bb8310075808aaddef32ede3e668e626711fdfaf2569721bf645edeaf74a9826aadf0a9cea9893aab4fe3c"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_0(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2891ee8f8e9a1424c183cb264c9d54cd9464dbed4cafd92f"),
		nonce:           decodeHexString(c, "a82b8b7261f27954c0b2b905"),
		personalization: decodeHexString(c, "a79122352074d9ddd47fb38f2999c554417f916ac91b6cc9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "73975cec7ffb76f0286ea79c31dce922ca3734bc97d874e9"),
			decodeHexString(c, "b06421eccb0a8b1f229d2dcf37e7307e7e3c8fe25a60923d"),
		},
		expected: decodeHexString(c, "b3dfd82549ab620b7dbb18839b8905e3c1fb601086e56468e4742107d0e7b214a32ffbeff55ae242828bfa7c7a17a58d975c5d91f2d6acc8e9c0c1bb57a5bd0fddc868ccbf32dc511f110a6eb3ec7ea15cb6e1ce7c083d46eabed92df15974533990bad0a3ea0068b201c736cf17356e"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_1(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9399ce75ad8bcada260628d1d8d19b71b6d6af06e37e9eb5"),
		nonce:           decodeHexString(c, "d9e246bff1469a14d7614802"),
		personalization: decodeHexString(c, "84938b4eb3417b6e63bc23749cff016dbbb78131d9a5ffe7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "210d043b33776089b3193dced4f9834d1756156a7c99a487"),
			decodeHexString(c, "3859a8f5b27553f5db49218a1826040151cdc3cde86a6a20"),
		},
		expected: decodeHexString(c, "2f46ffbf97ec5bb0e2f1ece66f034071d6e38944823a68772f1e02b9d1b2ee1fe20c2c342e605bbddd3466c90418c22525a9539c970b6ce9b0a76a89919d2775e47cb33cff0c1c2ce7b2c33313a773da42a18f9bbdfb86822b928fb531a42af0bc7203591ed3d9dcaa52a4771ba8aeb9"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_2(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "50a6d462ee7f36daa3ee1b6f910df9a07b43640ce1d93e64"),
		nonce:           decodeHexString(c, "05afb8ed2774893ddbe9163c"),
		personalization: decodeHexString(c, "6c08959591929f7f9af2bf2b10ce18305187400f25de9cdd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "358b3d23ff04e2c491f904faf2de30a380da7f839e610556"),
			decodeHexString(c, "7d91a483d805df00ba36b8c9a0baf88fa95a99d17665e1eb"),
		},
		expected: decodeHexString(c, "c8a9306234df08b0d54150e0d8136a8df30cbb0b754d4e11419b2c5ce545dc442f92046c5a68899e6a0569eb2565eef33be88eb9640eebdf17b48224a74519cb5929e68c5d853da4076c769a92339f23f1bd9343943474e0efe942f3d73f708033b29625f74b1919c7cc41e70dc6d6c0"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_3(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "698b942cd87ff5192b4dce92a595ee5aa2058f0704ba9d1b"),
		nonce:           decodeHexString(c, "beac1f46b3c96d3654a441cb"),
		personalization: decodeHexString(c, "233f706c7386b90fcf0b4a675bbbc31b8ee944505c209064"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9a8de8fd95b9c033fdfa872694c8ad6a8244b429c8988a25"),
			decodeHexString(c, "b44e0590396ab432ade092c965b45e499a39f4c5446251df"),
		},
		expected: decodeHexString(c, "662cbaebf6f9f7f97b4fc9e5886c19475b88c8db65c2b23950814995178f13ab1609ada4969bee61b1be6b51d8f2a0ac1ecd240a75654f36c8dc4d71077498216080f195309df7a7f09780f27cea43ca02dcab33dd7f9127141c5fcb59d9777fcf78e1740b04c8cfd46b2407ce1ad6b5"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_4(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "02757cf3f6b0030a78c6ec4bbce3a1c5ee959fa2aaaec19f"),
		nonce:           decodeHexString(c, "dd2898b3670f310d71997b97"),
		personalization: decodeHexString(c, "8bd4bf55492271edc261146e47dade3399dfd3b78167a644"),
		additionalInput: [2][]byte{
			decodeHexString(c, "45a7e6ee6bd799a59e8c21189e75f32c808b8893a0842475"),
			decodeHexString(c, "d5e39b3d9410fd9872cc44bb4ed94bac0225e68b8a68466c"),
		},
		expected: decodeHexString(c, "4b111c654914d621dadff8565dbf51fe83cec43cbd4836cc760e3c9541a0de5b19e59198724256fe2463648f136d288ef19c786c0358b7788fa7f20a2c33e568846e07e769c19dc3d2c51eeb970e7284530006a6d7b0eebb66e81792be92e7fc22c685ee29aeaaf127276b072591a5a2"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_5(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "30b17497a71cceb8fc39e5858c2c6640790ebc77873993df"),
		nonce:           decodeHexString(c, "d752fdf1195c843a1c401963"),
		personalization: decodeHexString(c, "38b848e8ade794908e65fa23989c7ed0fc02d9756518db46"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4d527b3b52061ce6276147e2c1ff7a7bccd8a55a67ace5fd"),
			decodeHexString(c, "d6e9b8acd134b93c8dc252831a4c729af2ea8fd1929d5e50"),
		},
		expected: decodeHexString(c, "527bae9a529ba63b5d3ad7389829a2aa8ebb2bf1302e144c1f77e353bc6b6d5563db499a7bffa6b4ce71b8c1195d0f1db230982a4b27d7b2efcd93787ffba83fcf9f0d1f6a7001ef5541d705c4a7d2b1ee41d811bca511633ae813482581a8b54464cf6cdc23d69e5a4458efa750acac"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_6(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e39fd3856fe6926891693fc833c15731af4c850379ef1dbb"),
		nonce:           decodeHexString(c, "6bd4a0472899bcc60c2cb614"),
		personalization: decodeHexString(c, "1438d90343b4352949170a0b9e89dbb96a125456b790d18a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a3f1ac9cf8058ab0bf2d940ca894fa2559a036fdea8daa92"),
			decodeHexString(c, "caf58b3c5b113cf247b70d2317cc787426d6d8fb1371515a"),
		},
		expected: decodeHexString(c, "1f0c23fd30be385776225fd53c07620d7017ba85e7153f63cb51dbf0ede1b1341c920af9b29b3d6e18f303b714daa6ea3e08e5e46705952975552275431b4f75e6c66db45c563e59e168e5037d80f921e62ce8cac2ae47ff54e760161bcd056e0244602fd0c9dca49021ce70f9c956e9"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_7(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "4fb152ce37c6fc80a78c3781644a27530178b6e7c75c4827"),
		nonce:           decodeHexString(c, "bdfe338ecfdf2cdcc9fc0da8"),
		personalization: decodeHexString(c, "1bba11ffb258cc0649932de2f3642a60e11693d936173714"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b3d577df24790d495ee82361008d93e3ab09156f4cf44ea"),
			decodeHexString(c, "728f6aedc5267af2a238b48a613c7a3fd697ae0e94857f36"),
		},
		expected: decodeHexString(c, "60b51017b1b016c7363f1bdb3bc4151ed94b6e5766eb30faed3701abd065a5ca1f72fadf2906d2201e006a216b5e6d0c4afcad6f3e7e1e4d6ac0825d1343becf798853ea4256a5d381e0b591b1930bae985d357c8f9d2ec87fde24c37a1bc75d369ee72792dce9c297572a797d8bf811"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_8(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "59fbee059caaff5875717ee7d52e46bd7d80505d6bec5b01"),
		nonce:           decodeHexString(c, "277f895c18453b73df2f2639"),
		personalization: decodeHexString(c, "32ba9bf2907e26e8958f62fa53d3254e31956b5110f1cea7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "899af98474de852c8f46705afc08cd3bafe598a40574f918"),
			decodeHexString(c, "cf4344671516acd9c62506cea7058cc2d8e201759804f11e"),
		},
		expected: decodeHexString(c, "94ed6d2af7dea638934b81b7c5c6f6b4658d4a5314f1d70fb37c05f0465913af202528edd0cf7fe63784f88919390035e24b1943ac2ebcfecead9ebc30d731d545bb52337dc063bf8639498402c4bd21c16219f64e2e9bddbbf3aeb7d4f93ea3ce549622529386d195c57084379b9ad2"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_9(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "df82c9741a768ac1d4be1831c7e3f175460dbefee0c922df"),
		nonce:           decodeHexString(c, "53511f0c8c0c6a999f9e9bc8"),
		personalization: decodeHexString(c, "9b63917fd7815a0d67aa68d833a01060993bfed6fed2d8fd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c4ec7ad2d5c2109a7b25a329cb0663cb1824767eb8eb9777"),
			decodeHexString(c, "a3c15ee9cc6f89adc9e1ba969de4acf79fedaaef1ebe463d"),
		},
		expected: decodeHexString(c, "6751e7f05c541f00a09e7a926953c0c4ee23b73267a5f734e5ac3e54ba2d42b5db1a560448a5597bad31b8f5701b8e15755afd8a2bd4b76793760a9d2f30e7fe2b6b565d9ab96f9d64f85f57462812b7b080139437a27c43a92a168005f77cadb863a7ab1f21b6a8eb15bb1791027bd7"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_10(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "65ee272214377e79c8a545ac8a20f9d6e609e50dcae34efd"),
		nonce:           decodeHexString(c, "35484d4af54635300e886606"),
		personalization: decodeHexString(c, "128190bfdb50272816f8a7fb5bfd4d4dd00fbbdcfdac89fd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dc342a6f15575abdb07b25d0e1707d2eb89509f76fea8008"),
			decodeHexString(c, "211931ec67c836257a6a6dfdbde45046d3e26997ab6ade3c"),
		},
		expected: decodeHexString(c, "e03df89ddb33659175d5fd22f060966603856305a0f3a551f89212ec4ef7876b2368614cacf4fd020e4ba784a553475eccd28272a166b744546c6aeae06fe414768586519498be880049c4a0a406e60e3d3d9c43183397965b702a50e2172ae89ee71966284a38c661095b576809e269"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_11(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f8f7dcd5a45e43c9d3ef1b519a6a260390aa7c9b837d3898"),
		nonce:           decodeHexString(c, "d8d35d1d93c5f5b9589a969d"),
		personalization: decodeHexString(c, "cebbb4167c12f97f4249c446f4701c86b2d284e926418c6e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "33089b1efc4f06682e6958a916c273380ed30a2bae88572e"),
			decodeHexString(c, "99aa5f6a03354674dfbe04437f2615517d35a28ec7e2d3e1"),
		},
		expected: decodeHexString(c, "5d10d30afb90eea8aca1aef1d92f4c37674e1678a0f4c6ec59bd9f2ad680bfe681ab962020bb85dec6671ace83d7209542cad3fb48bc626bde9124dede8cc150fb424bb80d70a3e59a70f54d8f7a00544a0db50ffcf1282ad10a9e7d508cc4463e0db19a8e1878d5232b182dd6e1fda7"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_12(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8bc136d3f93874f55fcfbb6fe2a4f528ccf158e984ec39e5"),
		nonce:           decodeHexString(c, "6325f9050c4c3ea4081b3cfa"),
		personalization: decodeHexString(c, "8d05b3d6dc9757c8131fab9a6f4d4c3af5a9b0823637a242"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aeee1bf64f9e415228c62e36c69a7c60d0521208f4a59906"),
			decodeHexString(c, "58324bd9c86928f5e49defb914b3f209059099854db33d7d"),
		},
		expected: decodeHexString(c, "3cfa71f9839605690bac7b7123fe609900959dc907b0141f3f20f4a4e17e11c5295cd464149b4c95bd5596436bd7cd95025cbf97d201f8625d116d1ed804ed4a0f51d7e9110496181cc4db44499600dd5f6681886727b48d52c9dbd7a2850975ac2b781ae483d4ce4f824f63e5589316"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_13(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "abfe395e9180383a31d98a05f7ef285fb89d34de25ed5dbb"),
		nonce:           decodeHexString(c, "3513527ec8ff87c6c8c38719"),
		personalization: decodeHexString(c, "5b5f87e814b1fab63b9a46e49b156b036f9d48b76f02a74e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "74bd4cd14c3ddd3b9ccaa39722f8131d6359e40a473ddd3e"),
			decodeHexString(c, "2f936d9bddd7dde3b1b6f930acd1a473203a2aefccd8492e"),
		},
		expected: decodeHexString(c, "ac7f40ab8cf0a2bf7c8e45bca7642bc178d367cca85f9f08d50f14dc29fa87d0d63ddf7a3bf8b54adf479e06ae6951e849760d738c2ff70162e049b9d43ff218f0b35b6949f2cd10390f59e8787886a2f78f00412b44e6cffa94776d84b25c26760edc734fa166045a756ecb725e6554"),
	})
}

func (s *drbgSuite) TestHMACGenerate91_SHA512_224_14(c *C) {
	s.testHMACGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "67790fdbfec284deb88c22003b3c89f253d087987698927e"),
		nonce:           decodeHexString(c, "99876a4250b7aef0158d6c74"),
		personalization: decodeHexString(c, "196c43bb6e6c43fb3c11d5b8b24c61462f9947e5c3c32b39"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ec35738bedab1835d07ec7a6d9a5e6e0bf8a3283541b3216"),
			decodeHexString(c, "689957f9c2c58f1ff34899bd0c295bbfacdd149ab378428a"),
		},
		expected: decodeHexString(c, "6eebecbac4dd64b170cf6aa84788f643755ad5c6c731b63bbba3b2bdc2694f1fd42fb077b4309a0cb09b5ed1107fee2379272351ca9221069530762e4c8ac4c142c30167a32ac2b82b728d57bef95d620cd1b7a2ab5c1a6fac2cc90e0f6cd003ef526485c8bf0dbc9baa7c1f0d6f763c"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_0(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7cd0ac25d39b0f4819498fad7f2dbc83e9c4d73d0664c4e8"),
		nonce:           decodeHexString(c, "b2d4ef38e3d037cf62ebee9f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "bd78218cebad956843f549e61c2a7d8f16f763f6482b9294"),
			decodeHexString(c, "ae206217ad5e88a9f72845c7aec800162e9273e08d91f53e"),
		},
		expected: decodeHexString(c, "e399fb7290f60a64a773fa98e34d0848837df98c39c3ef73c6b4f7440ff4bad9361e3ca54f2c2c8eb1ec589ea98076566154444e7927b74894e3c586626d1f8271466dd46acbccf7f02bb88634baad04d2771b7fd8367fa7a7a0d2462380509ff82d025b5c8c3bc56a36ad60632454ee"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_1(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2ff9f57e31f09cf62b40907efe5ade5dafae434d49b6a5e8"),
		nonce:           decodeHexString(c, "9384a11b7d9323770a0136e2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8c8c191fbc1402fa146f744b59f2824404ea6eb01eede29c"),
			decodeHexString(c, "09413b38438d354f4e0b412349fef34ec4adee658381aa3e"),
		},
		expected: decodeHexString(c, "a34de7d42460b7cde46c0a8abcac8b2ad099280e7b616219faad831337ee99bf06e2c0ea2dcb4c5e0cdaa485f7b70a48e4ebfde73fff246aeaed575ce23ad8e14daa30fd1c9ddf46f67ee8d17b18ea0b75fab38db8224a7446020bf0da8d433f75b23c710d7fdbdebbf5a2bcb547d3b8"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_2(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e9a389feee1b70f0fc61d24ed2454d994265681d890a1803"),
		nonce:           decodeHexString(c, "0ff859412f4f70f9adb0f26d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "22d9910ceea75da77ef610b5c8bc4c6f8f1f4cd4eaa3255b"),
			decodeHexString(c, "392e98ef7b7301e6c02953e6353308d5ca58c38bee9da865"),
		},
		expected: decodeHexString(c, "3d7ab9debbe8e8b5f09b13f8a9b40c07a0536052a44dec8c9cfed28eaefe05d4130abe437c6ac23625693fe92f72f3c367bc48d1dad2802009ca9940531ddab492d271501d3e29fedfd9682b7ed2a8d443f253ebd3c4a6142c7538cea9f139d7bb24a75c8565114c5adc9645ed498588"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_3(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d8634616e8c49d23d6d8ba13298eaac1cccdb54b7d53c35f"),
		nonce:           decodeHexString(c, "84f7e17bf6a05357802b305c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ede091eaf75e800cc30aac3a31e5278abd5558adba22e245"),
			decodeHexString(c, "ce87423b19fd9ed44430b66e2635fa02a169d985508d21e9"),
		},
		expected: decodeHexString(c, "36adfe1ca977a2a98d01c22599db8113e6456b6f187076b75406711f08f110aaf848c182e2f94f71981cb3be96c636fb309409dc72823c81cda23cc1053ef686a8aed3585b106bfa6b2fc8205d1b2690e18b7c726997bb1588fd67fd5ac7df42288d97fb4d8ac18f0cddf5225611a82b"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_4(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "be138010ce76c21634c2ee7238f62c11ee4f9d73594bcaeb"),
		nonce:           decodeHexString(c, "867ae2fccb3f393413262cba"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "765f7711577bb646002e8eca1d4d176e67f043fbc36e35d5"),
			decodeHexString(c, "0da69681b3d142bc24d0d35873823c1c9f2832d150d749a6"),
		},
		expected: decodeHexString(c, "deb2d52011ff756ecb86777250182c6df46a9f80cf541b4ad08300cb4d40d960f019a34c13d2941ce61b78bdf27ce14684e8a712f947076306b3701e75b1c8177b511f6c9c6fb0c47dcb8fa57851a551eb3eceb935e64a98021d77167e9a17988868aedce2203c042387783f0dbddf44"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_5(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "20522bf3d40aa4ba46a29659d6104b453c185e67ad6808b5"),
		nonce:           decodeHexString(c, "a6c0e5f1786ceeeb28c103e1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "31a6367db8f006da27b1b738973938f58a3d90a1b840deb1"),
			decodeHexString(c, "8ef1a71d781a600889f3617a26f48fa3ed9c8880955b5c1d"),
		},
		expected: decodeHexString(c, "220cef1c9b6434a27e1fcdee79a52331447cec09692cf81e59fd7db6d002aebc54d7db8a1f9e098b04a1e38c7c77ce8c61650eedd43be3cfca4e61c3f75ed2e280f17e2a05c6e77e7ba8c9ff91d597aa3eb26f0f7d120ee303a5595330f18eedd75920cf95c0c36bda6cc215ff832c36"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_6(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "596aa1fee7fcea366a972188c27eb0e268a798de4dfb52df"),
		nonce:           decodeHexString(c, "811b64304324b06d7cfdebb2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e9beb6e075529b9ffcac6e15809f7900951f31d2255084d5"),
			decodeHexString(c, "cc6006c354abb033df3031efbd52f46f1ddcb402f93d8599"),
		},
		expected: decodeHexString(c, "f1e9a56422d3370830e912775ad4b2e1a09e5cc41932332bae778ced63c1db4f19756cb0f6acd0f1db1da0e6bc3c3bcc5e43eeb789be2accd6ba9aefe80b854e968aec0f5eb14233005a53f105b007f115308ffc56fd302d7654f302d00613743e494af4682060b33e609b03f0e1521b"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_7(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "deca084ec56e1f704e7c8a237cf20c97ce915f2a4f249265"),
		nonce:           decodeHexString(c, "d1e93bf0c3bb22680c67d835"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "18e4429eeeb6990bb0c53bce2d922bf103e9eb8fea583b5e"),
			decodeHexString(c, "4bdf70e86332d2549111b8f1a140c12baf6dc834faf481f8"),
		},
		expected: decodeHexString(c, "bfce1e88a86a96862cb62906641abe91c135a573fffd66b1bc3313c83a031596cadc3b7333a55431f3b9127b47c5e82ab56e39ccb0dd736ffb63c820c56d8923e67dd1249b8131013722ce080d94833ce86d1ab2e260e4b19790f1205a50e1d8aed64d4bd172f182021b247651cfc246"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_8(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0217285cf32ff124f9816bf8f415cbbfea4fd9b800b53268"),
		nonce:           decodeHexString(c, "8f33154f1b98c30a4a6ff69c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f7a363a05e1ad62a301b369cd5dbb203b1ed7d4fde89f987"),
			decodeHexString(c, "9fbc34c7e104a6ae7e0533e6c914154ad2cb421ce3ee8ac8"),
		},
		expected: decodeHexString(c, "2a62e2f9629d6d9b7a9f4909e16aba57fb9899ffd362ffdf13eb5d2fdc283d8e67d41de07942f24efb5d1da727186635fbc3e57d357416d6f4168743fdc7497d81e568e5c53a78ef1dfb584539b75368f3d0ea645c80d1320f61f2b0f31fd5851162b629c86bdac5f1968debe799e2f1"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_9(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "84e389dc94e2c049164dd3d8bd3ba3789745d6e1ee4059b2"),
		nonce:           decodeHexString(c, "8d51c900403d363780db9a6a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8f8ed5a48265f632e9877dd60a909b51dc765e211ad04cf4"),
			decodeHexString(c, "71d8db255499a7da92010ff5e400a8c5d4fb2d82df842131"),
		},
		expected: decodeHexString(c, "f3cac3710a5961dbb8c05ef27142d05c1d36e4d2804983933d856752b1e20914381419d97431b828105c881a6a5bc17151902c5bf85b4c1d744bfc6222246498af3e40d1181607c593320a127f8f23d330f364cd9a85e03dab043398d84df37a4527562016cd03e2b231a341576f9538"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_10(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c91ba78ccfd117371d77e82d3d0ac97cc19d4378210c5a22"),
		nonce:           decodeHexString(c, "cd40c4b742c038f72d98c93a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5ee95cbb690b780d882a3625fca7899984e3c948cabeeac9"),
			decodeHexString(c, "576d3b60e504752bdca2a500ea2d081571cf5e487f0c9ebc"),
		},
		expected: decodeHexString(c, "173927a2b43fc2c3231f99ed92b7182f52e264c3d9ebf009471276b099ec904550315d92a47655df02f3b014f8cd975989e538121ffde40486cbbd78902951db5f2b0b3026e10fc48dff5ba41689a9df67beaeaed7f34755a740dcbff59dcd301214bf0556d2b868a625cb04356d148e"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_11(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "86d9cbfffc5bfee75a219e3f616c17e9d1a6692976ffbdfb"),
		nonce:           decodeHexString(c, "68611840b5bac261fe97ea5c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d5d5ce8479631b37c1c99adee2e99fd487bbf4db191a31dc"),
			decodeHexString(c, "22ead38d9dd54c82daa18528e98f4cc7378312f0299dd70b"),
		},
		expected: decodeHexString(c, "15d0930e1e289439e82fa7ed49e641741a0e72207dfd3c56ca4d2a65c816f88036414938f4fa0a93f4925f094bb8f3369bb63bed01c8672e5abf17a531919fa0d607f5f37f72c7bcc30ff89c8a48d4c2d97670bc31d062faabdbb7da52a9398e29f2b35e6d6691eff367dc42fd20bd13"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_12(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0f4ce7e8c15a2760c23eff7ff4749a521c8ff60ce0e02a81"),
		nonce:           decodeHexString(c, "c05a87eee25ddcd5a6ac703e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b76b9d4dd1977dd646ad256d09de6844ed385e26e8425171"),
			decodeHexString(c, "cb6ef520be5ff2906873839b9efff647d7aa08bca8031187"),
		},
		expected: decodeHexString(c, "fb4b2815e493a36132a8bd3ac670fbcaba1a305bda4a5323c43f8466f7da209be4decb840fa5d71b474bbc8177b9145156c0d47772f15bb1af634beec127d120527a7a7b834d0e8204c6056871df54169c0dc075ea6f402e49370828fc4257ca69c5ab7340ef574aa3f7e1e8cafb03e4"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_13(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "403dfe9f80b3562d4c349145aa6f1d46d70acd16192dbdaf"),
		nonce:           decodeHexString(c, "4c9dab7f11d3c2211e5620c7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c0b0e304db4c294ab44bf9f1b4618236516319b2554d68bd"),
			decodeHexString(c, "9ae70772b7bf86dd51f9957af96d3b899d4441ee84c88538"),
		},
		expected: decodeHexString(c, "ae41c113ebcc299f8bcc443c245bec19d4b3a746b9f52ad47f6952a338863b0a4cdf2d635e5f59f23a4aa0a425e701a92e726202d63b339a81b7f7486b657738a6d6f11df213301dfe110e370a64af01b19b9c2006238376f4446f3c6ccb80969be4cb60c30a37c9221c12f811173188"),
	})
}

func (s *drbgSuite) TestHMACGenerate93_SHA512_224_14(c *C) {
	s.testHMACGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "1c7f39179d24334699c29eb50e1a79dfb2363250fd016299"),
		nonce:           decodeHexString(c, "1122354dc0f35c3598742aa5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "17c87a351e940e261e8806e2548da44a751c550ff5f0257a"),
			decodeHexString(c, "7e3bb28f266786ae38c24876087fe35c7e43222382270380"),
		},
		expected: decodeHexString(c, "c943c9ff0cde86a62756465e6bf4fc9dc25447157537831c975782dad82f3e33e6e7790b41c158713b8978a6967bfadda9e15ef43922b3f93c8ccd0cfa834fbc6776f3c1b6369b4f25b1cd1189f8b8efc31be2dc151d3608eb2189a4f39c0f0a3deba00ffc97299c11c46885b424a7b2"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_0(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5bf20c3fbb97e770355d522f06eaf7aa4f67280f11d14502"),
		nonce:           decodeHexString(c, "6085eb03eb7b3d2be92bc000"),
		personalization: decodeHexString(c, "c2a83622b5b30faa3823534b3446af32e48057c2985ce4e6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8c93cf82da18330c34db37f3447562780a69a6a84f4c6012"),
			decodeHexString(c, "c649c9a2dfa87b4d57f6aed26ad3f29845c6b2274ccaead3"),
		},
		expected: decodeHexString(c, "7dedabaf55fefc6c141bcec9c9d5bc272aa4e31039062e1dc99de7d2621f4b87b2438cf4e81adae7f44ae3b430d5311f2f25072b927307ec04b55cde24e5d775e58d0ef4b9d2f2e8f4728537f74842f5418502a92a4c8a0b7741a1f1ff1f2dd7ec03c26405445fc9bda9dda869007965"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_1(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5682c920ab8e959c0c0f338d8211693e8215584f326960c5"),
		nonce:           decodeHexString(c, "321541f5845784986c40676c"),
		personalization: decodeHexString(c, "dfb076db913e2713188645a7f0ef899d12b9f35d3bff49ef"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a01db449c5cddd36a17124f2156f978371a537287d84fe54"),
			decodeHexString(c, "59af26bc3b007895035b0b1b7f4ad84c0f858f8e9d44ab0a"),
		},
		expected: decodeHexString(c, "aaa8428afa0945335015c25e33dfbbd319633571bd35286d42a7570982c19c35efdac6ce9cde5b4c26417f550d0f49508329418367ab07add5b832333a8945e4fd948c8f9f98a809697ca7fc33c44395da6253f5c39ff0472a4321b235defee3966ffffd0691935c530dfff354175285"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_2(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0784b749c1c2b1fec9fb04353337421b0a75a30aeccd9ef4"),
		nonce:           decodeHexString(c, "b5bd2758fedcdd59daed77cd"),
		personalization: decodeHexString(c, "f3c84c5e3fe4adbc9edf5ffcef1d9916c7761a434308efad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3fb177db53c3461aa5703fb665f98c032c80382492f095af"),
			decodeHexString(c, "edd351d70dafe2e6f8a8ee4bbfeb8b1d37e6fc910b2bbf44"),
		},
		expected: decodeHexString(c, "b8d5a0da04526141765095ee0fc09ad74d46ced1aa18ac73787f2c176623ff1c4ae306f3df1ccef5aca8bc5a601f535f59090613e9628c38882d52f0bf8679526a33bdfd70b2029e35d9c396b68adae7b690fcda04adfd623ef0915600e9b13d278967260570f23820330e87a096d3c7"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_3(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9c615b41fd3fd3e397ad2c9b182c099d1f9e4f117912558c"),
		nonce:           decodeHexString(c, "b48814030846219c3ad97aaa"),
		personalization: decodeHexString(c, "0e8885e7b1e8b35f94492f3000301610e98595327c32b487"),
		additionalInput: [2][]byte{
			decodeHexString(c, "32e9109f6f2d513e376ec5d38449b32a90404dadd997b1d8"),
			decodeHexString(c, "1a7bb8200614a1c6c2259675a7fa788b3c336ac2b2975331"),
		},
		expected: decodeHexString(c, "8521114ba354099bf94365b2b361fe319e939aaa6b7ab47d2f884732fd94f68480c1f14321212ba8bd3a0216c4df07f99fbc6e75d17195a1d342303610e5d818fd9edf64c242d0b7a8d9a4488e330c3cf42efec25da4f2a55d69723b148da46a578565c78ad0bba784be3b9dde14548c"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_4(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "62988681bfa860913709bbfd3a8bc5274cb73c28976e7a64"),
		nonce:           decodeHexString(c, "1bca37f4a2d83578fe57e4b9"),
		personalization: decodeHexString(c, "d105416a8cdbc6317cdc74b73da683a5f0af998aed927845"),
		additionalInput: [2][]byte{
			decodeHexString(c, "104595afd6b0fec0ce25b54dbded4bea7eafd281fe9a1349"),
			decodeHexString(c, "89f261d602fdd5cd0229a8174540c2f23b507a63037e5c11"),
		},
		expected: decodeHexString(c, "335241ad126ada18e1e160147886ccadeabb147423f687bd426282838a9722d1ec1563bead4bec86e46cdc08c2d1558e35594ca5e88e81e96d6c7cbcf01da3abdfd7cab26a91fa0a4daeb57c204861573738502d80829091072c0a063e2f7426ad390ecaf4a7347ec80f03f199f6ed96"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_5(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f8431b3d731d19e7c2831d102d531ea079899e60f46ca05b"),
		nonce:           decodeHexString(c, "2c82c3dbeffe4d432eb9686e"),
		personalization: decodeHexString(c, "1100eda9d679de2ac765d7080758a35aba516e038af15e05"),
		additionalInput: [2][]byte{
			decodeHexString(c, "baee835ba95f04284d30d65efc6c8dca13ba99ec45109be6"),
			decodeHexString(c, "6f3f4fbdce86e074bf4c0700c37f38ab7bca944e10c8fa06"),
		},
		expected: decodeHexString(c, "7c44c5c98c03db7d31fd3b1250633cca80b7156a261d66a0566e0a865cb5aa75d692e3874e9367deff760dfdef4e84a7a876bbc86df0b59f6a565d6fe24a32912c09109dec19de565f265191e05fbfa6b2c0566fd024c25ba30521b6c8c1bc68a79e778418513dd2e034e6acb0fc05a4"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_6(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3a42c7c7e82b8a2408bbb6c7faa6d35b0e7ea502bf165600"),
		nonce:           decodeHexString(c, "58ca8084d6f3c5c6d0daf564"),
		personalization: decodeHexString(c, "2510bd846cb92fa9f886fe58cba267ace4e9c7c75421bb37"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b177cd86579fd72d3fb0b77163804ab9de2a42cc2c7566ab"),
			decodeHexString(c, "9049675ada39fefd5e1f86a31df38e2eadde3d892a820a04"),
		},
		expected: decodeHexString(c, "c2087da5af1ea949b4330b54616fb0d44420e2e188f8ab311eb0329013ab54b98b26d26f78f1ae1b16998a4439df262246042ff2020a490c21e820051a87ee259de93d4974e401cd25758da6c75bb2e7846a3c88a9d300c087f10d1521942a1c3a112bbc7b4cc08368ef8b3bafbf3a32"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_7(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "cbcdfa7f3569761870c45723899a5d0a51f4c5c9c144e19d"),
		nonce:           decodeHexString(c, "102cd91d3660db996a280e80"),
		personalization: decodeHexString(c, "877dc905aa23081726653257b11434aeecd8d3c2aad0347a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f1985cbd4b52f44e99135c8767ee6eae8bf1f41a63b1f616"),
			decodeHexString(c, "322d4e09587dfdb4f12454bd6540f4220b507d6494097c16"),
		},
		expected: decodeHexString(c, "57713161edb9ec7eaaa67e6b81fe4364473d168059ec1d13607f625e4f10e50f2e74ba85bdc15d910ecafe5074f80086e2da1dbe6619c85d7c1130d0e3aef336aacdca3f66a7eddf3420fb8b8c9961e05a5fe3b8a78068011cf7447dac6ce7bad8d7461778aa54caa867015281b7db7d"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_8(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "829cc50508f0780e06902f12237a45206f37a40aa153a37c"),
		nonce:           decodeHexString(c, "5ef179b9c3d2e7aa988ef879"),
		personalization: decodeHexString(c, "d9ec2e226ee3b96d9d98a7e93f0d20ba856bd75359c49132"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d8aebcf39ded17518e3cf3aba1fa54e98bc305cbc69ae909"),
			decodeHexString(c, "ce69526e3b78db0748f263fe76210b14c6cbabcbe9c10105"),
		},
		expected: decodeHexString(c, "085da2ae17fcc727ca5401e99af6bca848dca003d1a0b6fc853256675216a33abdaa8306c342304494e2d178ad26710845061510ca37ba9091cd0266b16b975f5375fc432890acd7d57be995f8f0c22b7ff16d881deb9db25cfd54b6dec2bfded32c6ad71c94633370a6a13d98280f4a"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_9(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3062a34c22417cfdce69a1c7eedc3860d2867e605708304e"),
		nonce:           decodeHexString(c, "3151bb9a35f8cc0651c3e8ca"),
		personalization: decodeHexString(c, "3e96d57fc181868ebea7388f5b27ceb85168e1bace15a7f6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4bdc529c6f41c13abbc29690adcce2db67704e6681a4d23d"),
			decodeHexString(c, "c7eb01b7e78ad989298fdbdb5c7b64942ff9b42e3a77c623"),
		},
		expected: decodeHexString(c, "84e24b9f76eae69bb07f1797efdd14d85d57f2788ecd3cd9bf66f1b93ee82c181c40122a14b7b43aa7d1b6251d11d62fc1e3d130c06145da650f54d256f5ba22f5f2087f6333dcbca9fdc0d3580285df355a1bc1d48ac704e677399dc56cc067a797fc3972b989952a8e5fd43985a24c"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_10(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "b16562524212943898692a5dc27487aaa672180a6bfa73df"),
		nonce:           decodeHexString(c, "ceed667862bfceb8a194801c"),
		personalization: decodeHexString(c, "1a041968ef2f8e6fac6e82cbb69a23b74988dd524ac3f29d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e7c59300979604ede174777154f79c3d82ab49ef8a8514cd"),
			decodeHexString(c, "690445a88f7d8160e1fa3cee8f31ca19b294fb1ab16b520b"),
		},
		expected: decodeHexString(c, "edbe66ab6252cf5a6545e10adb9db2018dd70a2cee28d729a392147eb3f74eb871dadff057b0597c4908bf6e2e5af78fbf0e3390c14b63449b8878fa546b25057fcfde15b8d7bbaf2dc336d62aece9eabf87fdc58a6b7209567647a6779b4e68b8d1137e186c0da0bda590817f2f0787"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_11(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "711f60b8245f09caea0b5c02c28af104c8f03478e59f0c2f"),
		nonce:           decodeHexString(c, "a473eb0a1ec31566475fba15"),
		personalization: decodeHexString(c, "3ea3626b345a6218be11fceef20ca50d2a63a8ba16f5bda0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f362cf23c6872d57a682d914d6314e0b135fdcb94679fe04"),
			decodeHexString(c, "4734e254cf6738439ab3b77f3695fd0b7510acf68570210a"),
		},
		expected: decodeHexString(c, "62c82c6855a48ed5e64aa6e557b4fd391f1cdd52b16f8322943d85924458a12680d3e6f6d101735f8dccaa4c640d182af4e63a50cd966ae2130c188c1719054c83380563e98ba44455b5a229fb05552c10ce8122b27b43e76b9f56ac0845ff66ec75c09b64c96882008deea3d120ba8f"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_12(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "fe54286c3faafeb7d2d46c093309445f97624e26bc9074c2"),
		nonce:           decodeHexString(c, "00f63060517eb334ad776b2f"),
		personalization: decodeHexString(c, "3f0c9dcce20ec13476aa9ef18f4dd5bb136284acb7410322"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8c3b0d24cd9e0c78b0b42ae74148ababc2e18b82c815cdf7"),
			decodeHexString(c, "2dd154b5d476259eb3ebdbeba12f59caf6e0734e8a6f3538"),
		},
		expected: decodeHexString(c, "32095d4034cb5a90c4896bb73c3dbb4a9f2c7c5e93e0fecd51e518b8e6f8c218fd37b1dd9382a5df8b6f1bbf4d5737fb0892f72c89d2bb48f685f3addfa8884d22893704447342abfb06d908c56c79366449c4811f1b2e4b28c8a881280ac8014cee173e5e1a193a8466874449c78b16"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_13(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "aa38ecbce699f8faf5dfec83cb4600e1b8d29a9e9c592d30"),
		nonce:           decodeHexString(c, "5bec7298c72cb13588e09df1"),
		personalization: decodeHexString(c, "901e57af5a407b722e92f6b556c7081c16debc4bef5dd450"),
		additionalInput: [2][]byte{
			decodeHexString(c, "762eb4c2d8921b7179850adf76eb3ec74641d04515d7d769"),
			decodeHexString(c, "48e33c81d4c2a5656efeec15de2d13188e9672dd9c6fe3e0"),
		},
		expected: decodeHexString(c, "17b4a1aecc813558ee38185bafacc2be4226e19dbe466d5d701250bac74f467cf7291a3300e1e8388e4765cbafdadb682a9c1a1d51b7a411765c1efcd1da8e5c4209800b8acbe05a516808f712bd59650ff057301e29f8c1bbe74dab758296f9d988970f9c3b9141a7b075af28e00a55"),
	})
}

func (s *drbgSuite) TestHMACGenerate95_SHA512_224_14(c *C) {
	s.testHMACGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "de3199d89f2f9e4c36aa70515b4f7f4d86017eb89ffa0ea2"),
		nonce:           decodeHexString(c, "05b7e7ff0ac5a2a29a2bc724"),
		personalization: decodeHexString(c, "fb8af910473b1bd7c2927233a835313343e11809f195198c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "30a66bba0f4d6c249e271de8927b6ba1e99fefbf3386934f"),
			decodeHexString(c, "1ebe06fd88f8f914ea8f590483994fbf227613e7f49ff18a"),
		},
		expected: decodeHexString(c, "38b4e2bf6aaf771df03b3bc37a959955dec83f07af4bcd995957a31991c5ee18b5bcb7754f3bf6293665dff2b4769d081d9be6393803e2c62a73ed8ce4adb17b36c1e0deb8ff6106308be9019cd179a92feeb184d93a9348d3b14a70bf13fd74d12cc427496803b7fc041f87c630756c"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_0(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "cdd5df69d5f412f28cbc4e7d1a3ec0aa8a9c39099d744356700dee9e12adba1e"),
		nonce:           decodeHexString(c, "4064a9c86f77daeca18694ef44db43f5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "eaebfc8c4fa7314df29b550b7300e65631320bed97076ed77962f200af98bd3f"),
			decodeHexString(c, "92e763bbb3e5128ee56d67e211a459251f7d1468a6810bcfb3d2d595387b2b62"),
		},
		expected: decodeHexString(c, "6ab56be520083baac951a1b8518ccfd5aa01f0297e0260441ce1cb5498f890f01a40150896b91c227787ae8766bed29151411bc3016f1c21a783e2a32f3332495d9172aca0a443bb6e4c11ca18b1e92eb77758996b96a5e68a6d5be355921ba1993fcd2f091d5abbe1c308c5ab60dffbd1166872a905e4d415fa4077fca8cc47"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_1(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "420b4e3840c9aa8da44f3be292b20b3ee2e6a44b5b12f8db243905c8f19c7cf6"),
		nonce:           decodeHexString(c, "7800a088d0afcb91e10b1eef922183d0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "68e8c934abfc3941440336bf90997c28735f652a70a0001fd612d10f3529e5b5"),
			decodeHexString(c, "a7540a0406c7afc0d3ce84a7336ce87051fa49f4de25ac6f705177695969f0a0"),
		},
		expected: decodeHexString(c, "7a6686db05aa4541e0f36fc08e961a5e93c62c4dc1df3710b566ae42ccb6c24450322cd026c472b63975cd3a6329d1497e3d884cb18fe16139d4f3283d89c2a83ccc98812e2312238f0690d84076857869afc8357c6c23033a0dc1d60c26f47262446a06b31580a3771b7c32e52c7194f7556ad4f4ff4c7233093b680f42957b"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_2(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3e17be3541dcdc3f9473d1899833ba62940dd84e47e648644adb7507d446a787"),
		nonce:           decodeHexString(c, "b1c2b257d3544f99631a73471c343005"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d1edeec776872da7dd544345eae29fa0ce8cf52eca03629aea1c84f55fab487"),
			decodeHexString(c, "59bb4800bb72676f8e84d712bc1860702ccb346536b05b5b89102d3124a6f537"),
		},
		expected: decodeHexString(c, "4397766833f092381ab2fe5dacf3ca30076d5f3c844dd34d01bfb73eeea0a496a1729c40973854f3a4470723020c0440640fb1c0a5c10868f17a135b4fff2db6afb33f986750ddc4656cca012cdf586d426bd346cc0ec18fc85f51f6aed9a35886f10d1c89b3491227284b19d441a2218bb43e006e3d83af811a854662e87d11"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_3(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "fa6985699e72c01498bbac01b8684d38637a3f795254fae1ea4b7cab3d17ca1b"),
		nonce:           decodeHexString(c, "9bd0d01c809f7074af93bce2e315b19f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "acc2d540c1bbe8bda0af6a90ea836a7c3ab6b04e5147ab529388f6a5af57ef53"),
			decodeHexString(c, "5744f7e5dbefc2e16092d08fa1b9ef82c5c6d406a4872ee24a3ab1000e462467"),
		},
		expected: decodeHexString(c, "93223aa9c9be6e2c5e0a09c73acbdf4a68f22022cde3ab96e7915dd7e6c25005278c6c4eaf71c1014fa6342f72fab5c81707a3f49ad3a9fd4fe2f85f26b58610b1cee7e6f743c6282791fdd4a7f59a2bd842ba09a927c4bbce12840ecf8469701eb2e7c9cf4684a47e2c67575f021a3eb2d57730db411890c2bcf2343cd8cfd6"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_4(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "125956fdb382312fbfc3f976e66c988ad1acd6b13c0ef195431c534cdf22bcef"),
		nonce:           decodeHexString(c, "cb46cbdbb5e12b4fa2a16f644cbc99b0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7105324a13b8c87a52d1487fa7ecc13317e0afb180460d875d2a6661fcba7548"),
			decodeHexString(c, "bb53fe3ab0730c2430e319aad8539041104d1b39fee46a22d5969963675d7576"),
		},
		expected: decodeHexString(c, "50ac90228ce534efc66ca2330454adca3d7ea5673ef0cc96136a8f2af0669789cd40538a302b558336ac9130bb4b79e27361860bd594e3f77b10eb6a64930bc7e64c32e4c420f9282fa5e2e74917f1e48607e68dc2f50ae3dd4c10fe4a9337d08fd0af406021a34edb7c5921c551c3e8f89594570fd3e334ee17bf09b1feb4af"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_5(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "534fb5574fe56d3bf7dcbaf7976ef7dafff504deae7b16cf911d0b0e32213c94"),
		nonce:           decodeHexString(c, "954cfec33f6f27fe32dca36dc9b5f0fb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f23cc21789d2c46a01925120351df1be4fcf66ec3e1cbe77d6d654fe716f0f7b"),
			decodeHexString(c, "d435a7d719f371b31ae3d324c6204780973af62aa5d55c1f12550bcb1b5a00ee"),
		},
		expected: decodeHexString(c, "221e9629a912807425fa90254b6dd6a8cef88d99208b354a901f12b83a215850ec0bd32c397b916830f6be27b6742a0aede0aabcbb5f9db9173aee50aa8ee67bb244425b1e17b898d7b9ca590eb688ef5ad55e2721585d82a7e6d10dbbc10e705fb9fe4c197537c5df9b2e23b80d6a92bdca8eb420025a068acee570e3816ff8"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_6(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4d28890eecd3ac81531345304d12bc855b31a07d4ad97a7f82966e06cb874db5"),
		nonce:           decodeHexString(c, "9b979ca831b46525ef93c4e1a6a708a9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7bd52e99e04bb84f5f12e485cb2c97bd9579b6992db5b2f02ad1cee9e2a92a9f"),
			decodeHexString(c, "b951964ec98a6670c3d36b543d315d105316b07a41992e5f0f3a691d7411b4d9"),
		},
		expected: decodeHexString(c, "5db71cc12144d7391c2cf48d7733c5275464ecb816019421670857c36e67e730cd30ccd2300e91d7b990e5938a5b88b85f5661ba4edb1dabc649fd824955ad6b769fd348af17a895ed939e0a2ec3205be750f2b42a10673da8ad6876bcb1e5f101729fabbc466d0f61cf95091ff393f5c1addda85afb5b66e3015159678420a4"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_7(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "678173f88789f8aab64b71604f4edb8aa5bdaad2cbf0b0094f5f5f81342ccdaf"),
		nonce:           decodeHexString(c, "4c606b18c3a90c3cc15bec4bbde5ddd4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4aac1d656515d83c45f57707369f8b33ba47399d2d745cad03a2c925d52fb5b1"),
			decodeHexString(c, "6fc9c468f35eb39e7f6314d5663138298d8103cfc67e05583ab4c292d89a6624"),
		},
		expected: decodeHexString(c, "c88c745077c15be4956fa8a38f94ec3e75d6db25604e616a16450d26cfcc3725753e6dfb76cfd3bc3f18bf167b9c759042f865e7199dc55de718ea4214f905b986f6c5d94578a73129d6294ff16cf8712ebbbf542dec8ad576fe1d99e178799ba526e4370addd6e61834f6420eb388aa51a8ce7d26a9d9928438c63126e4a5f9"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_8(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c573b11969fa465d2d24cfc9fa4087bda26798a4bcc5698faa0d6ae4ff825318"),
		nonce:           decodeHexString(c, "1072ef05fd6e85ea3b4433ff851cc07a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f2b714a5128ed5a88a7370997e8c3a1bf9fc086caf3041e70260cef63d06ba00"),
			decodeHexString(c, "cde0ab24c12243b16a32edefdaee64802da80386fe81e3c5653c8c1a70126c17"),
		},
		expected: decodeHexString(c, "5b063e18ff7eeace619276e0539621c27735f42502688e7aee7e5c254853418dc8d3e0855bcb16a82da11ad892612f7173fb4db5a60f4e48fc2a65662d88db286f6a6f7a5a6bc4578b2ff80c94dde50a6ada3c8be5ed673d08ef7f487609106ca9282f84ac74cade5dc08acbcea4af359863ab91e99111ced1713509e58dea5d"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_9(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f072c8f4adef37014e166e7a1481592de73e952024c294a5c510080a6373eebe"),
		nonce:           decodeHexString(c, "47cfbabc54020dcb03417ac8d313a6e1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1cc8c1bfc5a0618a3516ceb26fa1bac6e4ab6db12b6451654a4673ddabf71722"),
			decodeHexString(c, "91bd9a16d29c6cbbd027c62ffadc3377c7426ed922941bf5c1bf06e941eff07b"),
		},
		expected: decodeHexString(c, "cce875a271f87affbac57e84840987f16dbc64a2f72d0ab225a2837b67919e38bd2bc76548eb9e21f2d198dd0b44e6e05de6988f0a4f11193e775843bf7ecc7c0099bb979d2309a799cf06e156cc595857dc2d8e94d63255ce9323b6b5988f944efa937856f9798af2ec76e457d21032b2b825a7199013c78e0d2f148e4d4105"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_10(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "60a435ca6a63ac5c19443588578457df40a2620d881cd9118469536bb5ab5786"),
		nonce:           decodeHexString(c, "3835197d7a0bf98621bc8ff399401ec7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "14c3dc23d0ed19ef6824b0a4b19c4951c6d80fb63ee17b9e37bd4a9f74855799"),
			decodeHexString(c, "14f9ec3c8cf1b87a67a981e1fd2e6850062b66a094fb5627a86967ad159d2f79"),
		},
		expected: decodeHexString(c, "6c1ff1a5837f5a7a0b4b17afc39952978d5b9fae7a96ed8e65a822d97c6cfa210e0b1d939d414419d45f793d730b73133f7bf0f54a8b2a8c5948d824e8e615dcd20dce9e0885e88a3fb7db8857de3329e34561f8322ded509f208ec89bb84e310841989ee4ebd14ddc15730943e3fdbca64541d72a6a0d26f5b5387ee978fc2f"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_11(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a96f559ccf84eeb41639099677386e37f8edcb2226c1465f38d0b15c8d6ddcad"),
		nonce:           decodeHexString(c, "c784b7265a929ecc5ed547c6b3f49008"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "42134092e5a8f730a07a19a93c7efbb30cb4fae17106a901cf4889707af9a73c"),
			decodeHexString(c, "9544399f7b1930937b5ed1cf8f68b30325e5e73f5b2ae8d5eee0e9fb6c31fcc7"),
		},
		expected: decodeHexString(c, "c297efb2493e579e99be468f0297c30cd0186fc520d55bce91afea048c02a4ee6e3c218973b667e62442b751d420068977ecb589b38d62eebb4070b44168c04377a893a15e5ecd806507aa1c19daa660ef074819b06672b043eec1042cf4772f72eec571c6c070e49ed707c109f44514d5c271066553924a2a65f76210d7a279"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_12(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "afa5ee609af43feb4c49118390383260c243c8574d5dd978b8eaa95dabb1d21e"),
		nonce:           decodeHexString(c, "019075775281a2596a614015eba184cb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "fb10c2d99db2ad8ce6ae61eea83c4190022151ad5890ba6f7ffd4e31ce989793"),
			decodeHexString(c, "5de0f779e7d0319900c332a2d4e2e5aefbf6f14097eb55ed608463c77949d8c9"),
		},
		expected: decodeHexString(c, "d7e33c9ac2601db4bde7c5e8db6a41eb26e1a4e59f60448935b61c65b1056fe688d98aa536b24656de502b45aed6f75ec06188b27f69550f0074b1c0d1a216c1d18f37042c15d6ad180619fb16df4ec966fa9fa3202b63dbf698efb4626c3655485042243bc57fbf3056490f11ba46c5dd39d955f2785958ae28daf14c118eb2"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_13(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5c3b6563d2adf828855bd5da8f4983745db97caf19262e7ee50fd083a2dfe690"),
		nonce:           decodeHexString(c, "b7706f07d7099ca8c176651703be37f3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "742a2a8c1ee7c14abff6fe3d28f8968da4f956b4ff8ce6b807569471ed9a48bd"),
			decodeHexString(c, "cdfdb9aad81b820e624274f5ac6e28d083e0931de30051dcea15bb7c2f38cc76"),
		},
		expected: decodeHexString(c, "bfe0a0919b64b441e37c9a3c91d220cf96eb5cd5692a8c30a6d3f410bad48548ed4c61ecbc573628079aad0771141eff77afb1d7a10ce170e8671f13d566f1322915173bdb5a5146766f9fb81a413df5c8b0965b0acaf5ec4a5b43c52f44cf63e18e62240090d71ae82c73e39b553c634acace2681360cff4cb55600c995b513"),
	})
}

func (s *drbgSuite) TestHMACGenerate97_SHA512_256_14(c *C) {
	s.testHMACGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "80edab0dc029c29644224a1946f6b30b55433217ba3c44777ed848fa4ac66464"),
		nonce:           decodeHexString(c, "e609fdcf259690c12694a18308e752ad"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5722b092a5a0195f14b5f236885538cc7a514e997876c06f634926c695561cb5"),
			decodeHexString(c, "6e4f341a0524dd1085aad0b6c956057893f737704ca2fd8eaae6231e9691688f"),
		},
		expected: decodeHexString(c, "a757af53227bd8555853ee2e643256074be9904d2fabb0ca86a645b0ed1905731cfbfdb7eefc83938fb576d7e5da8135300f8e934dca521637ed10e5e791e18e82c48085f511476452237ceb930e0307e228886d36aeb83d8e25ba23b38dce6dbc335de90b63db4021d6ebba5dfb6d8044a2bb7bb20aca679cde16406c8c4746"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_0(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "21e70d349eab293c4f5837c3df990834507b951a8d4666570e8c7985483c391f"),
		nonce:           decodeHexString(c, "37ed12bd119a1266d5783e1c7668f787"),
		personalization: decodeHexString(c, "178e4aecd4411836d2d941af0995d91f540d10204f21372ad92c5b33e0302f0b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6e675921863c9c468cddf377318e2a5449eebf8b23e5ff18f1c7c1c72f4c1965"),
			decodeHexString(c, "122f0a17b7bde2e486f7c0f0d1d8e323bd7f2bc3e73d8213950f66e3d4e4c4be"),
		},
		expected: decodeHexString(c, "30446c874ffa0c9c031ebec131cc3927720f5eeb2d89c24a71010b93645cdb820599e91cf29bbaf7253b1f53304c28e7eaf44198ea135029455aa7fef794a275421c2f8be689af46d924e88faced5299b1e861e9c69340de5bd88d1ed912c9c54909c4d0d1bbbdf7a43d02a35ff8527042efc9102539ed3b669121bd35a0f014"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_1(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "0fb1e82a4c9f953c2f26eb6f600c99d9a1b956d0b5021b14e69e8e09efa3d840"),
		nonce:           decodeHexString(c, "00c82eec973b490ed979fca6a21b3031"),
		personalization: decodeHexString(c, "f90298e146832be9348aeb59d88b01f62d630d98c765633709a30c3276ce007b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "866454c880dd51941098145415b2785499635957c37c5f8cfa1551f7bd44e2d8"),
			decodeHexString(c, "0543094170cd63bf310a2083431caa4417f3d030da7b3532a1cad77fc6aca607"),
		},
		expected: decodeHexString(c, "6426ebe77e5cc2e333d0ce30131ed6a60434a48b5d744b95382d6bcbb98e6f302dca76a9390c3c42afa161a1a330e867083ef57d2d1080a2519b1255f7c26e7c81463aca5fc83a8dd735affcaf7a1d2b4734963816be8d615af5e0165b13e11fa32cef4e8b7d0586222c385a900af6629bce543df050074f504b82766e0bab98"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_2(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e0cac24c72c06af1c5c07a106f81bd63cc46cdad7b07d2c8f7c0407d1e9f3b1d"),
		nonce:           decodeHexString(c, "2aac0d3e39b0df6f858b041e2386c116"),
		personalization: decodeHexString(c, "1735a2c0ab36b5d3e969edf3c81cdbfd81d1088cfa53dadeb5f7ad04e794da6c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "66990006cc70c774f007a4009fcf3ef9c9d06924683ca4d895c5015a82d90bcb"),
			decodeHexString(c, "81c8933bf1c4fb192cc479c7442924c602887865abd46529f00d906042efecc1"),
		},
		expected: decodeHexString(c, "b159874ac478611e84728083e8cefc211965068a2e4a57d93925d0927d823cfb5d22976a568d0ea1a699c8a2366f38a1a6990b263915be9a696a25c18c30abee89f2a3a4b98ce19240216407daa9d04de8528c554b6a21cbfd23295b003ed83f38cd14e52ba940aa0fec38cdc07c926f134a0dc7369e068a330755f476081bfb"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_3(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7a2e2a12896cdfe58236fd8f4e6ac8e52f552b2255dbec6931df16ea2fbc1e1e"),
		nonce:           decodeHexString(c, "227c5f96a0191ba78d55e5a92102628e"),
		personalization: decodeHexString(c, "cec7c7874f5a0815de0d02bac92cd3ac595577118cdd1d4fd43f4ec1f2d625f2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4f1c7c2fd1bedb81fd97f315fb99d19f35f139662c05d1debe47bf5960b3e9ec"),
			decodeHexString(c, "6ab618c0a04b6da78c860c8e42d51adb78a20d9d9bc390020d189aba415745cc"),
		},
		expected: decodeHexString(c, "4e85d1f49d23f02aeada1656de99582a372fa2fa71c90894a42405785cb65e7d0cf4f872ac98fd9a05ec31b929c0b098e8475cc44a3faf4ea16b9fadac93200a70067fb4ed6af8b9951af7422dd6c2b3ab6829bfdf516bfa442f21ad7f4b96143e7efaa6a9027c8c7d32cecca533c71ad57d625af2895274800442fa4b985998"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_4(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "47ccd8b9be0a5d2db97921545f536acae8f8e646198612edf584d29d9d467aa5"),
		nonce:           decodeHexString(c, "8f485ffb01bd7d455a5bacb182a686e6"),
		personalization: decodeHexString(c, "340381209f56a1e2708142ad9d0939e6fb3ddcff5948e51cd6095b1a06496880"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d24f1ad05d467e234c6908013281d461aa7d296e52032d7af820ce4cc3c522ce"),
			decodeHexString(c, "354f2df559f31ccfa9a60944211a16da1f29c4c8ac1cf3cd1f884c4e093592ab"),
		},
		expected: decodeHexString(c, "2c8f02ade6828a06885e10b762fa97e37acc6dbdf4ceed62054c149720b4e8af58484d0d03c7cd4ae9ee4d63bcd3081b22ba2f82bf0034f668270ad7f9547a0c9bd5a69241e544e2069404753302126259b434ea0be978c8f70ad0fda433714ce36e88a8ab8d846efba8343dee0107201a5979e02c5267cf2604d7903e6eb532"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_5(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "965f827dc87464c7681e78415c81344e002d0f66318eaa17126b405b721c410c"),
		nonce:           decodeHexString(c, "d48ce77cfddad68839a83f21bc2487a9"),
		personalization: decodeHexString(c, "74db35db42f918e051baef36d48c096aaaea63e523c97f32a459302b849b319a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4c4d3f5616aca374d0a603b47a7876a8fc5bd31b62a9e6534589fb37cccdebb2"),
			decodeHexString(c, "73f733636b59474a7e5b8526db858eec2647d05f7cd308772586dfe12fc2a8f0"),
		},
		expected: decodeHexString(c, "bf29080e61c4d1bb4e7a5a6ebd2685d8214aae9d2def9c748412fc4b49b2db87a37d60a4f91325549c467fff8cfcba8d3c5202bcf20610f122665752814e8dd23df94764cf9778bd04783fbcc6cbe433b18487798523c9a3099b5784e44df6dfa93c3e2e574a07a1e7e6d16e3269d11f05dcac0c3dadf0648267fe730f3ee240"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_6(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b9886db437517974e34149d3fe0ef179e299bd9b8e2b57f1463d13897167901b"),
		nonce:           decodeHexString(c, "2ac4e56253345e730d659f468db14867"),
		personalization: decodeHexString(c, "d3b8d816928ea9e7004732f9b426966708b609585d6138f0150a15441f86a843"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8bef1b152f475b19b369526b15092739cf54ca5eaf59e5764b8500f3fb8f5e63"),
			decodeHexString(c, "58758fc6d0dba7ea0da672fda5e909676530f36e8eaebd186203ab7a06ca7677"),
		},
		expected: decodeHexString(c, "493439e0f97a0e1355cbee8ef8417f075138ffb767c8365544466d1f3f1b73e46139c40cb429938c5c10bcfb1d9d1e22a1027c0a13ebeddfd94a915dca3b1c01359e2c594e871142c69c1f3098f6de3af708d70aa9f0b9cbafce681b75e3bf89c0cb002dd78e875577533e664917c0a66fd10cf3ced138f4c05bd006dca29332"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_7(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c88b4f71c071070b713a02c00a5d956944f8a0287e9a8627ebe83fcfc0cae385"),
		nonce:           decodeHexString(c, "7e1cb1b5affccd189f0b51a8349948ce"),
		personalization: decodeHexString(c, "6220968b9f1c8f46ace5340e0a65824f2a37e390de0391a1aa8e2d2a088e830d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f86287188cb5f27ec93565c1563f16b91fd4debb0ca9d76bd182b84785b04d4b"),
			decodeHexString(c, "bdd8d60c1d131eb80fc6fdb073b74e3c6451cd13d269e8d018d839f217374111"),
		},
		expected: decodeHexString(c, "2e45dcd97eace6f9b8521d69e0f5245c10bcdc2fa704b61fbf3edf59d8e6e125c2ea88379a427c1989c613aa99c8afca97163fd9c1fff4f2e057f0a4d8145704c443a71891a3df553035d4666e300e0b23c4760a21d00f2768028e911bc74d458be01583cffa717c464d923b825cde946cf2dbc0cd4fa8f17337ed62464ef6bb"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_8(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "feab9d566600071522029d5825b4f5bbb5b4ff82ced29343e17211dfdea3ac90"),
		nonce:           decodeHexString(c, "bde8439416737a512a56a6a9c3c9a18a"),
		personalization: decodeHexString(c, "b89491fc253b8b9e89bdf1c15df07b41917c0793870efa38d3491182198c5693"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2531e32a55332495a00ee3d5c70b28ee80fc7a49e815aa63eb85082da53ce13b"),
			decodeHexString(c, "d45c8b77dee4e17c601d7459ff51a032511ea8a4c880245acccd303b39d4ac43"),
		},
		expected: decodeHexString(c, "2a683203a7995a8d4d97ba8c01262d8b5c6a05a4a1c28a1940d0b9b89f91786bbef465d8e3ee521b54c2deb6bdda562486fa254a2f7ac4871672b7f3758589c8077470ae009d56cfb6c695073b60013461ec9ca30ae7177496f718e7b99f762b54c009ea65a2597739eda7b0dd9d43dc4a42602d1edee9ec5d1f383721cdf3e3"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_9(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ee28b9e92d4da3c2e1d3f7466b454153d803bf584561051b2f09a0230f353a34"),
		nonce:           decodeHexString(c, "2507e58a3f71d86585c2a678252a408a"),
		personalization: decodeHexString(c, "57bfbad36e612da95d30a6c2b47252b1559628316b57d7b56781bf07ce47115e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bc061d8c3aa86d7a057b4e1e226fb5e21729e25a38188d901894a28879df8d87"),
			decodeHexString(c, "838a571944a02fa04a8de7caab95551badc0385341416595547a42a543b56dd4"),
		},
		expected: decodeHexString(c, "8886f1b2573e0375ec179c34e34605ebebf65cdfd7df53d3f6416cc79c6f23e301eadf38ba86d04ac79b4b4aacc40e969c19327de64dbafdb647168f46315c1bd93c2336d83b5de4177cb5af7a13e20d11f303de0d3d4d465e8d6c6103ec82fbdef4f91bd9dfca64357a8fcf7ebe0a0438f1e54f42c7dcf3724ae18ce439dcc1"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_10(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "eaac356e801381f5041878ecd99601ac66ce8e6c3ffa638871747085604ee8e5"),
		nonce:           decodeHexString(c, "053ce81f05b620400c35961a99ba6f68"),
		personalization: decodeHexString(c, "fdd69f7242ca1c5c3a59dab35c0831a16a0fcac992222f551a32dc9df9f7bf7d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1004170066dc9155dd5c8775aaf04983d7be3318f5949e89616aaa5a9280e958"),
			decodeHexString(c, "096ac15cb4557b65f0642a75894093f9399713557cd0e04a0832f02bd36d0aa6"),
		},
		expected: decodeHexString(c, "277bdb77a8bd521cd41bade38e2848e35f1e4b759ce53f0de21d40bb0cbbcc1e21bfa9c313e08409d75f2f277acf329db9d435ed4edfe10924cd84eae0e17734636774813410854ab5afb32391798b6d2446ddec49909db0ee9faa73f6d57abb2ae413bb9d06aa7ea85e09ee6279a37b43adaff7eec652efa46043b5ea170577"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_11(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "fd03f4ccd45c4196df8c10b85d92491ddc8286335c88fd253a5b1912a99b2de0"),
		nonce:           decodeHexString(c, "fd43645d02457b9a204dbdb1c80b1fb1"),
		personalization: decodeHexString(c, "27ab2a336c18a8e6810347971d2cddfb232e2563d74e44940d7a92919c0e6c2e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "272075e5e26af83dfb231a81f6b5d6653a30996c431ead11fd6e217d7d19dab5"),
			decodeHexString(c, "47aa672e7aa4458cc8342fe65acbe2ac8c96814ba9afd2d4d5d6d8487c8a31f2"),
		},
		expected: decodeHexString(c, "421e4192d63734b3edc52396a25352ac41a38475239c1c794488d2e23110ba9ee29bdd53a05f468f589e745a6efde8c7ce7509369466719c8224041dbb7114bc37c253b1a6ece7a8203fb36cf00ed1c3f227f2ba731be4b3e719446b9ac36e664e67f9e9ffd062113db2879bacea8ae4919f90d07537c08b56b252f01be5d33e"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_12(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "171b7d45ab1ddc76a664ce27f3f4f5c0b2782926b46988726abef58af747bcf6"),
		nonce:           decodeHexString(c, "ed92cc3cf7aafbf15adf499501f7c8c6"),
		personalization: decodeHexString(c, "4a68cf528334c749af399d8bb6859f4ea84b8ae32930050efe62fa57f3347222"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4832054d792e83f5bc5082c333c719a3617bcd839440ca37b644ad0196900c9f"),
			decodeHexString(c, "c841367e7f365d34f88e942bd3c6f1b04387371dcb43d6aa241979a47e82c9bc"),
		},
		expected: decodeHexString(c, "45f23431901db78d4890edab29b9e51081002415202464a980b7407c5e1fde5162f4783d9d569a8305e090f1cfda0a2562218bfea6bd6b88ea4fb6feb431e1c84206236bea5654194ca200e94fe886b1ba7b2e21669a9bdfe14d4a8a8b63c45088b732cbbfe9967f438a203cd80a4c9ef89f81eab62785645c1d5bd699bfa046"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_13(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3bae035cc07b748aac575152d582a7426030a7ad0d3b74872194a63f00f26bd2"),
		nonce:           decodeHexString(c, "448ad56777291787a748776a4a0d8acb"),
		personalization: decodeHexString(c, "866f3ebfd29c21f080d7b88ba056c6ebaf8c083cb7f36c6955086fde2d59f339"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8f9fcb0ef8d946c6f8e1dd8cf5cd290056b94d10507c7da05599e239a0fcbe64"),
			decodeHexString(c, "f34d066514618f16078d1897a5351677c2f3a9677cacffd2b4c9f7a86670dc25"),
		},
		expected: decodeHexString(c, "e8e7166838be4044eb869d7bd2c930e769563485b7a07382fcd7eb82c2a6ee4e8e9299b30f0d5dc70609dfa5082052923e617f4cd7423a5d493f949169699bb61e3245e655dac57606e576bc8eeae8b862ed439dca049debd8fcc18a35ea51e38bfc33a4199fc5284318c6ea1ddea6cb3d4cfe5fc62a64797dfae81c99cbcf3a"),
	})
}

func (s *drbgSuite) TestHMACGenerate99_SHA512_256_14(c *C) {
	s.testHMACGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "05979da0ae57f443db522ab2ecc62e3fe6817dfe4f970f2920a4708eea57f9ca"),
		nonce:           decodeHexString(c, "421f0f2b040c0d8a53933213abc5e4e5"),
		personalization: decodeHexString(c, "fd6727cf1ab563ca9ff87470b545d4c18d9e99460ea2d00ff8bf32e1c27ccc85"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b2d2bf0653e3c075c469de5e2a093193e700abff9792a9f3bc0d143fb00c962"),
			decodeHexString(c, "976c765df6b57f0eed8661587045826c329f4f1994020de30fdd835912f72fe0"),
		},
		expected: decodeHexString(c, "d8275a104f1dad7412637d12fabf9dd1b06592850cd48a3f38304789911efe8f08970b8f90fa021b04039cd3d1ca573c1586e7ef586f4c623dfc559efc0f2c89e4136b59f0f5706a74679d1c95886a5ad05b9a850043cdb19d806d617b2f640f715351cff6920c47f96a42b872a512a7b2e99e4d0c2230861b16f3b38deb9b58"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_0(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9aac8a4157e65932a049a03b5dc4ae16c3aae9008c1426c03827f56c7a07f684"),
		nonce:           decodeHexString(c, "4273bbd3012b195167dd33737c9b29b9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c781e398ad6a508e13d180a190ee5e80fdce26258f51b22c9d0be8211478e75c"),
			decodeHexString(c, "5feaeb0d4da6f22d104a691516f4118a530de0c42c4fabcbe0b1d5d9c6423bfe"),
		},
		expected: decodeHexString(c, "05ac5fd52b87ef178ae223b06f39b312139ee7d5210efd836a855f6c824997b11ce1b0174fcbff6e483df92520a183c2738950a6caaace6338f785505f35ad61c297ce8147c66913bb814a7b06267ca4935503f38fafc7e3b5c44454a3cec8ecb00a7c2824e6934e5653080f1c07ca5645f9a57095a4a1c11a776e9809c20297"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_1(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "82429d5356efe083fc548f529641c097b70852668d8dc5e88a042ad4f06b8bef"),
		nonce:           decodeHexString(c, "68ad3e3b3748d83be32e9d53608562e4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "de307f461f07a40bae29984b8d47c0b2196cfaad53cff068715c29f6a55928dd"),
			decodeHexString(c, "eaf198b02ab329ba869bbe661dcc8d2cd8fc891a126609e5773650904dad6b48"),
		},
		expected: decodeHexString(c, "59e300269282e688daf96e0877089e5c2677691f6945ebf12b09ea56335310963a9e3247383a151c19a5445c77847b6aede57749b46fdd2912fe9d8b7861e73e37b4aacf72fa9222518e4e0ebf4458e005bcc50067b2270a9f61f00054b12754e6232348e044c854068d31dfd6af7bbf65879ce46a123ecbb0ccad97298d5df2"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_2(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5c49b171332e0a37ccb8ff59edb4c2cf699cd75174ce15b83e6673f77c81de1a"),
		nonce:           decodeHexString(c, "3abc7061b6c9a53a811bfe1350b086e3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1c109d588a4af7d1367d7452af7b492ffe0fe313179ce7914716293eb83f7801"),
			decodeHexString(c, "27477cf2620af0c44412297e47174611dce5fe5ea5d1da2913800936c0e86132"),
		},
		expected: decodeHexString(c, "d1d5b2dcb96b9e272d9612781cf099cf446cbbcfdf4015826291b3b827730ab6d023c58dfe59749f977450e675fdd27c6c646b4cdb9cb219a79720bf7f8956a41767a90358a451c6acb0da87ce630fe36de21abafa4b29135039b06d81ac7655cb0abbd21d316b07d2dacd66ed5806976954c120cac30276c763e516935a33a4"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_3(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a8d838cbe08795ec9a57b4ec7c716e028e65efb1309dae748249a66d23cffe78"),
		nonce:           decodeHexString(c, "1407e13bc82fb2eac0cfc3b99fb3476e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d0e37d29206694092a2d36cf7ab6b07a2a6e2cf46e7cd2b97ae29496d3e3c32c"),
			decodeHexString(c, "b7521d68c084c92a94f57e664cd770b8b25b5a849619d4cfc1bdbeb689c3c84e"),
		},
		expected: decodeHexString(c, "c297492f1a15a93a713ca7d75a5f678ea3c39680238614a0f16cd546db9bd5e7591ac5881bd5a867e43845b03d54abad01b9b8104b3ebfaa183f1d0f073f35a37ae60c8de50622f9e0ef0b435ca328cbfa919d66759069bf8f2e0120d3131c0ad4b5c834687e271bb110268c253f0f388e4b3eefbca9016d839ad42ca0f82f64"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_4(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d0d21190a01f044d9f6a65885bbce4f9aa93f1368e936170c34cf8b8537c4328"),
		nonce:           decodeHexString(c, "bfb916dda9c432b099409d35983539a9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "58443183475ff639d75db340419a333e4eb934db45c907ba7f46c8da33aa2962"),
			decodeHexString(c, "c1f1e17072f955df5bebfc925518e5874e63553c47db1f67f500ebbbe9955af3"),
		},
		expected: decodeHexString(c, "d8634388d73653246c6c99a8a26cdcd52551ebd8618e13928e8ca16bb21adde0cc106d71f58447a1179cd94331e0315c5a242cb5b233a4d488199114cb54a7639daf0070badfb5654d253bc0fb87187142247d5053d2fd671ec1a666950e3b2b2aa3fe8eb871959d87d53bf9999841f874d4a7cc8cf202176f74c548b42e21a4"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_5(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "81b29d54399c4f02b6a9731130523891891f6bd49b072b58680acbfc63f25c70"),
		nonce:           decodeHexString(c, "3ace110ac710e1e4382466dfd7ebc3a7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b33793eadeeec4188afd51d36f2741e45a0e4849cdc2388077a3cc7ff2105542"),
			decodeHexString(c, "6c824d82b3ff1c25543bc6f5c2b3c25175654440abff89df8e49878f4e85496c"),
		},
		expected: decodeHexString(c, "7c3d7b2f2cbdb5c215444cbadee6fd65dc2d4b0df58e3a17ecddaf5a195ff48e0603e8d461fe57369f4ed05e7bf61cec66d7087e6a7745ece1f74c41fdedcf7a7a6ac466a2e7ee4d53db3ecd03f1c78ae7605b085b26f5d49135169981687bcd549ae25c580f21f0d07f80d5a5b075ab5942eea6cac4005224f812735b1d5268"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_6(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "124f490660e8f4cb85c3ce2c185fdc0737eb4896b492fb14f5798fcccd50404c"),
		nonce:           decodeHexString(c, "7719f49172bb06106167d6c370fba1b4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d94d3911ddd7e96071418370ca67d059de090f993ff86192262c09b21a953965"),
			decodeHexString(c, "a05755aed6ef45ea7155f16aed4d67bce063857ff2fc490e46df41915f968819"),
		},
		expected: decodeHexString(c, "bd3f7794939758b5fa50c29b4de8c288208bae130e5209a8e0ded81d9be51f3103a543de3f56bed1bad7834ae2e650d1e5d5c6015e4e9b4720890d80b7ab7b5bfdf8a3e3cb0ffcdda96f475289166b1c3642a5ece5df20c2fe93cec0acab9b4c31402545f3d7877fc489cee15d162de20b09b43b92e50a39256edca1b4e283c9"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_7(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b69c1edf0fb89b8e901524fb6ffe6afca2df563fb3e4ad7c78fdbf617b683974"),
		nonce:           decodeHexString(c, "bda3a1116aea7d2d5aea4ba2c542fde5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "15d9ea848b7011cefb5007c359e6727751ca34e78e555be4a707a9bb77f87c1d"),
			decodeHexString(c, "32754d9f879a8af60ab1c34f700c29617659e622b77db2088ce224474e6ddfbb"),
		},
		expected: decodeHexString(c, "4d054f036565598cf5753de2149237d9fb794d47809eed62158b5d483a5d1a25843cbbde16bc7889873c84e3aa4bae6f0ba05b9a076a827a7cdfe9387e01186e1ec2b48e29f24888dac02c10b66dff55e6396972d5288d83b196b6467145d7f14163bb1a8da0d5ae365c8bc5dc8300048e3e817d72c1a66663e7f5ebbdf73a1d"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_8(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "018a8498057a251574aac12ff5b6afd1991cb58724eb5397076d393c8c238133"),
		nonce:           decodeHexString(c, "02a57960466dd2985da4d1d29d98d6d4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0ecef161188c197cfa847e14d9e1c21e2bc60ef5c33c7d5198f4ab8355098d7f"),
			decodeHexString(c, "4c2ca24a3e41b216ef4910ff437b0b6383cc459756579ea9b5cfb97e79a007dc"),
		},
		expected: decodeHexString(c, "990939c264c668073c3c6bbde2ba0a4a2970d0c6532162b34f3ffb50bc5d6fa13ab90d0e5c17bbf9ac2b0bfa5481cd1a1bc397904cc0e909a34e4e5609aa34a5cfacadf2c615e66777fb0fe6206b8561b7163ffceb14e3873fb9d7e14152a2d6a8e7936834dd5c0e8a81a1e48a95b234e85e0b16c2a2a447c58634749e5814d7"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_9(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e2e62610ae4b77312e2a97f043c9ae3c605e905a10c897732b993b7749d2e111"),
		nonce:           decodeHexString(c, "42db363d6cdacbf064652866a994848c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "388fc641d1b7f0c796f6f30a42368a74bd24f84ed20a9102c9e1ca552b9f2a03"),
			decodeHexString(c, "98e2326b797b5fcd5d87a4f81e48bec81cc265dab79a92914c3665d10f10620f"),
		},
		expected: decodeHexString(c, "299bae6240518b31d3e192144bd0adf7f260f242e1ca171b6947a419c65c0417136519f9c590590e98616d9ef5e9a4a52e45e9859f91ac3d8fca0d232e0c75b9e6b650e645a7b57fb215d23120d38c230f3f6f1657daeaebc5f7ae3cc52eabdb96ff175b35237e2b7fedcbffe451b2d798e1cd1fb27cae2d65b632778156dd42"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_10(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c7e3d1c5652959fc4d937b337e431aad7af523a724a28e34d66c3345ff97f4f2"),
		nonce:           decodeHexString(c, "be4c452a88f470424097856b6457dd23"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "eb20ed19bcb7993ba674a0de19260826648c9ca19e873df26fb1ac8b4f18a1de"),
			decodeHexString(c, "0d9b936931d204df44354dc13f9e2cec38e7d80917f6c86998e387772613faf1"),
		},
		expected: decodeHexString(c, "e8fa080a32b3775ee0f5097e8624a7805afc3a71493d43bb9bf7498a92f6b2de5473331a18965f0e93c996fcaef2669ea9baeaabb0d66b9f34674e79448c5492581ae16cdd44cd24aac25111bc914f2bfe41820d8899770b5792f06666064c810fb8bdd18b23db0e437a2f0b7026c4990b00663974024a37c2a4906c19a3cbed"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_11(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "659f4a17fa4701a0a4a047503bc55f19f0f0acb3a1eacdff2a0c2311b22c3f58"),
		nonce:           decodeHexString(c, "5c58f7426464d7c81761a15ef31adff5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "44dcc31cce2c55a822470be0ed68684167952e0e588381f873a2039c5f88fc87"),
			decodeHexString(c, "34eb4ab8ed50e61d2774dc71b330160179045a94658572eac530e2b02cb3f715"),
		},
		expected: decodeHexString(c, "c196d2b293e38ccf0b4090cd050ee22ea2c6e2d75e7e130fd0d6c9c2988a29cb9595d88001745cfd2df9e81e0b782d851718cadba8ad56b01e68c044ab4253c1af9b41ffdea35fb5baf5da3fe98e2497f6e0ffc055002c10f27564f63b010aa4659f24a89dc7b9ec9c5e0dda4f3c23e440b31e7acd28768fdf4500c33d1f1088"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_12(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8ebac55f0d28e55162592cb5638f3058d964650617223880b65dbe662df215da"),
		nonce:           decodeHexString(c, "cccece63fb664c0dbe4844c00453e229"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "074fca8f1bec7fb505388f541533408dec1faeeca49dad4d2a71502df85914de"),
			decodeHexString(c, "041ebfc7cb149c53ba25a3d51ee451a41e7f4a025751f9a80ded880c4ddc5573"),
		},
		expected: decodeHexString(c, "bf9fd8710a81edf3e55497e7c85da1417951376a11467d757e08c5d67938fb62390c9614f4386f75c7bf3b48b42d2cea72017d3f746d9f120e2b7bf3b6313d27453c9bad1e740086dcef776271f22810962227022a6374900d6fb70b3c0b3de1d471b76409237bd1994826ec8d25d29164875cab70ac3bac500cb18ac3467f2d"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_13(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "671a2d51182c21e83f137787508ea24b1f98fae2f013f329e84d5ec9665fe3d4"),
		nonce:           decodeHexString(c, "50cd543046249a1cd360c5feb6db48e1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "819150f9b17fb4179dd4dadf0166bbdd99d2b40fa976669693d1830ec53317a1"),
			decodeHexString(c, "244e11a5e668c1b18289a7fe3c5a654ab47bcd98b92337ee54b84cb678e2c1de"),
		},
		expected: decodeHexString(c, "e497681ae8040afe142d9f8b6a184c41a5fb135b5be8be23170531d5b5d197da4f517e9e4b7a6ff4cf4c9012135476d55d17e0a128d35f422a8963f359228fd3dbf6693202b3c60f58719c760dc417c5ada1828a225fba5040f749f1863ba01fc88f37373f53b9eea6942eca319810c32468af14e80d995d78d2619768f6f483"),
	})
}

func (s *drbgSuite) TestHMACGenerate101_SHA512_256_14(c *C) {
	s.testHMACGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b2044a32a3f427bc5ca798bba15eb828d6f3ef4650d737564085bad1081b82db"),
		nonce:           decodeHexString(c, "b0c38f1094978b6626cff86bb5f554da"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4bf2c816e2c3e9721d192a670153d620aded035ffa214cb0d7638432c3c6fe1e"),
			decodeHexString(c, "06f515395ad7c3d025af7df781b49b62f068ec9398f6dab31ead6f917c663de0"),
		},
		expected: decodeHexString(c, "1e70791e6a8ce753f959ab75d1225b44452ce7aed0fb53b56208b3f26419f004983c452d724c483b4f9b70d2d84734ce8ec0258d8edfac639b355204e14b5b7bc1d3aee6ddd9f5da54c6cb086d16ce381c2d5cefbceae3afd56c13441d80c7e6081aa68ff57f21d460370de9ae713c17ab14a81f0895e9e492af7c437d7a5799"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_0(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b4c63246127d680629311672c1213953d9c6e02903e9845a1d5b03e46d645a62"),
		nonce:           decodeHexString(c, "4e43b962456a20f7bc93ab7c78cc3590"),
		personalization: decodeHexString(c, "885e6dbd7f9a2507342d1d7c91e1bb5e5f60629829a62da02b0f38b35e7487c9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "40221fd762af6e5ec2f18e388cc2572fd000d9517e1df9ea0455b09cede4ba84"),
			decodeHexString(c, "359b2d9fbeb9180550e1ef3db1cc3713e95430f85d616b136b2ba984b1406565"),
		},
		expected: decodeHexString(c, "b26b0f32b8dcba51377ac1897a71b8081b669c5b1ba3b0c0e28e6b4dd362b2d40c2b717cdf6d51b7ba560dc5939d97a8b09c516892a6c267c8d4fcc887dcae50527ccb1f1d567fdef7eeeb0f5a8fd5f5d637e5b78a5be18fee1abf12e7ad6787772992fc87179f462cdbd09cd6d86c34494dea17e2131b0d61f6497cae4eac82"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_1(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "feb65d1f7d8de2ca9cc8d3f3d95ccd692a785db5d02db51e0193ff5b056c55d8"),
		nonce:           decodeHexString(c, "8b0395855860f1006d3e47c50095d379"),
		personalization: decodeHexString(c, "a012d2a33e3ec0de09960f58edb443dbeafd686d94f11b5c000fab29b15ad5b7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6a7bbcc87233646277c8747811b6b058c75623e5ff1487e983217d74b8776277"),
			decodeHexString(c, "9351b40a484bdd7d575347b75c1e80c7a59daf3163aef4edecfb3054178dda40"),
		},
		expected: decodeHexString(c, "1ce8ad2927cf505716395df916f65a9481d06d280e03b90ad29d75b6b4664118ede74ce849609335b5d4aa1f011758725371b80f34fdaf480f38f7742d1c38b99990938e9dba3a75782eb6c089a87bc0fce78682b110ab2c18f4cc879689fc85f867b7517f0a821a7243213182de7b441c0f0c07413715401213d11942d25274"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_2(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "09a7faa7123b1f700976e2cb30397ceac10929263883b81318ba0b29fb641fb1"),
		nonce:           decodeHexString(c, "af07eb87015680be7ca84c4d47f9a730"),
		personalization: decodeHexString(c, "34f98a1f6f5b2292cf2031c0e99fb963afd0eb4b96b3802d844770dbeed01665"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9109abbfeb98c83a7023714269d900a4d61748212341eebc8194427721663a9a"),
			decodeHexString(c, "f68dc108700ed8fbb471101d39bfc53de7a6734056c386dc03f92162a554aaf1"),
		},
		expected: decodeHexString(c, "fe4bb358c7e783002236dae3fbc2615778461d03ad7d309894ada851254b1295f614cbc617fbf477d71769ba7642961c4682c77b6483db4ed8286e2a89392ec9d7b0afbcb41f7ea273607a86f07371a8f723a1c4cdaad357f2a2a4d40b91478dca43d12072a9679ca402d81ecdb314a48ab7b21263f16d4b9fb82bac2af2c674"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_3(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "bd047b8c447409d8ce7384c4d98a8dcda6229752cf8da82aba7b5391dc0edd1e"),
		nonce:           decodeHexString(c, "703cfdbcc6acf355cecb58b1e4589a64"),
		personalization: decodeHexString(c, "bcec11129cb9f8462b7ccd048bb12f30235e1dd808860dcb8c2fe18494051005"),
		additionalInput: [2][]byte{
			decodeHexString(c, "84eb8e969f47f84c82dc92e59326370dd5a11cad0273156d1ffecb5543ed251c"),
			decodeHexString(c, "5002994dd71e6338e1cd59d263f6c428dab1c72c2a989017f81b583efe0920db"),
		},
		expected: decodeHexString(c, "a230baad00b46c5078a33663efa0bf91edcd4650b149318f16a933cac98ef6df88d2d98a33d0026830812408e43ecaba8ce5aba28dbe5615f83c700f3cfb752d0e63153bbeb3b76fc8ed9f2dadea2032e560aed5da882ff811c3afb9d819e94a0854a3e9ab21840729411e1859de0d7e770339b937b72cc6f4cdbf7608767dde"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_4(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "1fbed2747f542f0687975dc25f07a1847e904a071324050b65e8f9a1101601b8"),
		nonce:           decodeHexString(c, "7c242af15fdad4ad9f05e35bffa326ca"),
		personalization: decodeHexString(c, "161b53c75fc6608c83f6e3a6c19da10a73929febfbe36373a91e101480fa975b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3dcd00e39ae451344b5649a61cbf3385d28ec37f7c8a087009b6b960d21bb0a0"),
			decodeHexString(c, "d631b7732b2b3e7f7b7da836e3d2c8dd9e9f453d0a767945896f48ebbd5055fc"),
		},
		expected: decodeHexString(c, "897d08cffa83a5f77d1d3b154fec8c7cb06086fda6a6ac2c7e89baa23298d121b64b29bd7bc38576141ef52a8fc74eb187c44a4963b9530e3d1923e1c7f6d481ab231a756a28674a92995cc8799fcbd2b88e0853675f0d1b00e2529b51e5b6f8a456ecdbfae678d7f96d7b7e097d741b12cff5b3ce92114caddf4b602494a74d"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_5(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "514933103b0d4980181e7abb3cdea5e940de710675076cf8010da5eec2b8791f"),
		nonce:           decodeHexString(c, "50e87a88c04749f799a06c63e9999e5f"),
		personalization: decodeHexString(c, "61bdc922fc51cdb4fd3071a3a1d8003e56e61deea1a912e9dd9eb8821953dd03"),
		additionalInput: [2][]byte{
			decodeHexString(c, "447e2d7d2069438aa954d7838298dd2395707ce3b61fe4cfddd7704038c451e3"),
			decodeHexString(c, "c3be82d3346bb920bcca53c8d8749cbecbaaf4028957625d66edfe33d30cd504"),
		},
		expected: decodeHexString(c, "af0a307fff4f12f55c58168a8ced23e7f0ca35d117eef104f9adef44f6c4299ef75aba12b8ff842d1ceec0517f1449ccba09b0d038be5a032db0e9f7f2b9bf3d33fd36793e68d672f38188b14ad04a4f3e59e78dde954a132f2a3d8843808a4e22c2ecd825bbcbd46967016cf534847d7885653d4f344c5202989eef28bd8ef0"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_6(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3ccd352cb0ad8524df23121d97e35539b0acb0904a21bb62d9cd9f5ebae01645"),
		nonce:           decodeHexString(c, "445035a9396d81d50cbade273da6d76e"),
		personalization: decodeHexString(c, "60262414d3c09bbf34a2d8e2a3b930a3bb2f430485aeceb6bad4627edb473629"),
		additionalInput: [2][]byte{
			decodeHexString(c, "86df0eaa1ba1b81a2bd310e57ce5b89264d2c678857ee585830a5872a3da5ac3"),
			decodeHexString(c, "de8728469c81544d05cf9754e9861b30b8d9559da97a0e4467cf2d60089290e0"),
		},
		expected: decodeHexString(c, "87ecb75b60906cdeafccced53fb3d7158c43516a89c4a0c0db0550ce4feef307e105b00185f84c34902fcb95aff069e2b69829c1921c4016096ea0657ebe81ea39eb1fdcae3d37a989d6c4aec171e561944f2af69b4d0aa8df76a72a9e2a7fecc3b04650ceb7828ecdfd9d644206e47f3b2575f3a72f25d1fafa3eaa52a410cb"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_7(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3c48e4d5c4abd0ec45bb9aeaf6b02b9bd490a2271909d2abc209fa1aa5be917f"),
		nonce:           decodeHexString(c, "91933d09e028c687ff77af9df776785c"),
		personalization: decodeHexString(c, "489e9397bd3ca368aa7d0b32d81dd8e9dc78e79456feb1277e6c187d897b9c45"),
		additionalInput: [2][]byte{
			decodeHexString(c, "72769e781db74e06c474c26bd589ee3a613b94ad6924d092554c26495af8b6b9"),
			decodeHexString(c, "924ee1e94e62d1c77d45e0ec71c332e4ab201e24d993b6c3fc23318a8a1b567c"),
		},
		expected: decodeHexString(c, "025a2872d89a2d647aae4be7ac36e6eda671844e91dc99dc5f50bf61d2a6333ebb0792e1580816259a6c1b1aa5c7407e4c461f6a5a9faa0b97c07d384db071a392e28aa1e9b4dace126dd9ea5b1c6d7113640aca0e626027c99e569a38c4f179d69a7cdd5af83c62a5ee1e9378ba680ef9c1f752321a38c1384c7d4fc7384c6c"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_8(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "63a8241aa13e576e7ae9728a6969b1c15d282f45df058ded45758c30fab541b8"),
		nonce:           decodeHexString(c, "e9b8688d1ef6e23b651ef45d718b7a49"),
		personalization: decodeHexString(c, "b1e0e48ee47d32aa673c5d5da7c1f6cba2269f7ce451c85ddc0ac39e2ace9c44"),
		additionalInput: [2][]byte{
			decodeHexString(c, "13e48bf3142434f5830752ca1c564bb6e9e828c19fa9123be98db312355af725"),
			decodeHexString(c, "21294b1373cf90c53d111e03c6a3c82e98cac451a08958c869f14bec0c4f9712"),
		},
		expected: decodeHexString(c, "c980c003c2639692b395ff3fbf3213c672ace29fe2d10b335dbf26f0e50df91918129428aa98ad8eea71d192bb7d3b279aa851688a916bb66dfece0a323c89b67dc7677d9ede5bddd44fc18b89e31008870eca510504176a27a98ebb22792ce502f16b464e7d29d7ca0b44856cff607849e083b08697362928100a230721a4ab"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_9(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "6dbead8cb3685a6d0191e996a78737aef9884e8becc227f58654913c00ea95da"),
		nonce:           decodeHexString(c, "1f84917e614a4e6e88755a7e5b81386d"),
		personalization: decodeHexString(c, "7ec9a9973dbce7e5ccf289b6e33ef22c4d7e06c546eb9c5e3e2815d82d88ed6d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9dc8d3afda83a62c3e2467b8105a93e30066a0311132913a9181ff3096d84f9f"),
			decodeHexString(c, "778b0e390e7199fc7867d5736715827098d99d37f5592480c9f2024fdef7e10d"),
		},
		expected: decodeHexString(c, "5c06cb732f1face60fcd33f41c0bc67770a58e3adb87dd61ed5c72c2f73ac2032f0036918c99995bb47e4ffbde2dd96b91e3e13a26dc8af93e3d9046719213737521d35a41044f9458f452cc661e02dc4cfc8323bb5e2cc37cda26c8f2b7d14fe1ddb388045e400abd595329e53c0b4bf4a60f3a22c5e75635bd717a79340561"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_10(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d723d8ed26d609ac7f9d6cb6ee6505cd22d051bdaa36958b8c28769df08bc2f6"),
		nonce:           decodeHexString(c, "adddfc40da377c50e6067a6973dc29e5"),
		personalization: decodeHexString(c, "5ea4fbf09bf753c9b25d5f4723183c6eaeaac85a42ee3b7b360f962851b08ead"),
		additionalInput: [2][]byte{
			decodeHexString(c, "35417ed8e0e15683cdd5baf324571c9f711ab4ef4353e821aca77a2e14cdd9ab"),
			decodeHexString(c, "9322ee6fa460f40891d3530d13b9f2401e4f1fbc5c64f92bb61bf87650496b76"),
		},
		expected: decodeHexString(c, "212476d8b3f61fa93745b2ea73e7249a01109c07b84ec792ea4503c385d16f82292061f1a09979fdd6b80896828ddd929abe806de301aac647a8bafc8d8c58a67b12e25dfe9e3e0a708cbf04ccfbb8e2f3b08f95db4c8d5e1d340492aeac8dd6e3b2966d2cffa925311d19e44ad5502a20bf98a1f2492c42d7b50e422ca9ebf4"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_11(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "06fe6e2a319ee26d8892c37711d1231709edde84abafb438c96cc7b0e7abaee4"),
		nonce:           decodeHexString(c, "271299a6bd3f0bf32ee519adec5184e0"),
		personalization: decodeHexString(c, "d4195410f57c8b1a8683ffc4336cd61536114f943ca15d3930ad832393436ada"),
		additionalInput: [2][]byte{
			decodeHexString(c, "38178f646813d9d45381e96297f453337c4cf8de1a55fa0536a2666b09521ddd"),
			decodeHexString(c, "435c72022295d2ae8f90d6f58bf37836afa213b248ad5bfef0ee9c3f94ccc0cb"),
		},
		expected: decodeHexString(c, "a1a4c2ed245ac5c2cd8cc5bfe8ef32ebb72aabefad2e5ce8ed7e6a481077ced56f86665ff46ba08d6d133386aed19c7aa168ad1a7421021638609eb56e6cb05920e8109150bad1fc43f59abd6abc52f867d11ed3ab11f7edfcdac017207ab54f5c00144a35fdac4d198c4c6a3901aa79c11f7e69ac4da59837d3dba32e691241"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_12(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "27378e8a90a0b2298278e1257ac4ada48096dda236bcb31130977d2aef9efe1f"),
		nonce:           decodeHexString(c, "223a6bb250c36302b37fc490325e68f6"),
		personalization: decodeHexString(c, "0082c632e9e18e1839987feb0b29e6a1b880e7f41d949c2c828a106e79423af0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b178b3548c23e7d2dcecea78965e9d80256f85a5b9a706aa6674018791dcc6e8"),
			decodeHexString(c, "f041a14e2291e952b7268c8c7f96c7fd36dc8f6e0f2e50b5a21cb13f5fa813fc"),
		},
		expected: decodeHexString(c, "7eab54eb7fb5fc71847f002c02f56fdc5a5be00ca00f7a48ac54ccc88494ce863a951e51d652e36a0355c473ac543a94dc69c7e390063e4d83a3009ab722ae8eb9034dfa9ffa78c91ee9ba87ebc2f767be9eb2b564671b9f52cc1484d07e3016405928e5aec3d6e3a7e091686f41362a223a9984b2a6abdbd7285dc7cc5fd219"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_13(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "dc9173e90852c788a7cb07a14b8e429ff03446d80ec87a5f96dcfc6a2fbc0f0b"),
		nonce:           decodeHexString(c, "28c7c982df9bd7a3e9982065629523d3"),
		personalization: decodeHexString(c, "54534cc4e9a2e4baebb04ed83b1fb44321deadc5f4b34580c93a591f6e508c1a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d7cb568022dc436f97663aacbaff5243628b40bd7952f5b1ac3c68d160c8cece"),
			decodeHexString(c, "554121acd7c699df501c42997701e49deae163df0b7f155cfca588590bf5df19"),
		},
		expected: decodeHexString(c, "6c2a337543c096844b9f9ec87a3c3d93bece6d36dcde33d00ae1dbf3ae3b1eb45fe76eb079291379f323df545f57a0808fb66cfb96bfaceed809e9d805c366282498bf06ccd6419a2294a240bddf19f1e27eeee812d97ba78421da227d69d1e568bfe8a00396f17bcfbd76fe6a97f1da6636676f300853f0cec7dbfa757671a6"),
	})
}

func (s *drbgSuite) TestHMACGenerate103_SHA512_256_14(c *C) {
	s.testHMACGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "439a55733a39ffc77f6b732c2bef562f7244c92e24b0e039db15269e3595cfd0"),
		nonce:           decodeHexString(c, "66a488a9a57e09dce4e612a3c48366e9"),
		personalization: decodeHexString(c, "cb2168f5d0518e08b198fe12ae99e5ea795556a5450ac48cf5c41cd2ab06b170"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c168776136197bc3877c824461994a4cb020b61ad1630bd8f38d0db2110ece03"),
			decodeHexString(c, "4f54082a1b9e6cdc8599e1639865c00fd758f403adba5cb74a37e2b20f29b654"),
		},
		expected: decodeHexString(c, "b48984588cb54f78610e05c8a7ce12c630934f5ed2e4cee21e523fc65a7b8412189ac51823ecdf493844a859aa87f3e84645f22f0914245043f7b86287a85db97697bcc84684b072162c2fa636569df83fe85f1ae25204786bfdcf5eb85006d09a4d97b162248daa8ccbff9eca28b7bce9fdbddcb8679ba50b6648cb3bfe9af1"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_0(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e0d0a7dc4b4658749b4937ef523d15ed5fe24141a0e22856392f071dfe237eaa"),
		nonce:           decodeHexString(c, "c7b9c88df2a8656dc3d57f5fb5a0c169"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "842be51ea1eccc708f189a6e142adbad641004b3f7f8a59d3201dc51c4ae3db4"),
			decodeHexString(c, "0d6d56191cccb8e99c2d7f06d660ba7a20b1503ec23e550572da59e8877c45df"),
		},
		expected: decodeHexString(c, "0dc1e0bb6ecbdefdda365c9231ef6bfe129b4ebc9d744b1987c59859432f535c69757344d309dcf452fb7445bb27ca77e333d97e46844b3ee50464713de14e3a021116610af78c164a138f9cc3e3446dc5d5c26c4c6f511d5c55bb735d86b76688b45a9a837ae892e50f850530c8f197ea7d5febc34fda405d91895938cb2e1a"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_1(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7b302d6d92443decd1c603b6d0c9dbe219c5c1c24f6a0b675e51c67a900ef327"),
		nonce:           decodeHexString(c, "2d351fd288a9347b3ececadbfeaa3bda"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d37dfd818fec362200d2714a3b7b29fa4eb47a7f288dccd873e703cf9da3c20f"),
			decodeHexString(c, "89419ebd3669fcf5db3872b603893a3538b257d38f34475f40e3b937a91f4ab9"),
		},
		expected: decodeHexString(c, "5a8836845c21ee4261edc66e36cd6bde3d921cad9e9ec394923fb251e85b172e379b01c45fa80eb1a8bed8e91be641822b284b1ae5d9d790af3b41153e4d437d5227efa6ee7b2f18ed5e4b9ab99b85d710422907bace74718d5b674dacf968d63ff08be4d964bd8645642094c0e5c22b079520d3a4df4543d4ca77e4a2e7b173"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_2(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "eb37bd350c054e7dd0eabb10cfdb693b8f0bb8d67f7a512990f16297d5c74ec6"),
		nonce:           decodeHexString(c, "98f694aa2c7d89bf586b840362b4b7ed"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1fc1dcdd773cae02aef23eb2e76992904229c620ec4690d7d79423a0e7a6ed50"),
			decodeHexString(c, "9bc5f10bf30f0371af6db4e85b77be1df26d64204e5eba7766e0af70a7f09049"),
		},
		expected: decodeHexString(c, "3ff44f1184b42a48c8561385ead05c01f9a840b0967ebd0f847765e4d964550fcc6c05168a85002981d1c90857bf129d23d4c25881e52a82188aa56db1ecfa238358bbe45cc8a0965e082d7699cbb3522432a9aacd83e5aef097ea4c557c247ea4675f88ae78cb8a286dfe30648c4b00ecde039742e6ce53e1d5f3278152682a"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_3(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c6bc7beb1a4bba40f0e8e6985d7c1b43ce359e226997b50cb59e74defeaff024"),
		nonce:           decodeHexString(c, "6f58957db3c45681bf062a408038f9c7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2f1b3362aff83e37a0e94264917924a0f55c3255d62d925ff4ed16d624cd590c"),
			decodeHexString(c, "59d01551cae1dbb0f6679848f920d33656d6c560eb7413ff63b9890d7c91e5c4"),
		},
		expected: decodeHexString(c, "5a5804c33b9a8f7ebebcb0d39ea2580fd29b7fc3463aa5174d40c9fb81ddcedf4a6dca163fbcbc9184ad6db679102aaaec7c414b28db52bc4ac6ece91976dac4e496e7ab65ef3439901443e81fc3e68c117699e5e17400094232f4ee21cad8828dd86d9d19f29ef471b0ae23ab1c407a1e69eac4262c89fd497a4efc032d87fa"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_4(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "06eeaccdef1773c0eddc07ca8fd1bfe65787945167be6d9a4bcd17b49cc635f4"),
		nonce:           decodeHexString(c, "542866f5799fa9a7177e889664e193d6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f5a04d6d642faf8db682f73d71cec3b1b37dd525a154a79ab00768369b2caf53"),
			decodeHexString(c, "ac44cbc8d6a4db3b88e5f8234b3e4c6c5fe692414e15fd594755fb473d9dfce1"),
		},
		expected: decodeHexString(c, "9453b9e129278954dfb6bb52d7f98fde43dacb76398d8fd0fc4cc7adfc39c92899dc5b1c75d4e2c418ca6967b3d6cc2039df9aa12bf92ecee48f99abcbcb7adccd6766dac6a13aeb04cd86c48db9cc5656e63cf1659718e6e439434472a0b657eb8c29a10a907f7ded9a2b37cb14a0e567be3932f88f0591c669463e656fb059"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_5(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a1dd4427a148ac81d3b01beed4287bced7c7ed65d2ba818d8d0cd6d7eaecf369"),
		nonce:           decodeHexString(c, "6a2e4e2e23f17882b8919b1059b3f332"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c250cf7bfbd9a7df188a0bc018cf6b95b708ccd716109d934b62da508401524b"),
			decodeHexString(c, "a95ac33bd369ce6a0b2efa9c09df583e363c82f0f22797a78b3a7339ed25703d"),
		},
		expected: decodeHexString(c, "8f54b7cb5cbba5340673ebafe57b95714a7bfaa681d4fd559e0d76a994562f42e776a0d53c17bea94f6053572cc127507b5c964996753aeb4df9d025fbf4c21e40164ad7bd6d104786df843f18d978052ade05b70bd89a7346f3e0ec547c67693bbb297d6df3e2dcdc8324e339b1c75fc5cdc251f3eb6f8d6254dd6b70f4000a"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_6(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "bdda95adb55c7860251ec198def364c531128139c255037ecba25d5b25b4583e"),
		nonce:           decodeHexString(c, "c9a942174fede387da76acb0ecd17338"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7c7acbb66a5635d664c00261f5340f82524fccf61a61ebf007652fea2b9909e5"),
			decodeHexString(c, "27d242168429812328c5a6e60e08bf2df9a14ea289ee94f296d3e6c95f92d493"),
		},
		expected: decodeHexString(c, "12d0764a5f4fe65722d0d3512580c0c4fa349a136b2b85d2ce8b0057fa836ca84806f9540673e339bf996cdcadcbd1b216357dbd91a0e53a98be0b5602b24d3ee4b14caf7e8d166f2ab35a91d111860c483dc81ce016f48a993f00aedc3a9243ddcc59be37f1fe33d213c52e03cd66b50730a6705096fef56928cc238fb5fdb6"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_7(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8c2b18e46263c99aae4815966ff5bcdbeaa9f0928ced9cef65707db59a7f502c"),
		nonce:           decodeHexString(c, "d938104a2f260e26517d1e00160fee97"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "52eec49185ac0cb99bbd4541f37afb56aee7aa7b042b39aedb6456d9a4ef64c4"),
			decodeHexString(c, "21f1766f42c31f357849a0d2f8500a7eb2dabdeb5a99d365da1704fc008fcd50"),
		},
		expected: decodeHexString(c, "be0089e27d3dbc40cff4bafb3e3d4defd4b081f415b827ec74b47481204c7ac98bd091cce7277f344274cb68fc263470219c2880728a3c2d6dd9046fb083726a45a07ebe564baa53a4769a367fb85f606b5ef102d68687d23ddd871af71a460795a6851a77dbeba8287b3cfa5fe987623f162292a4507c2dce02f54a0aa3f267"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_8(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "83dd78e06bbf33068b8f4ec5794efd1f3525259fa5433d58063b6f5c70610b45"),
		nonce:           decodeHexString(c, "953eef894f770584ae4c202c904cb5b2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a8b57658fe81812aeaed0596ac39bf3f332aedfeacdd7f06dd9ecc863f72b256"),
			decodeHexString(c, "7e49d4c496c97cc3cf863027cb8ac8f45c39cf378e520b15671bff3f02fbd490"),
		},
		expected: decodeHexString(c, "5b30968afc450a87ab65192ed4dedab2c4d560f335d4f05ebdd4be12404a054f3135d263ec55a1b642dc48786b912ccd9ec7f168b7b04d82d9a58c64385257c5e7f79dcec45670324a50ca60346e3f7156223edefcd34e2e886f705f7c01a0832744897b21949bd4198c5ef1d2e55c90029051eb553ba97cc417c0103f3e2877"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_9(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "bf1a422213950cb9a00290feb88dcc48af3e30aa4317cfffd5dc4dd456285eb2"),
		nonce:           decodeHexString(c, "e4cb43d52c62a3abcf121367a0d5c607"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6cd7aca4227de91d638bf97771ac772f0825d8baefa062a7d0279ac17a088b3a"),
			decodeHexString(c, "1e14acccdf1e40d5150168321a15ece4abf8862754ba19b566d5c7c7dd037d38"),
		},
		expected: decodeHexString(c, "f2d89edaab4ef395947239a92750c9d5291dd61155c9e201e1d0571f49e9294b6f1093971a7585e5b9b402e4b3fd0319f6324c17ba9c9cc1c8105a967fabae0973cacfb14cff8d296588b40bf7e56ec51d290b0ca1604ac2e4a278b54dd5fdaf49791dde69c510a7009e24dbe31939f75c862a7094a2d9b35b950d059235d8a1"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_10(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3123574346cd99ed7f273f896afee137e589c86fd029758270e6edd04d646b1c"),
		nonce:           decodeHexString(c, "ffdb7b4363644eecb036fa8416f50724"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "775c5e8a229036fc5c175835159316faef8c788201a2916df7402a8e9616d89a"),
			decodeHexString(c, "9cda15fa3f0af57fe853cedac1bb437ab635c474e1e79cf1cd51b57e0be3ab9d"),
		},
		expected: decodeHexString(c, "75f937d3e6171af73e2fdfd0f63bbd3e1df931fd7f2662aec502653961abf44462b68485c55293652899471259029e321487bc9082bca728cde0d9e87a51af864ed950be1b9e0a07c0c985b87488de169a8be3b0253f3a0cfcf8c88b17258e83c88be7f0640854a286af3c1a646e73eea2c41e58210cb0baf7e26c766a0ca43f"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_11(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "025f1495a7e0719bf4124f932ae686a6c3935f9130df615d25391296f4329525"),
		nonce:           decodeHexString(c, "a986397d598dbf3a14d929bf2bd29cf2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0740edc93b19e1d92637b36abba92db0944daf42f937db25f181130a612802de"),
			decodeHexString(c, "17553d52208c4825c3be199055a67180d9014ce4ee9536711f9d077786258208"),
		},
		expected: decodeHexString(c, "4b30fd3823b479d6a76134f03548266c056b5e3818a3f021cff07084bf8a87cf143e9adc9d864bdc9ebea445000cefdfc9b31efbb44d637bc3a893baeab84dc52dd21fd7ef551ec73ee2ebf035010a297df9b2795280398c26ea24089874214cce5f952a1f17926ddd0a074c61fecf1510a164ba39b4d90ade61d378464b7bd0"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_12(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a40ca6707a803b3c01a9f3cc1b03cef8f9ccde82ddaa49ad2f636ecee4b88586"),
		nonce:           decodeHexString(c, "fed41de8492b78b9a6f0009c617ec911"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c266b6b891d27e806b5d9b92a3b2e48aaf7e81538d9d4afb53235bc37727a61"),
			decodeHexString(c, "d6df874c7f49fb343b57c03132f00c7d5b338866e5a893746413676f6c684c31"),
		},
		expected: decodeHexString(c, "cd3e84fd13f899853b5aa41f0ca50370a2ed2b7d1cdf262d9df6ae437a41a0b8254bf7104503d1da1abba82b6e372656af5c986f032b6dc7ffe9568a09afd72d79ad1012af1c50262292566d70923628526eb9f07030a1a1a94d8341b66126bc91d34b291bb59bc0e84c8f7ee4e9b3568ba1bcacbeaec8da43c9d8e0d327e8a0"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_13(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "abb925fb51686394dbfa73ac43a20b6e5b2842e38a75d84cd309c95b5e5643b7"),
		nonce:           decodeHexString(c, "57e2b9eea87dd34ac574c1f639ed8624"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1dcf94cf20572cbf3e1b759bb12c8dad888687ebe8a1fd3753eac3717ff61153"),
			decodeHexString(c, "25e729b21db7c2796fd0bdae714fce0c585ce842ef08f964a4191c2d920f572a"),
		},
		expected: decodeHexString(c, "5c9d6909aa6d9b391952cb8285f1d99d1aa78d48ff52e5892bb893e29b4dc04537fbe2caf41d58ae139c52fb413a51be888d0e7720f0de0de191f6f6de66c551281dbb762f15425d14a1a2550eef206a55cd57887e24db3a6c1df09f4c9765df690dce0bb44cc96fc989095998aff3ee1b976637d67c1ff02ea1dd2dde692338"),
	})
}

func (s *drbgSuite) TestHMACGenerate105_SHA512_256_14(c *C) {
	s.testHMACGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3faba299095bb9f595d0fcc1679bcc814d341c0edcf9b5021ee3d90083ae6f83"),
		nonce:           decodeHexString(c, "c0fcb2dcdf8cfe42c4387444f60c9dae"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2a8cf10885a141125dae18c40f7bcb7e09c1b2726e22a7f776e4735279f784e1"),
			decodeHexString(c, "7c2db5278d2336764d274bf9624db7eecad2db11c6622831e47338ea3ef02ad7"),
		},
		expected: decodeHexString(c, "08ed2c3aa35812485ea8aa0b16149ee4f3207a0368be2035e202797939dd2a1c1db1ab244434edd783c7574bf48fc99f93827a1fee91cd1db1cad53512b6931d2d63018045b2a50a9b523a6ee212fbcb21ffa57ef998b4ce24e5f2f875a8ff3a45d8602cd56cfefd2f61f73d00dc33304a464f4fc1f7dd311b516a8da4e91151"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_0(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4bb71d074a7918510266f827ca1b33905975c2d999e9066ab213aa0ad00a3152"),
		nonce:           decodeHexString(c, "87758cc57f2b197f72e80291209731fb"),
		personalization: decodeHexString(c, "002ded7492cb7ea5d753458fd886736b9e146021dd01e1b0898b51222270a428"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6ef45c64221e317e93895845d498de94966e01a6ca3a9e84fb4565f388738604"),
			decodeHexString(c, "1bdcb926421e9a8a23f1e1ea948b1d60ab2ebc569b9e89c8d644042664a9af37"),
		},
		expected: decodeHexString(c, "b61b548409f45e3a8d57f2b1542da3d120396adbd5d7d1f65f871d8a6a12478875d855f777c43b0ca819c997bf00a14efc0882753a52293dc92f373332f027edf133d9ec2741edf080fea17391be3bd66f345f03aafd6482f3ed79fe3af7ca02ebab77efafcb71cee6831043621905d94032b1ba8c8990a05e34f383c8a920c5"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_1(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "78b29d0b561bfa1da48813409bf29e8bac44964aca202cbdb987a04fafb856a5"),
		nonce:           decodeHexString(c, "0d7c60e7066ceb3261d4307ca5c13df1"),
		personalization: decodeHexString(c, "287dc6cf22e6bdf928df8eddc130e90bb0351d031d23f2ee26e308a3cd34f990"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f633edf6fbeae2385c758b6c05125c27bede61081597dcf49bc6a1370fd4ef05"),
			decodeHexString(c, "2b1334ac80215a9dec28cca031342a67d9a0cf97abf982818d777c8e57a84bde"),
		},
		expected: decodeHexString(c, "376a4b8491382e7515ff53a46075f69ea20417267f298fbe50d7fcfa376aa73e681ec54e54a3a9bcc3122e7ae6e735c4bde2fa8ee6606444f20ff4929e00f9dc2fb6f423395e79ed1fe68b0099c20990074139985f325090ac470be57c4698369198efe7be568582fb70e158512a21afc75d366f1587723e6fd234fa82da1dca"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_2(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "fd1df2dada2b42f0e60b7f50158c56f101c25ce4027e423428e4f0c1c3dcb3bc"),
		nonce:           decodeHexString(c, "1534aa910ff1886b94f504877cb0cf35"),
		personalization: decodeHexString(c, "9985938153af7c71540806200bdd8d34d96d8760e49f640ec85642dc17470697"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a1e37d07f3d66847e10c2f390936d613cd61924bbf11cf9b661d4734186a9274"),
			decodeHexString(c, "41c919ddbb27809ef4fe4a0913d8e1a72be24f41fda73474daf40748d06e6ad1"),
		},
		expected: decodeHexString(c, "835fe9170519fd28ed6215eacc7fa12da2d643449648d51af6254e822e9755e8b4b296065ac5297b6346937ebc2b2de81aebac963fb6aea7c285acde54692bc2643d261006eb833bf83d970ecb4077259df6bcad04dbd16912ed9df3bc292b4ba58c2fd2d8c6d5fe2e9281aa6dbb2c771abb8f0baf449349542796b1689771e4"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_3(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3ad9292320d9c7c91f8aaf15ed92dfca836e189251d6b84b8777958f54f9532a"),
		nonce:           decodeHexString(c, "e7399a99975e2cb007e1e1f5d6e6b9c3"),
		personalization: decodeHexString(c, "b032d5b89fd43ea6b245d8ba4f8d33d669eba0fdffcdd3683609a5c24f5d4f63"),
		additionalInput: [2][]byte{
			decodeHexString(c, "22d27bd1a3e3cca2b4af76d3f4c4bf6c53f8bff1f27a6492ad6bfacabc51ba7f"),
			decodeHexString(c, "2b990b5dbc8f67278cf34722861c4b6836d299dc7243f497411bc232b030145e"),
		},
		expected: decodeHexString(c, "86f38742f138437c0bd122876651f1c3f53a4647f5d45b941b2c1a848295f1f35c91c86c62048724c43be820cb5c183f60a792cad40f4fbc8efccb4886a8d703c6697c02a50df6e6797cb22b1914e874a2dd635b90491a2d4af76c318242bf7fdbe0ec5a19498e637791a0e63fe28372f12ef6f573d7b15cd658fcf7cfcc2852"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_4(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "0c86923b8da00c33e427b3dee30a31d1ccdb9a52d93317930647ac62b49beb0e"),
		nonce:           decodeHexString(c, "1c13fdc25b4116bbeb7ee8a4ebce8d21"),
		personalization: decodeHexString(c, "9d5ea6d69c5b41721f6a70b1d6ba03eb66d656503276c800b62c959e3969786c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e6913ba38baad8e9ada8fd4df657cd15befa47b73f310406c7b5fe933ac2a189"),
			decodeHexString(c, "07a3c24f8c84c9ed496794f91f38e2ace4dd87ec0824b50f26c83906ff0f5b90"),
		},
		expected: decodeHexString(c, "a533eb5cf4e7e7030cd99b83559dbeda02bf6f4f4cf65d2093ca5eabdd6c9756b44c72a739951fc164fb250addd5b16493a8d8ca1973f277924a34900017437a08e1df78c32923e2a90fd405c4242819e28a976c36d80245093251c09e2fd8f2bf09d7d68912c7a2447aa6a0effbe9485107bbeed529a12eee084171c3aa9bbe"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_5(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8ec41df314f3e83bf523e074ed5d95f3b283a02bc4d0344a018c5337076c0a4e"),
		nonce:           decodeHexString(c, "63e9a3825716ab2baee337beaa02be4c"),
		personalization: decodeHexString(c, "5f61772db899aa4a311ec6cfaf5b5084b7ede2daad93e625b41b4fab1f392a9a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4e06b930ee8e733a06c0a27ca0a5c4619f76ec40e1bc2da8e5ddc6924aec32ad"),
			decodeHexString(c, "bc8ca78161d58889fb44bb1a9bd9ddb7aa62182f569d8409a5e0bd51106e62d3"),
		},
		expected: decodeHexString(c, "a61b58890e8fd7938cb0eb267ccad80eeaf8afdb5aa402bcd332acd702bd1d971ad10c028a07dfbbe224a82ab13c9405c2dbbbb9ce781a04e5c719f3046f7d9700df1ac4b99056633599f617838b8d345e317f6c438e5f524c16937ca006381a4d2ba690a1538cddbc040fbacbcd124578f02180c397f4ac537969f761b6da3d"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_6(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "0b775ed04ebbed443b3b1a060504d02367df95473a0f950fad0b44e2b20dfb05"),
		nonce:           decodeHexString(c, "516be332dca34844a36086d4570c513f"),
		personalization: decodeHexString(c, "efa41d6ed6aa470e28508e71f1a03cd0b16f2b47e6e8eca90da7db66380c86e3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9fa5da082d44fa3ab3c47e34067bd81d266787dfadc438449823f7478aa57e4f"),
			decodeHexString(c, "9b0c63fdfe85b1989cf48ce4898aa62d8734ab477c3b1387aeda070911913db8"),
		},
		expected: decodeHexString(c, "e7fd604da5050f8dee29068aa65ff7ee93f48fc459a5e3a4499e429e309467f094d931406e183e13310e6c52752d17f86b224a77b1cbef973dea369ac565be82f6656d8952b66ad241f74a9c11ee1802c237b0a9f5e5655e7de7996b9a7e6fd5e0d837fae44b1bfff7fc7731038e390ae3fddc36d972c0446ab3726935437983"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_7(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ba4a457de181362612378f0a8d91ddeee68ce64db6766a2be01c2e87ecbdd88e"),
		nonce:           decodeHexString(c, "8eaba622e04a14cb0a08232109a90c66"),
		personalization: decodeHexString(c, "819905ef1decdaffdfff08e7eee33bc2c4eb70710b66fdad28d2ed917911357d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1fb810ee6d4a25478f47503e03298457ab985c896d1a91bc98f07636e0374c73"),
			decodeHexString(c, "4c4d40679dfe61aa13b512ceb05743429220c38170fb16e26e698d2172245acb"),
		},
		expected: decodeHexString(c, "75c91cb632eefe47c7672f47a00ee40bbb301f2f0163b0cbd243ae0acf986da42374c59e339f4cba815afd06ef9d1b1c5c47a474fe27706401ec7a58c7974e4048b9f78a5c4a1ed4906ce82dbdabc1337b19cd75f2d0e155f25c5298968489c7eb7b6784352825d371ea4523bb5a66a7f3472aebbbbad2eba7fc522059d816f1"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_8(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "2a49c5243ab6074e38c7dc087828a6707329c713c61417d499649ce7eed92d52"),
		nonce:           decodeHexString(c, "cc0ab3694d07207989624b08faae8024"),
		personalization: decodeHexString(c, "3e5bef2b8d79a14c23a946dec7095e56cf197e1b397beaa310c25dc2e2c875d8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "63c5cb3fe315fb0756173b9c7abd475c1635048d138c9fca8e8f31c94757cb34"),
			decodeHexString(c, "a32f9bb6c0d74edaa332c70a4d1f081a306a309816a25cc1ae1093651ab4e10a"),
		},
		expected: decodeHexString(c, "39acda9e511780fdfd83dfeef8660ce20135e6881f559a1d919363616664b44a255a3d7ffefa55fdcda6d090d8dcdeb301b3c888ce7daa9521fd40376fae97390d9f33bd77a008a0f6bd56107e169f588c904d184d5da0775aba42e1683a8a2d30ae89db328ad65ec3c8fc53b06612158f70168934fa552a5a684807765b34df"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_9(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "834a02c3f2318347302892525aa2aaba338c57388ec7ae180a7b3143eb78c1c1"),
		nonce:           decodeHexString(c, "00f39e723b85c5466ba5e0b0d151fde6"),
		personalization: decodeHexString(c, "1d33ebcc8967e48f72e2cd79e2c6703aca216482aa85224e8bbc8d1bbd88b53e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dfd430f17d253ccc85bedaf2d11cbeb31f9e8695c7db47c581fdef9fbbfbfbcb"),
			decodeHexString(c, "a8e58de4315d407ce6a6d18421de5d719e53c137ce93bf4223142eeca6c970ec"),
		},
		expected: decodeHexString(c, "919ea28acc4213f1b2da34d398c0517f5308e82b68bfddf6c762b85298507ba83c38c8c4f06c543a0bc346d0a363691325392feb3fc372ed790918f2d5d5d7d110a775a85d0b722a20eb17786858ebdb0d4c6f2eb754ec7a8892c7c0e2bc3a8d9e0b506e5c7c19465bb9239112ee59c5ae88f0fac046ed4df7d2e67ed4c3e2a0"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_10(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "2ab17f19b3e8694bc48ae806389a1e7e0e48165215d5e3822eb62436a036f34e"),
		nonce:           decodeHexString(c, "11292bf1da36f9c1cf4ed1b8812e40a5"),
		personalization: decodeHexString(c, "8ca483d392c9e54b2bc6153e37eaa5cb2827dbe12da79f24e8d0c521d87564c4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b2bcf6d506b7cf753e26301ffe669afb72f822241c3553cfef78d1db2a2f576e"),
			decodeHexString(c, "f9eeb1e416b4fd7a0d9d77d939c74539328d4ce45d1a0f914fdf8de3fa20d3f6"),
		},
		expected: decodeHexString(c, "45659764dd888148cd38359fc498b7718540dc8861052eabf35e1fd12a744724127feab298f74c697de786212b54e7beadaf3a65ec1557211a0f8540db21899a1b5fa248ec5913f38e72cbf419fd51e136709ff1c95caba7ee165cdfa8d855bc9c8a04ff605f4486e58b9cecf4ce3d0c1f93ccf275da82c0272f14e23b00a483"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_11(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "0c3eee185623a91b1bacf3985cd8eec3aea43af69c0a13d3157e72770b97cae7"),
		nonce:           decodeHexString(c, "8120cc51fbbead16c4e2aca7e426cfdd"),
		personalization: decodeHexString(c, "4747d849009ef9fc3fe575a59f05d9b5b436eaac9aa1ad47c8c8579feca791a5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a58f3425dd0550fedee553e7959acfd15bee30085bf82dec19190daff4899d56"),
			decodeHexString(c, "19c192cc73b0326cd5774219c50ae88e90931875959ce046dff88447affec518"),
		},
		expected: decodeHexString(c, "5d6a29ca64e883ddd3c71db3b105670495bc6af1c89b5b5ce107bb3d45de616ce1528435d4bf497616db499a1b2d7363048a56930297632ec565ff90b89191c69ae6783d665c3f55ab10da0b8e38460a825573d827d3d3f6126e612e71426311f7324db7612d6cf0b1dc5daee2e69c250ca7d3932cec81291983c7ad979064f1"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_12(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "cf969c2b0fbae5b10d6e8dfb9b7cd7792d979ec02a6ecd7a3438416b160972fc"),
		nonce:           decodeHexString(c, "96015ec100068defda4ccb6a1be67a2a"),
		personalization: decodeHexString(c, "681e4517c2c171ef6403fe6f871c19188dd86d1df8fec5f2f73570f8f5d5dd56"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f9bcb08bb3edbe09e0c49a86586b7f1bf211f44b88507bd0f63fef7736b67586"),
			decodeHexString(c, "b854b478caa8446f9c35f7147bb23ebedd838fa11b3c447e73cd287c717f0dce"),
		},
		expected: decodeHexString(c, "3c2bfd58d0fcda5224a0e4b97e5eb079946d8645209270e6f1d5996d52b836549bace9ebc1146e29ec9adbbffcb88e7452d917f41d61903754f11a8ab20f2a7d70f56d453765fa47d0a62b82b7b328e45fb3e09db10d6bd3b43a422256b5fd52d32b7debf080bff1e6e69a34ade409822136a6b6ccf05c9c30dc9547a841cbc7"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_13(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3ba983ced5b33c894be227e66563e30421784d3a4a5946254fd2fd3d9feb20e8"),
		nonce:           decodeHexString(c, "fc78fd1db8a42289428bcb8f6c9b5d49"),
		personalization: decodeHexString(c, "ec72929a30306abd19079906afd105127c80c617a354b96f6836e4ba10624ef9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "21dec4f9790753d65062dede826436a7ec0017a54705272081ae8c587c27d163"),
			decodeHexString(c, "9d9d8efb6b71d0e23d0b8e57762eef874717c978e581a15cf21921eeb03ea09f"),
		},
		expected: decodeHexString(c, "9ac57f843b5780b72007eb1ea44036c17226af3f6c35edad00ce2a51464fa565eba0fe16c56a1a3b710f1d2a9ab155438380c74ac056f60d59babbac202baa0b8f11d850ce6884868222fe045c5eab6d346082429743ffd1d2da488cf2930d50eeefea4c1ba755c643e66c33b25fd35a653d264fe767c30cb949141316aab1d9"),
	})
}

func (s *drbgSuite) TestHMACGenerate107_SHA512_256_14(c *C) {
	s.testHMACGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "6d5b369b8e65241a179177d78fba195841d8b8c1941d3a3a85b83bc0e09a13dd"),
		nonce:           decodeHexString(c, "c40c452fcddccab9af07625c075774f1"),
		personalization: decodeHexString(c, "6bdd668cb196eaee5fcff0a2a82b8b82d5d93242a019d272e0f3f3e67addb891"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f8dbd6a405435595b2520bec5026075514955a666e4ca34b7d0339b0a0bc5edf"),
			decodeHexString(c, "d9536bdf1c3944d4d239b6dd13750c16a2780d943d4cb5fbbe418189a7d65432"),
		},
		expected: decodeHexString(c, "b5e12e5082c09fbdda81d1a2229ef9bd46db84e62ecbcd1a2c4e88557f8ed3b5af740fac2bddaaf441b66084ce2239adfc9d02f001cd23470535f13ee6ed73256adf902b359930093ffb293a7c007074582a356529ea3ed9a5ac0a1a3f62df5fe09d27f5a7ac6abdf1fbd5f5e5da70da5e3037fb062d0817b077b56457238108"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_0(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "783d38088bea13d5fb00f7932f080122efb375969120d48341f3ca84f01ce2c9"),
		nonce:           decodeHexString(c, "3c4740f91f3a31c9c7727647cd6fd009"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2ef7e40e41921181f5b59374b1f63700cfcfd04e35e0485d3be0a0e6fa7aef3b"),
			decodeHexString(c, "05d755ae5b808bfc914f011df54d56023069927794560f9420231aa7ee525a46"),
		},
		expected: decodeHexString(c, "b4e5d453b3902989b088e7293f8c893d0a91cb5ff1bef1bb9c467193db6f2340627a15d3f6c1e1ce4f280ed184328d0e2bd97c147d8199222a031cac6e7ecbb5042d049530851724e6491e292d59fd5ba5544ea76c437a2d74241de9586ab1cfa12237c3f798baf204f82c6439fa2b2aa29b641581199dd2d7da85867c757eb1"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_1(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "aed1522484b9a61eb9ba89a869076425db705cb6d1875a6b0e70eae6bd8e2917"),
		nonce:           decodeHexString(c, "bae941b5451668cd62e101ccfec0c2fc"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b85151916205df5e673788c21fef42b9d29dcb46e1836c3dc04a8df66a3583c6"),
			decodeHexString(c, "aeb9e301b8d98f6a1810c20d8a9e40256a6b630af252345e9bdf27ac9a5d2b6b"),
		},
		expected: decodeHexString(c, "87db11298f748238e3af3782e4803bdc543e0796c954ac2517d0e9ec030d2f1e08e0f1f6c202038081bef42ac6394b8f33445e19d502eb4fdc986b6f88514000d73e4d2cee64432535e90d8b58abd1dfd07585aa8e9b70142417ad9cf92ae3dd9f5db57b5bb05e92b0cd5c3c7c487b81d0df29c67d4893eac3bc55078879f9c2"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_2(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5d309e423ced3983e5f8a4c6e83e5361eb86de1eebe525e429e9d78a670b225e"),
		nonce:           decodeHexString(c, "69de69519a248dacef84e6d405157e20"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2f48be38169fe63c7635781b914d4f53fcec11294aab76be590141ecfac45af0"),
			decodeHexString(c, "3111df83df1d5c1d4788b56817d650a6df23215c01235924ec4e4f1407261ebf"),
		},
		expected: decodeHexString(c, "97adfa7bf97c65fd2f386e733d15d7bf840caad0be70def089300f5dacb131da058c5602722ad87c72fcb5427636bd43e5a88ad4d81b2781d59fc7faf02852016aa18a3b6bb5a126d8e20d9602c2d2379dcd46301aeed775b16e9381b916e3edeb812f54ae32a7242f0d93f23a3f6d19ac41ec4d6d90308d4944e1b0576d1cc3"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_3(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d48e8339bd48cc2568b9ef7d8e5666e3b2ba78ff19cd527553c015826fa62fec"),
		nonce:           decodeHexString(c, "6c0215f1dde19d420db4f0b01d423e7e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "33f2d1aa07d9ec12ff67d48b1d1879a781f7e35397e92f6e3d71ed8728bc6e20"),
			decodeHexString(c, "1a5611bd7d3a82cdba3314b579dcf6eff263445b43f029a8e0455ede1123d1c4"),
		},
		expected: decodeHexString(c, "aea125feedac1ce47b12840ce75bc6aeef363974d2603215f5796da81c10a0790a5aad8e12ef6718fbebcde9ef873bd87e6be79dd2d06b680ac6e8769727d139899bf79125d7c05badd292f006e67e6c66659fd4c89d0653fe3a0be1bf44c669f14625cdeae4e0a90ebd66fcaff6770bd3ef6dab5b687cf7055e5a7eed9e5cfc"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_4(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a3eb4626907eaea77b226c7a3c8825a97b313e355a7256675b8c9385052b6833"),
		nonce:           decodeHexString(c, "d6b1e18dddf67c0cb5ae18b251dbe5e5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ef38e6236a32bcf91ac17261c249121e8d7c3927dcb2c61c850737203a232f05"),
			decodeHexString(c, "b0454ef0678f0b1eeae19e7bd5045ef3db8cf0a7bb2d07ea8e124280143263e2"),
		},
		expected: decodeHexString(c, "20d3853f5aa17c01556a88375ce7aeeec8c7a9f814d7f8d2e5ef254566b50664266fc881f66604135f45b0e11e64a5c74e928070199c934ddb48c958f02f3564303e1967a105d2917d557a29e4cc5ad126a636eb0a8b9a1e6042868cb2fa7d5e25736e3a9695f360df187f5a978d65e4dc9923613407974736f2b588e0eb14ef"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_5(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "6f666c5310e663e3333839c4e729f5743001d60fa00bee56623d55961a9aa93a"),
		nonce:           decodeHexString(c, "8f9f4fc35d5287870e7779c13abe3589"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0649094b12ab7fb9a655931d345d027ccdabc83bb12969a11741ee45b2601713"),
			decodeHexString(c, "4e636ab709cdec760b71aa06d5ff3e3a022c5097f4bacc31b12a42f2432eaea9"),
		},
		expected: decodeHexString(c, "85cda86d1a3ed9d5082f3ad8dd789d047573d9925671c51c5ec868eeb953ed41be7054a778c5f2cd291c92eff0ab21cb007f9718eb4c6bef0ab530bcc1b2cb37a382c5b35829bcc8a787becff7e2cc31858832fc11269be755fa7909fb4251e5f416ef66b1a1d71ba8f3598766c43a62d47b8d7ef9fa732a1e4b93c926bbf691"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_6(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7203720a23aeb4482ee71a1633fa9ff9140688c1586ad7637c3e2caf0127b946"),
		nonce:           decodeHexString(c, "e9f05a76fbb3e42066da664cfe33d4ba"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d1d2b1c97df772b47496b74b802f4c47156e5fe50bf1433a14b7189bafe710c0"),
			decodeHexString(c, "beae72874e153cd6a72551aa514d95e2b54d89153c3e081a35f406bc5d34392f"),
		},
		expected: decodeHexString(c, "890be3e12cc5aab8589f899f03692fd535dc26f34516134e11455b4d597cecd431093e7fb85549e0127239bd0fce5155a865c3b9d49599a0b27b12e9fde52f3066f91f1acdf5ccc07779aeecc14d211361abbca17f56836a1620d667b56c6325f559061ac012d1b9ec87fe1b214002dd9cd1acdd9e1e67b199399b760bf51f7c"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_7(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a9349c52dbf93e9e609bc71d8a29f1d9704058f77ce7627615c9c40401476cc1"),
		nonce:           decodeHexString(c, "ba5c5a60142207c185d0175025f2ad6a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3ff140bcf67b06088d2ecb0bb88a61ac76d72a5c13ddb3ef401cded5a38c0bef"),
			decodeHexString(c, "7e741429d99ef21a3e1e0919df00162fa7997a4063295bf5f642c66ff4a76363"),
		},
		expected: decodeHexString(c, "2e934ef0dc4b908873a949c06896ac8bf1c813385b656a231869b72a64cb584a1bb8d099a4597fffe7c785ef1b09dafa241999e4872cdd52c9ad9f873983542d3818ea4c814bc573a85692a85b2b83cf792c107283dda3c4ea101126c18fb793e6e49bd815cb09d6f7e4476e228527cd1e22d648b0b12f6f8bc091ed66fa23d8"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_8(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "76a4d7cda9080e60ab18d27190dcd2798ed296eefdab08df86939c871cfdb50b"),
		nonce:           decodeHexString(c, "0cca14fc2087db3e6e0a46c284f1d54b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f27bc089eea7d846d1acb366fdec558aab55ebe43d10d433b984255a5ed3ed99"),
			decodeHexString(c, "c921a2ee2a2f5de5cae14af999f05a555cb7f55510fa8979da4e9ba3abecaabe"),
		},
		expected: decodeHexString(c, "716fb437eae91cb3612ca0bba13b3732c7adddb8c4d2848c74402dcd269c6de9f47d79b9f5f63f575c7f1b4f977ed6aa88bd6887d2a0b1506776477966005530215b8f950e78644fe358de470b068c79f81b727f904cadf0c8fde32d8272e926f267fa3ffba382e138bc28de8af44dce73de1da2416ce34e093ee444de665c68"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_9(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ab1c7ea60f3c733f14202c475b13fa3ecc35c63005216bd7b86b35b94c7465fa"),
		nonce:           decodeHexString(c, "049e065b7e3807c78bfbbcdcae44a137"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a406b44eef5c8c17ecdc974a36a02f905dea1fb822b2ca3ea0b33d921c6b20c1"),
			decodeHexString(c, "ccb5cec46a1c21c4f00b8338e613dbd898a1525bfc2c9fa3ec8b0394641aa1b5"),
		},
		expected: decodeHexString(c, "b5b3827489a5dc42516ff3766219dbd0649440c26eb43514b9946b1dadfcedd0d036fec817d118d9f6c4bdbcb03ead58d4fdd03083fba73c22b9e63976c80af8843e1acc0d47acab0c1ac3db1cbccbd52c348bdc05b778077d420f4c78d5da0c17cfcacc19f230a4959ab17e62bafd0c9beaaa165d31d7e63921d62fe06a440a"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_10(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "56ce0e8ba80a3ff6ac671218ac0bfc75446cb8cef98c8cc4de7ab26eb9d2030a"),
		nonce:           decodeHexString(c, "468c6f2ba47bfe0a436b8eaa8c0c6890"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "19501813b5cb87e00c83abfd757f5c114b8e0a824b2870427998be60f1199c0a"),
			decodeHexString(c, "93fd0a3dc61667da87ff2cd9461581d6e53f1ea9bec08655086a5c59032775a4"),
		},
		expected: decodeHexString(c, "a4326344b98e7c21251be7ff8b135c7bfbf07f9f8aa3e396083393758c1508f097302bcc9399c4345f60b00a59810943fd80bb48587c5670bf31ead86d61f887c823df22712150989b4f77711ef87eb77ac07c954530fb26fb4cee7f29ed568178ab9e4434632d1a3a413bf9bdae3113c8a6fa7735f3a0979c2ce519db86d2da"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_11(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "91d26f97b9a6508ce6a1fc560f3859feddda28ad0c7e87c68abc591fa7509e5b"),
		nonce:           decodeHexString(c, "4bf0bde6ebcacce81bf1a954f28efd0a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "038bd3ad2a540ef953d47bda6a5820c675a9fdee1670669978a3146456665de2"),
			decodeHexString(c, "88f5b4bf52baf5f2fe080fdf8ea81bc61e2132aef838c9071e3d8867fe091dbc"),
		},
		expected: decodeHexString(c, "d489aaf46770dccc15d3eb5fe33862123187834237e8e1d501fbbf522b3099c126e3e82f2e3e28a53bf875bbcbb513118ebdfcb1849071851eefd9f69ee8cd7189ef00c658c331982fa4c06c566d68cab5ea319ba76e4c6a4b1980540fa5d48a8a33d6ebafcb9a90b535a3f7004063c72a80b41a4b3ce5743c31b8e693924eaa"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_12(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c87ab152f9e99cdab94128af0b2928f39107bedeabdde440b8b9c35db5feb0ea"),
		nonce:           decodeHexString(c, "ae03c4540f7a79b2401ada85f349da4e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b50e97d3140c5f7c063bef299d1d3413bb942b2a24899b0dc107dd21a8cdc35e"),
			decodeHexString(c, "e52de32ea77a8e6997059168eb68d190d446c50fa474f6c60c8a5932aa11cfd3"),
		},
		expected: decodeHexString(c, "392e03804036661a19abb817929b5694a62ce374fb60c7386d2eb4f0fef12d7ded067aa64a37a68d26f83de1ee1538523ee7d8695eb6ba981566d45bfeff190267a15cebfba946310239cc3698106645e3177266c6fe958982565784d3efc525ff3fda181c5beacdd2c4f860b8d2aeb6e26f607c3e1bae26dee903bf9603dfcc"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_13(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5c2bbc1c51f2dc7cff083fa66f0dff2d468ce4631fc4b23d6f38b1626f003d59"),
		nonce:           decodeHexString(c, "02a0b85d32594f92babd47c9cb8a0ada"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9438c45f4ca0ee225e5f906498413f9132c79582f98588aadedeec5bfb3c56ed"),
			decodeHexString(c, "499fe637731f16583408671261e084c8c019645cd3ae13ff04ff4e12e40d54cc"),
		},
		expected: decodeHexString(c, "69bf2bf1770c1ccaed0c69ddd31f76d886e2d97a4d723d9fafa3c722132de53d3d0a4d2ea2d95b0d3a9e1273e0c6a4a672cfed4d882f4cb18e1d188fb3ac193ada51267e3b133e675c056279f12181ee646416fbc8f90ea6ba8c728fb5ef0fea18745e497513707d99400a8442153fee22a7d6a42f9c465860515d0633ef6b6e"),
	})
}

func (s *drbgSuite) TestHMACGenerate109_SHA512_256_14(c *C) {
	s.testHMACGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "33924b2ecd2d81b1150ef4e133589d09a2ac7231a69f4641c153d7252396646e"),
		nonce:           decodeHexString(c, "1a365d0d40721a88a32a7d81a2bf8906"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "46cc09705223bd3c01fa037d9a19dd2465bc612f519e51d33fbc845742d29062"),
			decodeHexString(c, "a9f78f79d034d46086bbe5c8883dc2a34a1a17414aad2c767a3b3f23dfc9b637"),
		},
		expected: decodeHexString(c, "2674afd329d03ad3b1bb8157c3100a312e29bd72b55139c408afe7f2c9e6d53df2cb8b829b7351a80cca8f0b59d60f6454ba60b154f654a09aa82a63fb28ceab9435cb6022934a0599a4c3a005bccdaa8bdaf8246ca654692a6c038cc82fea477fabdf3d6a0975e952ce3feb7fe8c4510b8c5347b21da5431cfee69e9dd2d8c4"),
	})
}

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

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_0(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e35c9f8a3d5dbf95c4d595ddd50deceb49a9a1b86598b91155421600c2c4df6e"),
		nonce:           decodeHexString(c, "823e1dff3d501dff696840d0c1b9484a"),
		personalization: decodeHexString(c, "c63766604d42a81f8c0cd16824cdbfa490e9117f9ed009d2aa31f2185cdc20fd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "611b5b182cc623e272d490bb01c558b54ed22b6ccbad227a10dd3e8f767ebcde"),
			decodeHexString(c, "21e458575bdc9f7584f2fa646f844c8a0711ba61958c549ffe6a8148d3ee3543"),
		},
		expected: decodeHexString(c, "e687b2f27f521cf17d7309326ac6a93504999fd4cab5506e1188d258eaae87a68442f6213a208db5d0608f3ddfe299b3c36bfe5a4d2491b77540485fd294da8b65a52bf0cb9373e3ab422c8f440c8bf2ae42fc150999f3c5201bc38da026ac232790c209cc0c9c7c0dfe9cd178ed8c859d037397fe2ac8797c0e480639ccdc6f"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_1(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5b0767a6230f8f13996fdb7253cf6f578020bcebe72c589b8e804e9a99018540"),
		nonce:           decodeHexString(c, "a4be44df4a8bfc228bff33faa813e36c"),
		personalization: decodeHexString(c, "997e3edd016c6feb410e2368bb6b62b50f77925d5f73a6c60c7055fc211f57b1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "09229165e410249150760d2d448f3343cffcf969034e6213748d26fb9c3fa35e"),
			decodeHexString(c, "509bd449fb971f0eca5a2e9b2876b437dae9828b28060122fee83c03a7a83137"),
		},
		expected: decodeHexString(c, "bc367409f04b8f405099a13d409761fc6956a9ddd077478d720e544bd6b42ca9e8057f35c66109d441c6d5bc6ad36941ddbf35c860850eae89508a712296bb0dd138fcd8d49a4c52eda996d2a0d8a41be12f8f5bc0d350c507f15346798fb7841efe21decc4383d63131b6d263bb26c11c9dbe3f0782ab5cade509bc34cde313"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_2(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "edb07acfec1e919cfeb0044043d386011a80ac7c46f763ce72f1fa8204699f8a"),
		nonce:           decodeHexString(c, "99c46730998ed332c0890ecb754f6687"),
		personalization: decodeHexString(c, "54ecc0f9857e1cfb9f18736dd8df8212a51379ef831fdc3cf301bbf552b01628"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7fd99b2bfeaf6fc14fdcadc6f089712e182065e268c4d8b418fbe1f10111ddcc"),
			decodeHexString(c, "bd901c32a57ebeaa169f122966fee5d82f798587330cc94aa78a632da7ab0cd8"),
		},
		expected: decodeHexString(c, "b4f0209f5da8b8d4acc614e1a17a75c191c56ee6c3c306defa4b2e581d4c507cd8768a500ce51ed8a1e70bcfe840f58c21570fbb4d3df0fa01ab8d67535271de8152281ce1c7c94a26d18c743dd59408a67149666139a3204e3d3da3da3a0fba5cfc137062ce31a0a1caeeb5d91c05ad0bd6703aa17510e6933353afaed836ed"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_3(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b9252e25573d8f0b91ef7bae9c7f16ec35ce426b71217cd3a5270f6fc2e4ea6e"),
		nonce:           decodeHexString(c, "f55d33fbeb961e5e7440402006851242"),
		personalization: decodeHexString(c, "1c5e934f491cf43b092bd002c608c405dbd26130e6f6b4d8fe4bbd9b5352aa8e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "093656e387f61f578c513768020b27f93ca6fd48d8b8049ce3d0d2119b849d30"),
			decodeHexString(c, "909a375e400709eac94720aa3f43aea6f3b470a2ee68e58bbdea8543c0b66d79"),
		},
		expected: decodeHexString(c, "20225fe9e8d0c22f983bab57c9ebe3982c867705181198850ab24478b9f2a0fcc425faa9905a5ff3a10b3263f1b1af5695f4c5643ffc2fdd4f74f128e3ff5553eee3409cd321fdafb7ef39f9c091c8341d7e08ba97d404359fc17a509aeed05ae66ee6c80d09c18b48929e708566cecf650299a5a825cb1bfa372643a5b51c2f"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_4(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3d29044953e0e5687e4e44d386ee0eaf98c67861dfebadc473171d265f28fef7"),
		nonce:           decodeHexString(c, "a5db488a937139496758f433ab7c20a5"),
		personalization: decodeHexString(c, "aba27161b624cafa071a7cc9634536885487cf1178cb51bfc8815e11cddf7ff9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5fb2ffd19e47fa378b461bbacae7a090a080cc1491c3c8dba09b09ad6f027724"),
			decodeHexString(c, "3272f17115034cdd60e707512084966569488fe6ff658b7a79b7cebfb971ef70"),
		},
		expected: decodeHexString(c, "a9700b134d7759a4fb4a7f5e28c3077c5ff92f334a7c65099ceb5c3b3bfed5af2a9a1ea63c91abaef05f458452b11922789541ed97e71a0c57102a4b15c57d55722ea8d1bf38c04e23470bf95fb66143958128ef096d68109bc552cd894b04582cd3bd5984879c17d8a45401897700ee3ea3d1cc305832ec5a6f8ae4fa9bdd49"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_5(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "2ee961272a90535beff20400fb4bad1d1bff0a85749de0df1c370aa8ab44a0ac"),
		nonce:           decodeHexString(c, "ccf78b9a848f240f3de40d5e7320a8a0"),
		personalization: decodeHexString(c, "1b7bdf3e53a0620d306079715305c48c3252a09fd76c2012d5a07c42d4ccc1a3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5a4869ba152770146fe7f5714439df83a8e347f8fe2124a3d0fe4dcd0fb9ace3"),
			decodeHexString(c, "273a1a9642812a5a44f905909b56e881cf62c33713a1f625ab76f1327c6415d6"),
		},
		expected: decodeHexString(c, "35ab999309c07b3f5d39a8633fabd707842952b38c095ee9607b7e29be7c186f88fdd702ea8205e88f659007fdb8ac55edbf1f25097cbb1e9a014e52a5031b52a77fffe0d3987c3ccb6f2ece0d246730b0476c54cf721e2d8b0a5f2c6cc28ed098dc73b88a5dde35bdb406cba2915fcec77c7d7a5fea2e12bdde6c5bca900790"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_6(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "db04fb0542e724cb01cbd0153e54d29ea3f80775e3267461eb879ff249b6981e"),
		nonce:           decodeHexString(c, "be45ff7d61dba96af72261e4f9f6030b"),
		personalization: decodeHexString(c, "52e6c18d1a1674c3550ecb6dde927da4478303025fa0addaed92b8cf7258e2e1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e089344a40c526e3c0dec9a545c181b8fbb2b9cc404f6e2f711dff6bc84c5551"),
			decodeHexString(c, "9be23fd1c693e891b8d5750928981ef60637f4196053f950db62cff359536183"),
		},
		expected: decodeHexString(c, "9aa538c87b993a337d04db7514597d284b28d778da180fb6a446191c6267f0e5638628b513f3c7588cd37053473bf140eaf6b40345c295646f27eae4275f04e6ef48c8c07b3cb7196ef851b1a3537cb82a42f9221972abb5dd1bdd4d4a7ff928833e268ab9c54cc1abdff293ca11c739a9d3e1dff505e76796f9425b9dac368d"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_7(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4fa53dc32771e9e4cf4dab428916248eb2a89c9ac8854c3e6bd6c24efe0a27a0"),
		nonce:           decodeHexString(c, "d8ffa17ce4c064d7b6b3cc72acba9096"),
		personalization: decodeHexString(c, "eaea15cbf5ac45cdd642e9b2b883e0a141f46f575e06a60776b9254e9b3e76f6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b5a89821feebfaeec5b1fec3838b9800d1e4c7c0862eab0f1b3afffa7ef2ebd5"),
			decodeHexString(c, "35909c49a8c481f4f7cf0c7088f598999914a1ea3d7a09553357d840acfb9d66"),
		},
		expected: decodeHexString(c, "79952617adcf1666dd4c854b887e5a6cf2764962ec2411d112e6c94b193b074de1dfb2b81f9663eba5915fafdd2e2fd6228c268bd68eb69a0bfe80ef8af4bb9da1674dd2809f36805980171986a15febff3e939bcdc14b639576434986a1d62cde79e8fc237876dc3416db7e8e31449be5bbdf229b0d07f1a6d4ad99013c7350"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_8(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "edc50725c8b85f084e3d416e9bd96725fbcea48f334e77707ed23f760493dbb7"),
		nonce:           decodeHexString(c, "21a09eeaeff63484d2e00a1f4c0d38f3"),
		personalization: decodeHexString(c, "0df0520d118fcf5df1ec32078dca162d27458bf61c4f0bac941b00d217da274e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "16c1241085b00c21a1c14a6bf10378e0a104bd7a69bc2458ad518d3adbab68c0"),
			decodeHexString(c, "ecf638c63be2dd4c2645a86fc17699266eceaa81c2fc88305ff0c303c89b9d26"),
		},
		expected: decodeHexString(c, "3abfe7578be0192648fb7122f71ad8383541cd33aa39a6f54492d0185c2cd914c189ce1f4aa859492b883fe0217c3579c54abb2f740a0bd96616b507622bdbac6717cce451d991f11faaa8c60d374604b87888be850583caa004ea899cea43126ba04075872defe74cac58e4af24976d1037f1d998c6c6feb8ec030bb5643884"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_9(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "decc16dc3f674f25805726f174795e5192e6ce4d94f4da4226dadd46ac53abb8"),
		nonce:           decodeHexString(c, "343723fa8498695d329daac4a0f57ae5"),
		personalization: decodeHexString(c, "cff8b23e11e6fac576f4571b75ee8b7258a2f2aa9a666e139a6f400c2d4fde2f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a7f5bd0fdafadd4c55f69c8d40c649b7f56d54da3aa45c91aaa6440b0b115aa2"),
			decodeHexString(c, "637492a2943bde1311b277d1fe95dcf9782da457c03957e0335256b871b1e318"),
		},
		expected: decodeHexString(c, "0babf60542efb0b6c667a0023635afccc4b36ac58879e2e7532ab854a0613c955cc15a5248e7dd63e1f3e213c10bb0c67c6f27f704d8f0a5ec4c670b4e3a21f2c32c456e69ded4ea9336c7339eada279012e34e46b0029279928f6b6a881ce086c1c1a319ecb247de7f377b1cbd2da34cce3f827285b26bd737a88b4f30cdb0f"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_10(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d9ce46c4f6fdc83a827f6b313cc42e04255b96567c4ffd6b568d5365f92ae2bd"),
		nonce:           decodeHexString(c, "385dd02922cbc66fcf7392d2876e193c"),
		personalization: decodeHexString(c, "e6322121566023f1323b1912b183bb01e9855de469aa8ae9823f1df89306aa6b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d60f71db6a57e5a61b0aadd6bc44687a8e7787c8410b2e802ad3a79ecfb1bccc"),
			decodeHexString(c, "579a3f74d461d54154596e3099787ae7ae3387fb65dd628b102a6355b26aa2af"),
		},
		expected: decodeHexString(c, "59c24b2f34cd4e6256db3368485035210dc15836c6b45a8c32790c9146d807d84bcd6484424301f19c95d545b509ba015e98c1d9a70e70c0f4f3997d2695aead5310790d479cb2739525e3fae5e42e2673f6978658ae5c74aec1bb49525c880adbd16482ab302fe1b85ee083bb46deddcf1d8b73998c730a935d5f464e26e135"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_11(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e777a5e0a2d636c0461c38eb197cc24e3aa11478dc250b3e491ca737550d6dff"),
		nonce:           decodeHexString(c, "30b7ebcce90b6b3606acafeff67a2c47"),
		personalization: decodeHexString(c, "de11cbffba3069f1f4be51f875f208af0b3bed6249bceeede0390d3a1dc884b3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c6683590c48260773fed70c2f27b9807e65a2a670b27690bc6f545dc6a656dab"),
			decodeHexString(c, "388843325a24428c899d8ce657de0df81c1e3727bec78260f77c8ebc55b761a9"),
		},
		expected: decodeHexString(c, "adb109fc8d60254a305303750e9126ad76594d33b5059f9f384f60392b940ab313b262ff63f793ef3ccd44556527c26a27dd6115a94a96ce7746c49801cbaa8b084b47e22bb307070c92395915aaa81fe16cd745c083aae5cafe36d157f2d222728a8ce4a5db64cbf9df47c07991763c85b9b39c1a81a064aec01d956b6ab7cf"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_12(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b0d79298b7e005066a2870a617025ed08e75c3153992ed3085dd3efa41edbe3d"),
		nonce:           decodeHexString(c, "e82f740f0f09bcea0baae466490abd2a"),
		personalization: decodeHexString(c, "b2edcebea88f0dccd7f3e98e3685260c41142dccc4d14ac93cfacf4737bddb93"),
		additionalInput: [2][]byte{
			decodeHexString(c, "66461d13e5493823ab4fa9899c19b7ca1490d3053c157596c0465bc80b897472"),
			decodeHexString(c, "948591cf75be1f9f99466b937c7ec6e3fada28376f4ed770e9a8654ac37ab584"),
		},
		expected: decodeHexString(c, "900fab800740d7401b43a493b20b1ff3fcf71d4349fa1a24016800957729478e62e8846f959c90dd95c550c5d5557e9d7a05deae0bb1c432aac91f8e4fc616cd970df77a70a3b4a06d3a165831ebc865a8d5e9f916b56f24431b6f855a112161ab4c2fbf7bc45dff12814102d11712f57ffb948ef95cfcecf0ba2a8d591bedc1"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_13(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "049a53c57ce25acbe9ffd2cb92f8b6850ba626e9c30344c72b8f8a06fb918f2b"),
		nonce:           decodeHexString(c, "a5c7ada74d46947a0b8e590881ab34a0"),
		personalization: decodeHexString(c, "085d9a9aafcd7ec89d3b1548287c10ed12d929b185e231229cab104749251fe7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea349d15ddefb9aaac537de4031b44ddc82eb0140ee63c1864fe9288518e7053"),
			decodeHexString(c, "832db21d6d03b2212e00a6d1b8d29df63f542eec27eb35b783d8226eda99919c"),
		},
		expected: decodeHexString(c, "5d21ec714cfca1ec6a9b044bf1a0ac1e8c3b59b3c1f42e7184a334e2afce83055786ac1fabda6af8bee8b57ca33a270898327e0f7af402264499644f048a0c88760f5618d904d4bd91cebfa8c3d4649ab8ac42ef5c1187cbf2b74eb65110dc7245a229e7dab209bbf256f576db9c9f5389ce6ef910fae2594e0da3e3b71ac751"),
	})
}

func (s *drbgSuite) TestHMACGenerate111_SHA512_256_14(c *C) {
	s.testHMACGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "68cf3f518b4745452a4149d200434960cbe10bcb783c3f89d3b85f618799f5cb"),
		nonce:           decodeHexString(c, "dc345f21a33c168e4e07603187592f9c"),
		personalization: decodeHexString(c, "2c26ce79ee85d0c9ca4d1abc6e0ac2adb26cd223dcb513403a53755b647598e3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "accff53608616d9007199e41396846be5800eea55f73f64a6d8c8f26b5bae07d"),
			decodeHexString(c, "d8d5258baff41850de1feb5ecbbd1795cdf4538a1c57f55c9f585ff035a13e55"),
		},
		expected: decodeHexString(c, "5032daa03415b2b6780ef4c6cfecfaccefda712f2529d2cdf4cb45d52229e2b7388ebce926a7aa05cc132b3479e7b9c0b8b4cd0262f7b18a58326eab2baeb91ed4818bf20a105975342bed6a97f2e67c483a403f98a4a5dfee98130741b909f0c4812c1917334ddc5e678256b78c23764217798f25db20d80ea85b69efd75892"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_0(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "79349bbf7cdda5799557866621c91383"),
		nonce:              decodeHexString(c, "1146733abf8c35c8"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c7215b5b96c48e9b338c74e3e99dfedf"),
		expected:           decodeHexString(c, "c6a16ab8d420706f0f34ab7fec5adca9d8ca3a133e159ca6ac43c6f8a2be22834a4c0a0affb10d7194f1c1a5cf7322ec1ae0964ed4bf122746e087fdb5b3e91b3493d5bb98faed49e85f130fc8a459b7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_1(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ee57fc23600fb9029a9ec6c82e7b51e4"),
		nonce:              decodeHexString(c, "3e9721e4393ef9ad"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "841d276ca9519061d92d7ddfa6628ca3"),
		expected:           decodeHexString(c, "ee26a5c8ef08a1ca8f14154d67c88f5e7ed8219d931b9842ac0039f2145539f2142b44117a998c22f590f6c9b38b465b783ecff13a7750201f7ecf1b8ab393604c73b2389336609af3440cde43298b84"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_2(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ebfdad13c8f941d279dbb4de8d7706dd"),
		nonce:              decodeHexString(c, "fdaa279f5e4428d6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f785c5b2f833b69b09b71a57cf5701d4"),
		expected:           decodeHexString(c, "66e35f9b8e05a861a0b3d01c66c416d5e8b77d4d21328c625cff9163ffc92e753015aa9d7f36ae3a961681d39f271d0b627787868cec3dedc520ecb303f96a43cec67369117af268a19f5284880cb3be"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_3(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "4fc0ec777ec5a5f3b9ea06831a36acbb"),
		nonce:              decodeHexString(c, "9e9add057dbb73a8"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3367ba7c163f7b99a56ab64274ee64cd"),
		expected:           decodeHexString(c, "7910a801b68a20570ab0e593bd565021c8a543ba3942bd726021a7198f1d84c8806a6f9cc12d196e1cbfebf325d0e1971746921b4d55483fc366d2ca837c4fc9751fadea7b04c0a47d1e37649f7beb6b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_4(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "85a41bafaa923240dcf613a53e28d853"),
		nonce:              decodeHexString(c, "5474e05fb59ba1ea"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ccb5e28b1f2493675cc4f63475a69b0d"),
		expected:           decodeHexString(c, "2735fb69bfcac5b2f7f64e747c27d9957fc6a3cd0b3eee984641b2677655606e6b0ad6c875c7bf1333ab1f9b15ab1d522968059f78eaa05a70437c6974ec8e29c8ca5a0eae5464b32e9474e4fa5d4236"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_5(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "b64416ea406772f955fbd7da30c67f6a"),
		nonce:              decodeHexString(c, "42e0b9a889d55454"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e03a88205eaafdd584dd54a40ea5c7df"),
		expected:           decodeHexString(c, "44bc26482a49da5249e8785a4e44d91ccdc6103fd666b480350ea3a09d8a8cf9e30c103f53559cbf55e13078b7c6949e4e90e1ef79ddd234166981f715b8649834c27b17bdf0f0689ed18eb850b43e85"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_6(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "b3d4041201f4345e0a818de136c6aa7e"),
		nonce:              decodeHexString(c, "6b0612e1ac6b3f2f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "26f6ec328ac7f8966dca90e162c297ef"),
		expected:           decodeHexString(c, "d9245a4a0ab0ca97e747c0d29098979e8248e53f0ec6b91678972f3b5691e7995ad2eb99640d3e9a8364891d0ff179732d633f762d6592a4d49c4e667c699b2678929c81d9bdfc74d6575f5b727f4d65"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_7(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "06dbf57699df40ff67287ec11573b75b"),
		nonce:              decodeHexString(c, "47e40e643c47f4db"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "89bb41a3cb66446449b503b38a1e21fe"),
		expected:           decodeHexString(c, "0d06c663f9105198a34229b0e3fcffd0de9a445f4fc5d5bb58b55e43cacaf0c27c07e5a9c3734e8a8e0885dd78cd1bde0777e3330d2fb3b04203f6c2749a45cb96bafba3bf9d1875dcbc46b6af558228"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_8(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "cc1ca95eadbd1bdb2459f44c6653c441"),
		nonce:              decodeHexString(c, "f225685240438aff"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "26a3447e8f504be4c42beeeffd884455"),
		expected:           decodeHexString(c, "e8f3cbe8e1f8738b4fef6ae67662524c99cefdf7b416eafc15750054ffd7c288af1c13ee9a61d19f7163aa21f92207b66348228b56d64438ad7eec55670860fda3da9bb0773f5647c2bd03378d795c71"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_9(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "e68bbe5c6bb3a37207e6742ddb79c0b1"),
		nonce:              decodeHexString(c, "640fcd3512909acd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "16aea846c8db1d76ede51d5562f20639"),
		expected:           decodeHexString(c, "5cfad20546a1cc19922f0be7b7d04ba7d8335684354541b1ec8ce0adf3607446c8742d7737a566c92fcf3b2fde205197e9aa95c739d677631e28403eafed1cf45f22fe29d3979126eaaa46a4040a4c55"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_10(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ac79be87bfbab344797fa6da775516be"),
		nonce:              decodeHexString(c, "0923da6ca517407e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "790d1e3cb052983146f9a757fa910ce7"),
		expected:           decodeHexString(c, "5b4444cb58df47502374fd6bda064cf1d70d253b994f1a6e5d4e62741846472d9f1cf14a2468aafd4ca7875b31987b8ba0de9144648a82602c19e293f2668c9519be3eb8a12f15543395348aa51697b2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_11(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "cddc43355e651255dedf171c9aa13344"),
		nonce:              decodeHexString(c, "52e3e830cc4c2160"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5e927085657e7422b68bffab74d8f78e"),
		expected:           decodeHexString(c, "e57f32e6a8a847f033802a92e6282c967eb18f3c9837b8bbe5f5e8d9d6fbc4d571412b873944d20bb8a354f787c3004d0b5dd5a92bdbab600f55d1ccc52275715df239a1e2a79040862680f34f5cd4f1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_12(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "eb1a31c96683124985c9b412d16dd899"),
		nonce:              decodeHexString(c, "d5da8c43273b3173"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "417ca1a9392265b273221bbe87831466"),
		expected:           decodeHexString(c, "59e4d915349514f4aace3d9eebfd30b58e8246c7dce23bd4c4e47bb9ac8c2696441d5b5bb2fbb2a1b585373ec5ee55071f2ea868b2df342b5f2df48cd026ddac9114f9142db999fbcde7a0c23403fb37"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_13(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "6a086e671327087dde91396dd73d5400"),
		nonce:              decodeHexString(c, "d59a4fc5b26c0558"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b7d5321e4f22584409b7e6e014e7d062"),
		expected:           decodeHexString(c, "70e17ca71ad75e40ed31629cae3fa9c23374f78e020c56e551907f2252706bd4cd4c47d099dbc072429ae53e34ed208fdae5e6ec13e5cd9b435c1b25dcbd099132570491e7c3544cf8ff2fba553c197d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed0_SHA1_14(c *C) {
	s.testHMACAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "8b7086efac1e3c3c87c3798471d4afd0"),
		nonce:              decodeHexString(c, "28b8bab0217d403f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b61206715d219a93505b62cd619be51b"),
		expected:           decodeHexString(c, "0dcd502c6e884a366b50f208a1b8c59ffb85dbcd72a6e2d75aea94c9692a55a45fa7c2900a277dcd38b79cf463ac8961fe54df47bcfe5a60555ee4ea2be76faefedae3ce65db4b3f04301cf5c43ada43"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_0(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "11c0a7e1472cec70fa8c1ca15759ac5b"),
		nonce:              decodeHexString(c, "b1c73c22db39cd7b"),
		personalization:    decodeHexString(c, "b24e392cb1f3c18af2cb50feac733e32"),
		entropyInputReseed: decodeHexString(c, "c6ab59ff708a5c1f598e75df060e1981"),
		expected:           decodeHexString(c, "070e603cd48d56430a5ab461a751ec2a4a6aa6fb6ee52efe9a41e4611eafdfc957184b47bbb017e484ac34c7de56cd7813feb301b5befce573ad0a254e6cfe35b77c30be6b7cb5e7efa72813c7546ba5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_1(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "e05141adb678c297eebd8136885b6734"),
		nonce:              decodeHexString(c, "5b9c0c54a0ff74d8"),
		personalization:    decodeHexString(c, "4814ea71a8e11845716b22085cc65f2b"),
		entropyInputReseed: decodeHexString(c, "26e26c9323a3da3af6e5a5a1f351cb54"),
		expected:           decodeHexString(c, "5ef29a2e7e821d529d1928e6bab16fb80d6491a98dd53695473dadead4e5142c146f1e29b101c6b1a57d8315ce34db17040c02572c6455d902303dcfcb2ad3052166de790ce0c94af78a51864efd4b12"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_2(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "9747f5a2a27c65b0bd9202f0743afbfd"),
		nonce:              decodeHexString(c, "247b3b05fce7d31c"),
		personalization:    decodeHexString(c, "c3fc8430972dfa880e2bfa66862bffde"),
		entropyInputReseed: decodeHexString(c, "d3e34742cffe1c6d55f8f98dfc57953c"),
		expected:           decodeHexString(c, "92137ebf7518354bd65d87235a81c79e13cb53e46b47fa091cfe342f0253e5ee4634e8fe5fcb967bfcdbdfaa60614bf96826875608c0f1b55967619db6df24efedc86498cad733e29ee9d9e3d6277273"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_3(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "a9a8a0a7b8a58c239e083fa1cd2a8c96"),
		nonce:              decodeHexString(c, "8cfc5f074bbc3147"),
		personalization:    decodeHexString(c, "3fb4c2f37714039a1a2e6c68e4818eee"),
		entropyInputReseed: decodeHexString(c, "3cb71f26b82cdae4223fa32702f57ee3"),
		expected:           decodeHexString(c, "1b5986ccdbac7da7fe7e792ddd445ca894b6ec08424a17fed5385ff8bd03ba782b42bc5a9676acd5be8061d535930a487902923148710ff17908fcb03db7ddc0e4b10be16c0a0365db387529a2398552"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_4(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "99d1822bc16f2e7bbeb6556c5215489e"),
		nonce:              decodeHexString(c, "a6039f54a175ae86"),
		personalization:    decodeHexString(c, "e80fa03bd7c8f5acdda5754ef00cdb5c"),
		entropyInputReseed: decodeHexString(c, "aaf4cef7d80ffedc37e3c68c7de03ddd"),
		expected:           decodeHexString(c, "2236568252a384a7e75cefba04a94381941035b28de764d5b2518a98ba4e8f1d50e8230953df40db602b8959ee8f1b8831b29516f937aaf561679bac0ffb11207030ef33b26da28af93ba552c08bff97"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_5(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "305a4478bb85b0cdcb99618d8753494b"),
		nonce:              decodeHexString(c, "eee617d70aec2650"),
		personalization:    decodeHexString(c, "c3fa490a01511e8410577021a307c31b"),
		entropyInputReseed: decodeHexString(c, "1eef2f751cad0b1cde509806d4064422"),
		expected:           decodeHexString(c, "f23ceadb881b945029b78366a173c20af93e43fd8c3be0588f811af31a7ddd653610cdfc3cd875a0f114fc1b887e4fe5042eb0dc0c36746961b1b7126950aff4c01245c215156715c7efd14c76539a0d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_6(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "15c178375c839866ab31b38b900ba889"),
		nonce:              decodeHexString(c, "325baf19b84c8fad"),
		personalization:    decodeHexString(c, "a4d50496711dcabde8e0ff21d3da7535"),
		entropyInputReseed: decodeHexString(c, "f2f78da359af10da64c42130f79f3054"),
		expected:           decodeHexString(c, "3f38257370353677dee9127862305158b1c5b607741d62906cebf8babee4fc6cf1dee3f821d1d750c69f3ff5683d266df0a669d291f6816d86cd222b56a351c240afbb443e886ca194994b4deddc54bb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_7(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "7efb63ed1e07cf853fce80468049dd5e"),
		nonce:              decodeHexString(c, "d5e55a8b58bbdd32"),
		personalization:    decodeHexString(c, "d89028d21cee2b223d634a9927ec036b"),
		entropyInputReseed: decodeHexString(c, "341f137867c451d8d4e327733de89c94"),
		expected:           decodeHexString(c, "477a1612c19b1c2fee232385ccdb5b2f32c845c07fa216ee410cca20245239d3220ac48770017c4d52f99a267d53e0acdf69e8f4bd1d76d463e9bdddc16bef7faf9d9baa9b9de3d397d740d685c158a0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_8(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "c7209755b92bff93a059db79883b2866"),
		nonce:              decodeHexString(c, "b51bae337aeec9e5"),
		personalization:    decodeHexString(c, "34aee961eccf0b92b833f2448720bdc9"),
		entropyInputReseed: decodeHexString(c, "8c87e68de33545fa20870e5e70a190f6"),
		expected:           decodeHexString(c, "285692468053547638e65dfb7c8b69aac43e16be5a4ce9898ae0d0c8f567dc27945ef6e21f36d456ca248577829b90f96a887f96e9c2a6ff2616e21c7ec93093d68f60d2cb99f2c7632f856e33ea8ff4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_9(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "1ceecebbc42f9ea1faf7494076f7937b"),
		nonce:              decodeHexString(c, "a827b4666d0433ec"),
		personalization:    decodeHexString(c, "b431a36c996ccdb5e936da7ebd216c20"),
		entropyInputReseed: decodeHexString(c, "c028ee75d4f55de2b223e92625e399ad"),
		expected:           decodeHexString(c, "64d4bacdf185dd8f6eba35dc8f79fa2cab155113e020d1f12b32bbc4bfb9c85881692a5d8933a40d9fe8f6629f74bba8a99e8db0228a13c8d7776459f73dba8e59e9820ae72f8c425ac3044079c1ebfc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_10(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "d5b264cec1c7acd78b902dc14a457d30"),
		nonce:              decodeHexString(c, "b79acd3e06a12f57"),
		personalization:    decodeHexString(c, "12e4101d6d4505cd43710b05d52a9194"),
		entropyInputReseed: decodeHexString(c, "cf0c3e1b8fb1befb5abb9af1f58cc9ee"),
		expected:           decodeHexString(c, "b53d3bbf4a9561904ad9e100b2601db2660f415fc5caebbb1a628b7095e6de4a3895ac5da6f2c1e1c6655d76fa5b8f75f52de41564d79b09c9d2c76c1c486f462a7164ecd76f0dfa7b5f53c0c25b7730"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_11(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "f440671bcbbb1bdafb22c06482ff6703"),
		nonce:              decodeHexString(c, "74cdbd69535d0798"),
		personalization:    decodeHexString(c, "8a69144ebeca59c330c9a4e0e644a7ab"),
		entropyInputReseed: decodeHexString(c, "0f43cfaf10aad2453d884ce5852dbb32"),
		expected:           decodeHexString(c, "a5b42447f4d02504536df9e0ca8d98642a21b64a6b84bde4b2bc186c28b0f740ebdf2d60c664d4d89a867207bb8d4c62f1745cb3c971b4b2622423a4291e1cc97fce7128e3ecb3ec13ce08987f59b77c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_12(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "bef3995f0d2b1051554cf7b3235809fc"),
		nonce:              decodeHexString(c, "d2989cafbad08163"),
		personalization:    decodeHexString(c, "e807cfc52494119188f86bfea878f2cd"),
		entropyInputReseed: decodeHexString(c, "0c538a7ba0695ffd95f3abeabf2a867d"),
		expected:           decodeHexString(c, "527bca6b945db8f2cda7f795763eb5767cfa1a4195a9d9ae70dd8129158138e687a056b64f00d29e11c37a9740d19fbd16429ce4dae79029018b984a22c1a2b2b988558b133651234b35f21ff42edcb2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_13(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "5fc1cea988adf1f7c090b14370ce1693"),
		nonce:              decodeHexString(c, "00a008a687475c46"),
		personalization:    decodeHexString(c, "7fed039d998bbfa3ad62aab86c176d6a"),
		entropyInputReseed: decodeHexString(c, "4eab4611cbf3ea5583a967ef0c0ee2e7"),
		expected:           decodeHexString(c, "f096f7f631882f5e5a6e708d71534c19eea20a57fc210155d49fe9b872b18cc04a73cb652a03ecfa0c6dfbc174811efd0897f4bd92c916a5c835bdfb5e126048f7c17daf00a845ff024641499047097d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed2_SHA1_14(c *C) {
	s.testHMACAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "9c88099af48f9053abec455b7bbb0153"),
		nonce:              decodeHexString(c, "64fd593a0f40175d"),
		personalization:    decodeHexString(c, "79e501b77f967a676fe398eb7c81cdde"),
		entropyInputReseed: decodeHexString(c, "9d7b6301d86b259606fbca7de73ce63a"),
		expected:           decodeHexString(c, "e8d53bd119d23cc57245a8b9b2d111811dc661555e389180e367e41f8c815ab4e7aaf5a238479117402ba17ea41c1104f475e11bb97cdc414409ac516b3b28b62f284c7d4093975279d3c31320c61061"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_0(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "e5a81357b91215dda0a0986a3ff5123f"),
		nonce:              decodeHexString(c, "9c1838d7360e674b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "592dd232ac83db36abbacfb8c640dc60"),
		expected:           decodeHexString(c, "a4d1843c7af208f770f8b5acf64528866d51e731ed5ebc756e81efe8fb8f9c9af89d52e8e8d1c0141ebebc18b1ca78c78a2f21cb909d5bac3b6ae60c4a2ff4176b14905e4afa3ba9e458216d5720ce83"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_1(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "2f5df23b8338b1b40b476e4758d1fa39"),
		nonce:              decodeHexString(c, "ab19e417fb1607b5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "175898f53639dfa817305482f003becf"),
		expected:           decodeHexString(c, "1e44f245bce399fc30a2a29a952d6bfc89cc26c82e325b1d3ec1133a0f8e4a1027c8208c61e58f46162305f484176e5a4541bca6ee3a1eeef4d96312f4fd23488e31b77ac58c783c5c3849e13cf01d17"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_2(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "a03184846ad2744a86e3186e9005a5aa"),
		nonce:              decodeHexString(c, "87199baa227803fe"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4c8fc950c0c4045f2f394d41627b7ce1"),
		expected:           decodeHexString(c, "49bce54959d1847f45d0e0b965813b1420e1b7a0de7378af217c9225bd67425f5251c263331f4ccb8e0accafded69951be2614a2ee2ded3cbc1f8fdb37e48152ec25edd6980058c9b72b4f651c00d04e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_3(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "d1e8577c5356395741ab6f96e26b6484"),
		nonce:              decodeHexString(c, "f2184594297e2cf0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "23bc40be283ce1c5406a554b2e224db8"),
		expected:           decodeHexString(c, "dd4b16f5770f33778adc7043e64f4ca8c7729d91c96d4266e036778d377ae5497211caec0b9adb24cb5bf6bd266ecc191894f70e697f57a054192fc76898cf4e323f3cdbfcca2e351db6031786f8fd1c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_4(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "1499f31af6735411327de83d8cebd2d2"),
		nonce:              decodeHexString(c, "2bb3646d8fecdef6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0f53ffe7c027b6fe143a2d527b8780ac"),
		expected:           decodeHexString(c, "8e7f8b7e3653a5410c8e37d03b1c3a4fa7066ab51cc3298b18a8eba2bf49cd78bcda77c5e042beed6a36445e058fe9856f1a953a4888a14410134cbc1d9a28688acc75fa9422f1447284293695bd9d26"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_5(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ee05558be77faf5ce39aa4b17f7a3de5"),
		nonce:              decodeHexString(c, "bea82a9e7dce2b3f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f9103f7739538bba0cd4cf78988c42d9"),
		expected:           decodeHexString(c, "f4e5a66a8f35b9fed2af5566a2bd0714e2488d4d51b2176fbb9f5b17fc16e7f0c82e4c079a166e8b6db302632aae216637d77d27619fb0df312fedd2c9d6b798cb4931c36f519050d5f9f588c3786be2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_6(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "b778083612cc9b138f68176b687b39c0"),
		nonce:              decodeHexString(c, "6c616696ac63a626"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0cde2f7e5d2f730b4141fbc32324751a"),
		expected:           decodeHexString(c, "8a4f1c07222b146760310e7699918dfbc6bd68165dd520ed18bda82ce68a80134519c42aa2ee56eea32c35dee503315bac9946fbb57421f71faac4cdfe3c74764b1eef803329cece0f42ac248878f767"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_7(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "281652f1752ca6b9bf04532f02d6ea1d"),
		nonce:              decodeHexString(c, "54644cee4bd06620"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "944be831a92a895949b42d9507ba7b18"),
		expected:           decodeHexString(c, "bb741e2c54e0c3d0aeabf2d4300429694e5b14bd2abd7087e38ae26b2efbaf427bb79edcc825e358cc91bbbd1c6b0bfcedf5f951afa7b73f20c193b2defe52e75684d41560b82f47e9b47bf32c392e1f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_8(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "366fd25d39d1f4d1d35f69c41d113809"),
		nonce:              decodeHexString(c, "c8b3e21a9dc22fcd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "772d88285a156b364fb9677be95af200"),
		expected:           decodeHexString(c, "382eb32ad8864e811bb28731f5b3acc21832ac84be4dc0003557fdf237332586072b780ac86be7a7b9f7ae278291a7698ec9b2343afd80860cb69bbddf4d1fbfd901840f965eb4931ed3f05cab9d8877"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_9(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "4a2cf89689f6f1608a25f14ff6870ede"),
		nonce:              decodeHexString(c, "65a620eebc68c16b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f766c57e979253a15768d5dfacaffc0b"),
		expected:           decodeHexString(c, "44c375bd8c2ea870a927ce74ea863e9fb8a7e4e79ece537941dcc1aac4c648031dd654a72870771d39c1ff52449d51902c76f7d1c9a6e61bae2e19636d41152a255a18c8afdbec3388aad82f5e3962a0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_10(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "0c4abd470af4c5921f54cbc663e40e00"),
		nonce:              decodeHexString(c, "63a754c6a17757d9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "35eeaecf5f0fee430ed54572e0ae295b"),
		expected:           decodeHexString(c, "cb876a0b999147cd1c6c94ff91c3e279a5417ce28d5669c9ad852472b718dcddcac036ed94111ebba1cd8caeb65369354ab9b43979f757050acf871ebdc3b0489596aba2abaf9c5edce16bda1335f006"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_11(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "cb35a9a6bbef1fa526fea0f15ace5ea2"),
		nonce:              decodeHexString(c, "ec6d18570fdce92d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "66100e61c908ba5457b1366c7c84fc90"),
		expected:           decodeHexString(c, "8b64d0aca599d93b82e0527a54a57aca4466c2c6ac3230b70dee596ac7c954c34ac0d8f7d71b886435b3a0b5b6b74add1a6ed9b063e23c7949673b11ab51dd11c239961e66916cc1fe60de630d4ed919"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_12(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "5177cc75ab7a1754992226b0cc566787"),
		nonce:              decodeHexString(c, "e02df3f3976c076e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e29d0faf032460d6b0563a7a1a0114c2"),
		expected:           decodeHexString(c, "3dab6c5b6722fd6d8c70c244f5a8a87dd12facd2e70a8102d06e8968ba8614a1b8ccd55d159de8348eec4b7703915bfcaf2792570bee0080ef1a7b297bb919f4d4602ac2da30f6abee974382d463efaa"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_13(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "702122667ecb80ab652128fcb5b65d17"),
		nonce:              decodeHexString(c, "5be3fa60c2f0a096"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8bd446b9f0f99a0b764aee6515599824"),
		expected:           decodeHexString(c, "b2dee774a1032b7ca86e18abb005e7083f637e24568272882c52995bd8cffbf61b7f9b5065fc9114c41e799d69a8066fe03c5db7030b369c50c85df196e064ca2fe08111a2a98d19a6634fe51b3c4210"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed4_SHA1_14(c *C) {
	s.testHMACAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "2fc9657e06f827f85ce05f42b38388c0"),
		nonce:              decodeHexString(c, "b316503b5953faa1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c54b51306308c5bdbd0358230872491a"),
		expected:           decodeHexString(c, "df713fd71ae3400e815469204314c071ddd134a8d40c1b7e2b2ae94cae2caa57169493ecdbdce52d7929242c74f2232bce79c7adfab47658d11b164186d0ff5c4a1fe5a17bb3617e2ac1af7fc014c16e"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_0(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "12bfb2bff5781128967e9ce4d429453c"),
		nonce:              decodeHexString(c, "5aab2be4e92ec855"),
		personalization:    decodeHexString(c, "129126c16d99a684f3cb47e7ffb207ac"),
		entropyInputReseed: decodeHexString(c, "fa8b0da2cd5031433d64310ba44d47e4"),
		expected:           decodeHexString(c, "766c4a1670dee63ee3aafb6039e86ec5ca2890531974e70fedb3c0218b08faca07ddfaaff0a77f0ae47762b0e1b31c5fb036dca413fb96f6e0ec6ab7dbcbb558aa5d94f429c38e0fd7b39f12721c9935"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_1(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "5f314eb4515b3fff678044d0a8e8b8c6"),
		nonce:              decodeHexString(c, "65d7efb0af14b89e"),
		personalization:    decodeHexString(c, "f3ee004227f3260cf128234bb4b49cfb"),
		entropyInputReseed: decodeHexString(c, "31a19761bc6aa0ef17a7d8feece54581"),
		expected:           decodeHexString(c, "afe1371517fa27cd48c972c0ce4910896f006b9500ed29c39c5d3e89bb6489dc258d0e01e97ba19a7e8f04295e39794f9054183b7a5bf10ff2e4e50e922323c3c4c1a8b9e9cb36475a534d4f16c0d05a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_2(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "db9c15470936f48d96320027b84b6525"),
		nonce:              decodeHexString(c, "9bf72468a403b78c"),
		personalization:    decodeHexString(c, "0b720c0b3bddd23034c58697766cdcaf"),
		entropyInputReseed: decodeHexString(c, "89e1c2646104526757e61bd1fefa5b6a"),
		expected:           decodeHexString(c, "6ae8eeb818f10ed8a881b5b040a1315756a27097baf8b17bdb5166a5bfd858256908f55e2586649b46b4df175b8e5aa3307e68edd8e5963641851aa143a1cf235555c5ea10314b45b962ac83670ad832"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_3(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3ca04ef08155523441f6996b8844a52e"),
		nonce:              decodeHexString(c, "9c0c9370ea130ff6"),
		personalization:    decodeHexString(c, "620a6150949161b2481a66e3d0a282ac"),
		entropyInputReseed: decodeHexString(c, "ded829ab4a833304fff50d47e64f8e96"),
		expected:           decodeHexString(c, "1d821781b1d2c0cc7e246590af5d4f00cb399323ed0452e44e3779d687736b5b2d942489d10bde5bec9aca51d810aabab67c9745f682543303c69a148ce46a02c7d14b7f4764270fc65a18071ba37b84"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_4(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "1ee0f38a61dae35aa3c8e797777ce35a"),
		nonce:              decodeHexString(c, "90fa73834ec282b7"),
		personalization:    decodeHexString(c, "007112257e4a794b2da9601a6043dd16"),
		entropyInputReseed: decodeHexString(c, "ac6e1103c0181bd5be84700fe1843555"),
		expected:           decodeHexString(c, "5120119844bb4322e73c13bc137881f5501380980438f3359289b117848b0cceb2ffe45cb9fcb1eb757d7bb6784dbb8ef0a973d5881b924d123c4a3fc46960d3a78da770ae53adec2ad693c235626c66"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_5(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "401c22409b47b9d6d46ec53866ac5e0e"),
		nonce:              decodeHexString(c, "5419d1ad34d6b6b8"),
		personalization:    decodeHexString(c, "f17d06e2974570515ead0fb0f53a2673"),
		entropyInputReseed: decodeHexString(c, "bbc65915ae03ae69f3bf66b968491f2d"),
		expected:           decodeHexString(c, "ea4a96e2ba40140ac54ffd5b669e9b0228d7a362e010cd311ce633c13f740c66a38623448e848d13c2cef1d81bfbcc3fec408a00c172159aef3f24a08f44852283034c6d8508e4745e8ee2677b4657a1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_6(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ce1bf38176d19e06ab5f1cd23c9dcbd4"),
		nonce:              decodeHexString(c, "dcb5f44b9d04e2f4"),
		personalization:    decodeHexString(c, "13f05293e362d9c504401edc8cc83e75"),
		entropyInputReseed: decodeHexString(c, "6adbfdcacced121f6bc61df3c93697d8"),
		expected:           decodeHexString(c, "3d6892aa94c5be0b3dd4c36baae56eab228f2d3187b80ac2bb2630f07e9336eebf479c7589e3aed9bffc8f21e982ba8a53512ed37e0bcdb8b15cd3364a0ed3603ee4fee339db82ac9e6abfe28a979409"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_7(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ed8aaed53ad2929cacdbfbb865413924"),
		nonce:              decodeHexString(c, "b884bea47b728c52"),
		personalization:    decodeHexString(c, "0db4a5b50e7e61c5fe47991571de7e62"),
		entropyInputReseed: decodeHexString(c, "8542ea41bf9816b77c48e18a84545397"),
		expected:           decodeHexString(c, "15533c4725cd778906496a2595825ebfa993bd8adb06e8cbfe380b5f09f37921377d0f7de7b79b2a033fa599942b78708fc0a07bc69822bd1b2da369a0f0712df7162fd8993631642e1ed625c2ce9baf"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_8(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "46ffe9d1d4348822d19954d4b2904eab"),
		nonce:              decodeHexString(c, "fb788f893163631c"),
		personalization:    decodeHexString(c, "da7653d4ed42b18ba184d8a9d26838ac"),
		entropyInputReseed: decodeHexString(c, "e88f12be7ef339076591fa11bccd82ca"),
		expected:           decodeHexString(c, "7b81d0db15a89f3597e817a21c1fb6209d9caef2993978490dce3e3df7b5b7cba00f1eff6eebbf659737c0a8dd5cbe53d143839d89a2d9fb9b0a2c55035b6cbb588b6ee75cf3997767bb11c2ef86c8e3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_9(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "a32c6fea74c6c8b73684d4dc05b74843"),
		nonce:              decodeHexString(c, "879e4b22e764bef5"),
		personalization:    decodeHexString(c, "ff63faa042f7e9637d0781b9ea93c61f"),
		entropyInputReseed: decodeHexString(c, "8667c7cda40904a03ae759faeb9be4bf"),
		expected:           decodeHexString(c, "f7c4b76356e70c1735b537894b3895da0702cc1871f8182452a4c5317ead6f4b419e2c39832dea27bca3e9d949f3a8a6674d9b3e312392e490fda9ebe4fc909a2b3f5a30cc68397d894f69108f01946f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_10(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "b2b15ced224f481600d725721d6c826a"),
		nonce:              decodeHexString(c, "d4d2ae6b5c7e6a52"),
		personalization:    decodeHexString(c, "af2f7176498486a7d2dc2caec10f7657"),
		entropyInputReseed: decodeHexString(c, "fe74a13c7c3f372e4b0c68bd9332bb42"),
		expected:           decodeHexString(c, "c0153f645c5818dc9781d3e3c0f8655b95d3a5901ddfd107f0ee44a2f52712fc32d99aef3f0891eb58b2a1e6353407b0f56f457c6d55b7dac09ef791dc157202c6b739110045709ab71ad971be6b443d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_11(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "5bdc7879786b46b09ca246e45e8d0f35"),
		nonce:              decodeHexString(c, "9efa2396c57bede7"),
		personalization:    decodeHexString(c, "c9250642314ff914d881c489a60a1ef2"),
		entropyInputReseed: decodeHexString(c, "59f6411be93098464ae487dcb71b019d"),
		expected:           decodeHexString(c, "a7c956d1b5e307fcc6ddebe33db2b7dd923e88eada99cecb7fe88cf07af95e74e68bcbae2912c6fba1b5022ca3d4c211bdd8df65d9402ffa1322702d7db8da26edf950a13d4c119d7653f1ee559c34dc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_12(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "dd1c19033ed467a6a919d73503d9b45a"),
		nonce:              decodeHexString(c, "2de077e855379d9f"),
		personalization:    decodeHexString(c, "480aabb5f431342b34086c7ad7dd3040"),
		entropyInputReseed: decodeHexString(c, "5bad8887ef03033d58b16013a101c45e"),
		expected:           decodeHexString(c, "83513414d1f14e1ffae5409f47071b408218883d0ec7ec788da6c25fac189ed1f673efaabff6853bf0067720c57712bfca09022da459c12d6c5de3e4627decec09e96ecee5b3f9dccdeb50fe2c768c08"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_13(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "08fe3bbe34d4f08c66b4a3108df93985"),
		nonce:              decodeHexString(c, "cd6505d51aeb982d"),
		personalization:    decodeHexString(c, "991a23eee8985c096495570f32faa7c0"),
		entropyInputReseed: decodeHexString(c, "f9323e1cf1e2ab6351483c5b1319ee4c"),
		expected:           decodeHexString(c, "42e5b5f875a674e0736f4736676ca85006357fba109b0ddb3f604b860554921ca2a2f2c2d6976cd79347bd169c532194c252042c245526ae2a6a1f357d5e24fcb1f1f280d30baee10960d2d4330bf747"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed6_SHA1_14(c *C) {
	s.testHMACAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ba5aecc5db239d14ab4b395d7fc79dfd"),
		nonce:              decodeHexString(c, "1ed217df37d79a55"),
		personalization:    decodeHexString(c, "1dd11c419a0b07d05cb578f603c941a0"),
		entropyInputReseed: decodeHexString(c, "1049bc424dcc88fa23354928318c8048"),
		expected:           decodeHexString(c, "69d252209d4cfdf54e62aac442b02758a69f4988bedffbf76f6fd76a3dc458516f32d6a0c93f5bc1ca4b663de524215fb8dd725e1aa19167bcfc6e91363ba49f24a9540252cd13d7e03e7de77422dd62"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_0(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "23bec02f58a3a8d9d9fb368dd2628c56"),
		nonce:              decodeHexString(c, "eedaa50cea712546"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4d466a3608a4acdbd6a5a7a753a15f9b"),
		expected:           decodeHexString(c, "987f5ca0b59d6fd1de8d7ebb07c0d988e246c30fea5dbf5cdd5bbef7ca453018e2bacbf7977f494ca9bf5c128055e41ab8f7da93d8bbfaf9044b094a6edd0d72963f83a3d1f417fc8f5b723911eca062"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_1(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3c3ae3f8e2705b77ce06e67381b6b7c4"),
		nonce:              decodeHexString(c, "09a2f5c3f165e3bd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "704a2568e4e64be675d1fc45ff744b07"),
		expected:           decodeHexString(c, "2086738a4c5ea298e2e22a1404c15c0e01003acab9fc3b57a151e22cc9332337f56a03b876704fec1d942713e75b88ef81402166361927d1c09bc3b762ba9cac38dddbaca99f32122a7e68952a7fac7d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_2(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "459f52e677d0e10ef6676b3a2e146475"),
		nonce:              decodeHexString(c, "ade64f6db903dd98"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b9431233de90ab01260ecca80d7a5367"),
		expected:           decodeHexString(c, "db10431805726a05dd19136bc5cd2667f5d64bcb71727e0fee19bad9a0c2049f03ed40a1990be9a0bae8b895abe86c5f049c4d6bdaa6db9c5b790cf2f1b003638699021f079913c49161d5f99a6073d9"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_3(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "508bba0d257b512a08d251550f265fa8"),
		nonce:              decodeHexString(c, "6de3e0e1fda1c159"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2f1bf12f30ebb2cd03c396da3fbf2ef8"),
		expected:           decodeHexString(c, "5e74308426c54388f809a50cf4d1985efcd1ecc101b3be340bcadae35469e32eef2ed1bbf7aaf8f79a723f76a367a6dd54c6abefd1a122b0cacaec56750d7701d51106d15c334c80e6c1cc6b7acf0c46"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_4(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "c23773adb955449521f1fc0debb6e349"),
		nonce:              decodeHexString(c, "50240dafec42bbaa"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4ccc5fa315e3eccf8b4dd18accbe98da"),
		expected:           decodeHexString(c, "f8ac3735ee4712a92cd97c66671d3b4031e49efdbd733d55e817b4f8de215903488c0b6defae0905abac1d199b47471f0310c76e1de58bc8d6c793413b31078a506a1724bc329d28049a78ac10b7dfab"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_5(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "7655fd510776434ea512432522ea61f2"),
		nonce:              decodeHexString(c, "94d7ff1f7fe7d0db"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "12a4a027b297fffbe91d8b291c3acb6f"),
		expected:           decodeHexString(c, "ee53aa45e1af84295821cea896fae7eb23695e4e3b669ecbfdce4726875d8d622139e763413e4ebeb52481442a5af1dad59b75c002ba63ebd0634db10ed58abe9860d2aa5a37f36dce50b8c622eb1c91"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_6(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "8a8e9d3d2a07e4dfe73e15de6f575a62"),
		nonce:              decodeHexString(c, "8fb6b75ec61cd014"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "19da99267f0e019ea08189c0b9c47674"),
		expected:           decodeHexString(c, "f86e4e918de08ce26a34d43c301a1b0732cb9201ba7b06e5b222c65a97ebaaf4544947ca96aba654d8fdb875dcb1137924ca1c6a9f510f3f29420c0cf0a0bf4606d4b48ef95ba8f2f3ef02566c7a221e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_7(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "8d4c0135558aefa83a5a50010a96927e"),
		nonce:              decodeHexString(c, "81f0f1878254f3d2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e3d2772a989bcccd454d9d361c635142"),
		expected:           decodeHexString(c, "301c94f81aa058551673bd81a019c64778c1de61383b7fd31aec6495081a85620e48a8bf5ec09e6051c9910c6142c7ab9788580f112ecd54441ef873c5f9227bea9fb5a77bdabaf2acc523c4f04fd965"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_8(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "e8503f7db66e5dde3b6fbd57a6576a38"),
		nonce:              decodeHexString(c, "720523663c99ec52"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0fa52238c39ecfc2180535db0adfbb46"),
		expected:           decodeHexString(c, "f0817296721aa5fd47faf138521729f6b69138babdbe9962a45e26f0bfb617a83cea78a38ac6acd954f5cc23d6ac8fd7c05c98d76f902855dfa63965f524e1348a00ab425f3f7f1034d70aae43d74517"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_9(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "6163e7d1145030ad39ccde7448df2129"),
		nonce:              decodeHexString(c, "69a03030ba852e80"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a3b7b6388e2f558f0ab3e2fae3df4efb"),
		expected:           decodeHexString(c, "eecaada44b905ca5579d08348fe4ee182bcad49fd54b1c346e708177e52d2dda3c016973bb83fc2881dff2c4bc1899ebb04c45666b08932456d85e09ebe391e327f91d16ba2fa3199cae1bb3e7fa5eb0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_10(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "961f386dd73dd7e41a538747ef7ec71c"),
		nonce:              decodeHexString(c, "e913e8af10781c30"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fb27c35d0f3090c06914f948e220a143"),
		expected:           decodeHexString(c, "b3389514037e400015f4ffb504a2426549f807535e2ca3bcafdc673f83830dae84a0eabc9c4cadc89f88ad54a0b9b124ae828e42f7e930377a5102490cea1a65c699d0f0e1965e27c9d62036bc206710"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_11(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "458e3a23290e2c1adc314d7d593cab0d"),
		nonce:              decodeHexString(c, "30286c4023501608"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3b4d588bd106e35468d3b292f9f1106e"),
		expected:           decodeHexString(c, "9ebf82bf32d1b561bd413e089d003c8b1f7d9b66dcd82c72f1feb5c46d293388946394ffe45ca17717d42e699c8e908da3331ae8e9652147442c9a8558e1995fd3359398e79d98068180e5f76850812b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_12(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "d5e78a5768f8e4ab3d4aa281651e0b66"),
		nonce:              decodeHexString(c, "efc4b4eb2bd15645"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fd7840b662b5e13cf4b5e7db093bb27d"),
		expected:           decodeHexString(c, "228a85d23303f04eaa887ce30ab0d43956ec57bbac6e5cfcd63136496ba75d714bd43d5701cdd59b53a422cecda3efc2e33842a71908c9dad0794ddef6ccc03ce38b6d7b703835221b2ca402268a7ae6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_13(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3078004ee9f06bd745a28029d7c1dd0c"),
		nonce:              decodeHexString(c, "0055c09f4c1c3d40"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ff4141209a65dd1f7544ff6c0e82c397"),
		expected:           decodeHexString(c, "7da1bcfcff22ff632916ca7bc739eed275e6ec191d55e0cabdcff04e079b8bbd3825196feba7045ff102e80b4d07ab489a1ade8fd2e7fb0fa3d2950b13d4df9f0dd2901ba227fa1d33f02b5bf5607fc7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed8_SHA1_14(c *C) {
	s.testHMACAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "1a4c04d384cea433a92f1d81bf0de58c"),
		nonce:              decodeHexString(c, "71520e38696575c4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9318e0ec820446abecb37b04bcca3cfa"),
		expected:           decodeHexString(c, "ee47592eaa7b92988989a40577a888caf59f45246d8f421598ebf3e6e387da718356d59b25803c2c771c9946924e313ce4479afe8a22e2d3ad59c3ca29794bb71e6c8661d9b38faab20646dc30e6f269"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_0(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "9111d8c33f0f585347d51354aba7aa15"),
		nonce:              decodeHexString(c, "bd05ff4fcb058de3"),
		personalization:    decodeHexString(c, "999d6da3b5dd452c4bd972017b3fa135"),
		entropyInputReseed: decodeHexString(c, "8447d06c5fdb5cf2add77bc569e8944b"),
		expected:           decodeHexString(c, "697d468accc526558198a0d0af81850bb9910b70518c86a7f99b7b82657966a05c73890c3af48152045e669afdca080739721fc2bdd49f90a1e565a69069236e83e5e1de6c91be64020a9a95a2b74982"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_1(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "8a7a3c588e6e90baad9c7708a603e9a4"),
		nonce:              decodeHexString(c, "7605045e7460ee0c"),
		personalization:    decodeHexString(c, "c30f916b3d70e953d9d5408cf73a6227"),
		entropyInputReseed: decodeHexString(c, "22680561327465e35874545609f9b916"),
		expected:           decodeHexString(c, "58a6b89c859fdb65110c8006cc8897c5173a3781dc7aa7dca0020db42b3c1fd5993c1a6d2466e843fc7915bdc7d6f40ed8759e474fd78bf55d58c45a3a8839f7f9dc2c32f870063b8e9235877a0531da"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_2(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "33539ad9c4e5644b40ef0bea8dd99957"),
		nonce:              decodeHexString(c, "58d39aaa5fcf7575"),
		personalization:    decodeHexString(c, "228e79bb5759de071c41e8d960b71d2f"),
		entropyInputReseed: decodeHexString(c, "7a2bbb7914614615775c6a62156b5b1e"),
		expected:           decodeHexString(c, "ab910cbc1113226444e25e28ed9de16b4713d0904de2f3e7d410e52bee189540b2b65f41cfe375af8df3c22ca2a9307bf2a53baad050485bde30fa517e280ad2d4277ff2bbd575fcea73d5af48207896"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_3(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "28ac7443ff3f5e79455c35a79c5ac07e"),
		nonce:              decodeHexString(c, "7a6987a812c079de"),
		personalization:    decodeHexString(c, "d461a3d0bc6b650ae621d5b4d1b9ef6c"),
		entropyInputReseed: decodeHexString(c, "591c8c18536a115ff0ca9dd4e1dad799"),
		expected:           decodeHexString(c, "f6a77be979b10eb649160b1cf2c0a4682d16ffab2f9f5338ae4970630bd6ca4c0ab962c10cbeaa9bbeb74d71d7b8d1ed36dba1d49d2fdd1327b7e73ab915921ac910b4c71b7ebbec7bec27253454a699"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_4(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "8834b1115c1e04a61e9676e3169b3a0d"),
		nonce:              decodeHexString(c, "45ad058000ec321e"),
		personalization:    decodeHexString(c, "937f864600a1066a5956328f6a989eac"),
		entropyInputReseed: decodeHexString(c, "91389a9a3f55c68b99dcaff92e5e3200"),
		expected:           decodeHexString(c, "58cc3b24f7a79d6206dc4637805c0fd98b26adc2e072e0b9dd288f3dea322e92cee1e266f8b043f3086615e16a8896b6b4d6feae97cc6771e7b6c1714886f1def59d8f0ae871b5e8765947857ce0257d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_5(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "dfcd24f5de567333f224939fd6e15deb"),
		nonce:              decodeHexString(c, "7ef1cea8356ab2f5"),
		personalization:    decodeHexString(c, "12288c4d4d62bff7ca5175b182c0fdf4"),
		entropyInputReseed: decodeHexString(c, "c193129bb45cd1a0f05eea41505de2de"),
		expected:           decodeHexString(c, "d4e852437f64123d017dcfb9b1482737e6803bb43d8810783477bfc40a82f5a98d1630b21724e8e429c4c8d1a93c7fa4ed0415e7fcd301c1d8496ef69809132c369dbfc4df7de96b707b59f03609c1b1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_6(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "172054c827aa895fa1239b7a484752f2"),
		nonce:              decodeHexString(c, "edb272c0a98c7592"),
		personalization:    decodeHexString(c, "47bc78bfbd1bb7e2dcdbf4ebe42c5293"),
		entropyInputReseed: decodeHexString(c, "29f92a0e5d24e19af698877f69a0efb5"),
		expected:           decodeHexString(c, "6464bdaed23245db1f6510f8659e1b19881d606220997b837684a7f88a166cb75ce6829cb3f11e55d2b7ad349cc1f4ba02e30a76f970613aa74635b0034f8e985cde4f1fddb964657a169386e20767d1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_7(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "0d569aba053f8dcad1a84635f7585ebb"),
		nonce:              decodeHexString(c, "8a7ce1a5d19daa60"),
		personalization:    decodeHexString(c, "fa26519f8284c98a3637274ecfdac9ec"),
		entropyInputReseed: decodeHexString(c, "d79b6b0133e34a821a8748af98aeb30c"),
		expected:           decodeHexString(c, "f4ec11f81d7fffc36fa093d2a98c9b659d83d7a6e583736a6ec64e29d7f8efecd9dfa3623e075fc77024d4cad16eb91ef1a10068bfe0ef3a94cc6f89183e1abd62eea0eeb38f77886bea94a64dc6bec2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_8(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "6d9012c3fc9e1f6958bfd685b0c48467"),
		nonce:              decodeHexString(c, "71e4eae5b9134d4d"),
		personalization:    decodeHexString(c, "f9a371cd61d168dc35d8697c6a06141d"),
		entropyInputReseed: decodeHexString(c, "2741ba09128b8a598694211f28084bfd"),
		expected:           decodeHexString(c, "a67499a5c3a5554b772f138eb08a0e306c70be1061b40dd1851ad4ba2078944aaa50496242531c56805c0c542927da64d2932c9c50e4898abaf4252c466706f7f57b69bf9efe7162d7938135a62e8ca0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_9(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "8dbe2334b4489d357b740bb14a69337d"),
		nonce:              decodeHexString(c, "45416ba4e9183679"),
		personalization:    decodeHexString(c, "bfe05d8b689218ccba212ba849cddc80"),
		entropyInputReseed: decodeHexString(c, "197c7c95a6aa3607546edde7da53c693"),
		expected:           decodeHexString(c, "445f8fa6766b88b960e61d36489dcedbaf73156c53d19131cac34aa2d2da4426d5bb49f67463c9c9286c989b4e42f8e54c3fa9872ebd261417b372ac064515b0c9e87a6c0f412f10171a81f67507089a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_10(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "447dec4e71bb163d43dbaa35f6cd2425"),
		nonce:              decodeHexString(c, "92ec0fdc013d49f8"),
		personalization:    decodeHexString(c, "8f9a2a68fde72031ea082ead98e051c8"),
		entropyInputReseed: decodeHexString(c, "d31db128bf5edf92aed173586c21886e"),
		expected:           decodeHexString(c, "65a61e844fe8943bcb004227807e7b71fea4a83f1df83be942c58e54ea317b8c9fa9f28f5376323583d3dee622f9a581d43c89b3f0d838b82a7853b7c2b17e2f2d1ce7b3867378a1a656214f5f618ef4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_11(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "b3d6eb100e04261c03600446640a1ef1"),
		nonce:              decodeHexString(c, "37e524c906e8d477"),
		personalization:    decodeHexString(c, "2a42a860a99352272e8785e21ad0b9f4"),
		entropyInputReseed: decodeHexString(c, "285fc9b762510f878d7ab15edc2b7dcf"),
		expected:           decodeHexString(c, "01c98734340d5a4cd96bffb4f204015dd9fc7e5489679c38678368a5487bdddbdb133a7187b68b7e37060aba91ecb6a3804f959bd701c3033b0c8bf0b120fcc500ba8440fea34d475ffbedfbbd510b0f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_12(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "7a5639096fd3a499d42b4b58dd80afd6"),
		nonce:              decodeHexString(c, "ab3e799c89392ed1"),
		personalization:    decodeHexString(c, "c7b65d68bf09f4b23ab6f665dd2a75f7"),
		entropyInputReseed: decodeHexString(c, "3e1419ac5c8a5d9b78ed83c38419f496"),
		expected:           decodeHexString(c, "3a26a28a13645ccbdd7efc3343dc43fe2c81297bd5ac6536dec587a68b93d1eb413eecdcdeb6151a45ba445fa26867e87e25adbd9ab511eecad397d6d7741c60bc5366ced65cb43e4babbfb91326786e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_13(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "e36d7ad2cdf13debd1417c6c0b9c37ff"),
		nonce:              decodeHexString(c, "480e5d38e7c56717"),
		personalization:    decodeHexString(c, "733dd2611ecbba2c77360de4849f9b19"),
		entropyInputReseed: decodeHexString(c, "25cd4521ce38e98421f724f10fed6934"),
		expected:           decodeHexString(c, "14b4c471c95b32155a0b2e83675115dba0633fa9cf566b10f9b60b2c4a7393b34f0506582be46d4a5b034071bd1f51ebe0fbd004b70b3ec3fa6eae3c8252b5b861f39632ef4ac8dc2a417f6266ce4acc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed10_SHA1_14(c *C) {
	s.testHMACAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "82df9baf15bbd613ced8a7e4c54f349f"),
		nonce:              decodeHexString(c, "b4946811fecbcb50"),
		personalization:    decodeHexString(c, "5844dec944e403f50360ecfe9f3925a6"),
		entropyInputReseed: decodeHexString(c, "d16ccf4016404b289597523873b70ab1"),
		expected:           decodeHexString(c, "ceff38465338aaf6b1f5a9f97c662b939b59d05a38067a55885359eb8026f43bc4913d16878e4cfab725ca4166c75b45aa6139d16fd79a91e9fd23b24481c30c0681807184a2e603e277bfc0ee850036"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_0(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3c1f3a98efda9ff1b29d158892065e01"),
		nonce:              decodeHexString(c, "8afa6df021baf5d6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d8de5b0cdfb0df0d60127ad3ada13acb"),
		expected:           decodeHexString(c, "ae577f99743480e39138c9e321b86dbb0ee91cd2422d21fc6455268859803d7c4de5d777dfd6cb5f75742efb1e4ad7b5373f677abd3a51f8a1ffd569f67cbc65645184b9d1593472f2409d49c71baf81"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_1(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "4c1498741c78a3234844032e07b46739"),
		nonce:              decodeHexString(c, "49f8849094cc499c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bd32adb6b4bb57edc0cacae3e6ebe9fc"),
		expected:           decodeHexString(c, "05d71a826461765adc4cebef9560d7de83f10f8a01f697dc7c35bad1566d19df668c4e8798510d293cd3f58f2eb67d19186ac8082c62250d6240678f27711f4721ca5ad2408681e65a1a75302dcde171"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_2(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "4b85d028724ec916b7dea5d1530593fb"),
		nonce:              decodeHexString(c, "8f174e51704dd5bb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8db390a9088775c342998283e2f50709"),
		expected:           decodeHexString(c, "fabf6224e12a0b01928e65e1f0cd2bf7286e766bcc3a2f3a8bad75a4422309f62608b6932bb8174b7dafb807f6a06185e610738e67f809cc5cd416f7214d781db5a5f95a89914223dd77a9fb7e3aa481"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_3(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "2e5310353910a6c931f7b9cef0e97581"),
		nonce:              decodeHexString(c, "03a37b6ca62eb62b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "709c8bd5dd954be90d53c1c40aac30ab"),
		expected:           decodeHexString(c, "f8044b599ff2f1ddabd9de8169e7a4f82432808ef0bbd788b9c87a01ef4d498dea320286439af6986006e09a22fee877976c9d3a5795cfa9b89eee9d5bd337b4d57386a9eb0469291c0a50e047b31c12"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_4(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "771b07f7d4c53e33bfed333b2ad69f0c"),
		nonce:              decodeHexString(c, "d6fb55a61e0cb63c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "529cbd1f1c5faa69ebf86a4796db46c1"),
		expected:           decodeHexString(c, "74459d2a69bc9b9b1fd460c10d842ca819fa9f07815765674765c27aae625cefaafca8d4f0936b6f4a9c5e043563afd45cca00ce85f1cb49e3b65560d921914de4644fbbaaf188daf32ef511bb196348"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_5(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "d81c78895236df02d7ba04fb873ca4ca"),
		nonce:              decodeHexString(c, "6733e4503cd69554"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ca589b755627817454a2359cb028ec20"),
		expected:           decodeHexString(c, "6e963709ee5ada5dfa21852fb30207a975759e57016dc8d00930be6b46b02c8c91c1e77b15e20c55041c172d027067864e6ae8ff8937ece4cd3f183ec464fa80b21376af60a560f2463d74f2d09b9c14"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_6(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "b1a19bb07c30ca4f49dc69130d23c0a7"),
		nonce:              decodeHexString(c, "2c06067297058ec5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "840802cea2e55a3b1e487bb7aee62b42"),
		expected:           decodeHexString(c, "f41bb7ae532344a90d413b66a94ee1d0254a5d5e974e36b1993b1042586f54728d1ebb7c5d351558ed675177e432360708c008984c41bc4c828d83ddeca9ef8ecd9da880a135400a43f91f4ca6d59d00"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_7(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "f25c7f0a1dc4395f858e8d7e9acb2573"),
		nonce:              decodeHexString(c, "44fab1cc03acb43b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3b131851d062b3291cbf967947962882"),
		expected:           decodeHexString(c, "8235f6813989ebf914811067d490e85ee066faa9dc6e55763288b44c5eb87be83bf23eab826ff1886a7348a9b47584e84b43c3a60c8c6cbb7d47686ea590240e29de5a7b4e41d0f06367a264366943e5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_8(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "709b3f42df070f7ed87cbda986460507"),
		nonce:              decodeHexString(c, "6d65dbb19581fab5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bbd62a7775707b4336650ffa37482637"),
		expected:           decodeHexString(c, "5326d763557b7b0be6a17191098344c2c92b7b00534814941d934688196b2acd838a5d3a71ae95577e1b8e9d00acd79f58675850e9b5704f0d7fd9492edee4b4a531ad120693e3a0960f9ebaafdb81d7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_9(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "eef32f59df7527a93ff0c576b9a2843e"),
		nonce:              decodeHexString(c, "5971cfc87aa7796f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "96cae0a5f3e940b8e773c334a0474597"),
		expected:           decodeHexString(c, "87c4117a91641a28ed5f5df41e8c9e3a8abf43beb9fa9a4929de15cb7ed7d1644e8db821146ae33b71720ea5e1f8a0cd71e821edc0e8bd38f92ae6ac9ea1a6600bb22e2325326d0c68e29f7da8db6b5e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_10(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "b8b5583a9f8e5f83d93466451a2c5b06"),
		nonce:              decodeHexString(c, "057028d22e323836"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "afc0afb92b412867421cc77e68e07e85"),
		expected:           decodeHexString(c, "06e267145c475d8bebf42949a99b8d9b144664dcd5d26a7f40d7c39d48ae5dc7359ebbf62d91a2bd2e2942eea7b8733610a157c625091e41159c9bfdea0fd50965009449b8a09c74eff7e1689d80a38c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_11(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "576b7513d4da71074d7380abcf88b774"),
		nonce:              decodeHexString(c, "8fc866f10e2b7f19"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "68331547280df6bf339e37c115a24d7a"),
		expected:           decodeHexString(c, "e71add18c6109a75636aa46f510db8936fbe37739599d5c67cb63dc6f0dbff62499c0903072bf4baaa1f323bec9e13bfbff006ace59cf84d66a05c5ede372ad9dd69fd37bd7a543ed7d7a9ff1abc5767"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_12(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "e8bfa2acd2cf3188f29880a0a699d271"),
		nonce:              decodeHexString(c, "a43cdae521bcf155"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ce8efd591897fccab85f231e2787661d"),
		expected:           decodeHexString(c, "07820587f88c1c84182c7c3aedc6b2402e460e732daebb690bf1e3f70ed1127a736928aad2f80fb6559e5af3157edabeb956b5490c16e1bf2997688a6d6d30ba2d7cbb34b1dedeceed381a38e8fff904"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_13(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3e9fc7603a0b8ad62ca1c3e318db0593"),
		nonce:              decodeHexString(c, "dcf11e6bbcf78825"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "39043ad3dca8ea9e0ac9c28948049985"),
		expected:           decodeHexString(c, "26f7eb7eb7c7149d143b4858bc1458d3218ebf3b5a86f66fe760636df7f70d73c6c79467daaac078ce8f93e9acea615d4fc5d303aefab289259e3dffa85635b8d366e3ed9d0f342de2946cc44b144808"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed12_SHA1_14(c *C) {
	s.testHMACAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "7d49932fa135a5eb585b3cdd968daf99"),
		nonce:              decodeHexString(c, "ff0d752e2b72180f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d955641750a7c3a81ab6f8bf93eb2393"),
		expected:           decodeHexString(c, "b76301ed39e7bc1dd285352b58a4ee546ca612b29109d870ba41037bd20f44618205447597799e494c9045c58f523262fd8691bd12cb80cd007348fa282ff67a974198c54d99bbf23c25e7af471dc85d"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_0(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ed1083d61c9f5aef470eae91e539032d"),
		nonce:              decodeHexString(c, "c3895cc89d019570"),
		personalization:    decodeHexString(c, "332c5bbe1f3a572aad031584e585eda3"),
		entropyInputReseed: decodeHexString(c, "5658e4e165ccba7016b2496bfec358eb"),
		expected:           decodeHexString(c, "a268c24d9b459a0ae48590874aa18107bc2c1d49ecf20aa1af4eae57ca9b8497c27df43325037112a1a3b72865974a59e541688c8a9b09b25149d144c84e70f30b9c075cde12bb3932f233abb637b7b1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_1(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "74600125eca2cde01b9d9b0aa8bda45f"),
		nonce:              decodeHexString(c, "10a61db6699526a7"),
		personalization:    decodeHexString(c, "d51c87b5f310446756c045a1d8cb0e6c"),
		entropyInputReseed: decodeHexString(c, "46a8aa3175db7cfa39c66eedac4470bc"),
		expected:           decodeHexString(c, "e869f337f7cd7aa8c9b008637c1e6dd2952d66b6470029b9a111e51d6cc37bfbf46c53ef6c296a6c1f5708c6792c5ecf4680ab6029ce18d65eb549f5a73a02617daa5bd18b510f87759b6868ee241ff7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_2(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "226eb5be121b9245213d59258954d319"),
		nonce:              decodeHexString(c, "d16e8ec046ef297d"),
		personalization:    decodeHexString(c, "848738276a92bab16d320173e74da6b3"),
		entropyInputReseed: decodeHexString(c, "de1dcf265f8a9e9d508f5fe52b8111df"),
		expected:           decodeHexString(c, "93f9eb9b0693a0ca70c7afad583e0586bdce0787227878765a5dac3b6ff17b086ec2c9b7d2526400dc0e8bd691dcc17f1b7210013037742973e2660f914d85fd7ab17cd0b2c11a7009ec2a423df5c81f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_3(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "e7ae41a5daf64bb228cf9a0e6db71918"),
		nonce:              decodeHexString(c, "41219a5f3def9f06"),
		personalization:    decodeHexString(c, "06894767743b014abb137cad5e863cb7"),
		entropyInputReseed: decodeHexString(c, "5d1c05376ebc01a20546929482f5954c"),
		expected:           decodeHexString(c, "1d4824dfd3848c8802461877a86f1c2b59234fb390c649ec338749448246359a56c6e214080385d1898d9b0e5b520e380a23800c9a18c9ac289c24f82906aedc6647d488e56e902a620f2a86bc6e00c7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_4(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "5d4cee56dbdf57afc3340b308c4fbd9d"),
		nonce:              decodeHexString(c, "0b52e9934265ef21"),
		personalization:    decodeHexString(c, "d5a7a695f27e1db070e9ebeceffdae4f"),
		entropyInputReseed: decodeHexString(c, "0190983b394f83a28fb2b6cc8eb78e85"),
		expected:           decodeHexString(c, "8bedcfda5918afe9a132b9113b69a6b2cba4bea0b8d8846f30b2c86bfe71b69b26528bde1351d88604391b9f305b2e9e0156caad7b8d980265ca052188a14477fb12d2d5d0f1ce28623defae576f332c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_5(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "fee10aae77b9de4d3c603b85b7f38c0c"),
		nonce:              decodeHexString(c, "dd9822ef720f3daa"),
		personalization:    decodeHexString(c, "0f917459c9d26e13cac5a6ecfe710809"),
		entropyInputReseed: decodeHexString(c, "1dc9ca87b6bbadba44ce5653e556ba58"),
		expected:           decodeHexString(c, "61e0e3ea3feb99ed7427919352295184ab9e55125127c73c58577ccceb607547a1c5ef4a5705025c8ea1f3ca1fe63e39ca1950dc8c101b94ceced4009fd8d542e82d314bdc01a49911638404cfbd2d9b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_6(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "670515a13b8cb10ca73e3dbcea3a6e0b"),
		nonce:              decodeHexString(c, "ed4ba7500467e152"),
		personalization:    decodeHexString(c, "abf6b6dfeb44a24d09e72f6937e76080"),
		entropyInputReseed: decodeHexString(c, "ecb5f8a70bb327190654be0ff5cca42e"),
		expected:           decodeHexString(c, "06f32b27d914832de13ad66c9c8f93b2c5c60399b316af1a892149e1bde883ed6218f1fffd661ccd92dc698f5c5e6775763339d5992816f909704d509e59414adf0033f3a11ff60596fc0a285a2a5d81"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_7(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "950ddd2ade0aac34d4fcd864ab314d44"),
		nonce:              decodeHexString(c, "10313c4e6c13edcb"),
		personalization:    decodeHexString(c, "ee63a064c76cebbdef3dff6be4d9b058"),
		entropyInputReseed: decodeHexString(c, "eb7cad7809293dda70f67cad432e1aeb"),
		expected:           decodeHexString(c, "b1ba0665d292161958dc9bdfd65b47e927bdb5f150cebb15d2d15d058406492016dc2f7fdec3851901eada8d59bc9940753ba80a498e3699b437fdc50d45578f054d7bd56536165c6f3eea695658bdbb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_8(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "a13e3dc6d8ea17733d298538131d3812"),
		nonce:              decodeHexString(c, "daad23d22e2b2d20"),
		personalization:    decodeHexString(c, "e6e951fb0a33d7ecb77fdda0297e06dd"),
		entropyInputReseed: decodeHexString(c, "469fde41cfb1699867504e3a23e82aa4"),
		expected:           decodeHexString(c, "0c000222ed7aba82af189e5aef911739573d926cc98769801a57f075f20eab1f54b22cd0b53814f725b2c6862877d2fbe63975c9aed446288620822e6dee077b72942e61d87ac32b3be9905be6b2b930"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_9(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "842fa32fed6fa399144250572f6c6df6"),
		nonce:              decodeHexString(c, "121dda73dabae534"),
		personalization:    decodeHexString(c, "a46f727f8a28234214a1199f758a497a"),
		entropyInputReseed: decodeHexString(c, "b67f6a9e83b7ff6a499d25277c449453"),
		expected:           decodeHexString(c, "5e8eb6dfc74d9366b5bb1305fa82751818e396441c3d2f60b09518342f7d1b367ed7703c54bd081d0eb4e85aeafe2f68038d1099ec2547d7966ae9e181d0f63f57aeec40e99d96cd79a887b37763df46"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_10(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3848efe942ebf082aa82016d19c3160e"),
		nonce:              decodeHexString(c, "157f5cf67cd0d263"),
		personalization:    decodeHexString(c, "57688d5f282eaf67a500fad41b7d3b6c"),
		entropyInputReseed: decodeHexString(c, "f893166384ff25d34ee1e3c420110e57"),
		expected:           decodeHexString(c, "c81f97ccf795c054fdf2586346649dbcc24c872472e19631e81510ba816458408f46fd675de9160e5d7a8e48a5beb095712a4358c1aaec09ab1a5afa7c9faad02d4595824a4669c5ee0d26ff2fc19ac7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_11(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "11e284100433892418fd1742fdb0696c"),
		nonce:              decodeHexString(c, "f95bd384491a2068"),
		personalization:    decodeHexString(c, "0a0d6cad0a89f402db59f6273e672997"),
		entropyInputReseed: decodeHexString(c, "ecf47ea987767cd84907c218dff84f14"),
		expected:           decodeHexString(c, "12262b4a3e0f3e3c8b7aa93598930cb6ae41ac3e1cb7cddea9a29e542e4930c97a2442212fbb7639bbb0dadf482c0064318344d95604c1b294976a31228bb232cc9e8e3de47f8b05006a3a8e797f1465"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_12(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "adf06e13506a1a5d07984a32b67f227e"),
		nonce:              decodeHexString(c, "8c425fc1b4fb1874"),
		personalization:    decodeHexString(c, "e810de40434b447fdefae74daf65879e"),
		entropyInputReseed: decodeHexString(c, "f9b1f7ed0399f5adac13f000c151d5e3"),
		expected:           decodeHexString(c, "46e89ba929df0ad8f1c4fadb177529d4589d0311f03b40231bd61c4c53eec3223381f50805999cee68de34993abb5984650f85c33287a54230871ba2ba0decd044b30491abbbd5e4de09902c5e4bfb5b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_13(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "bee72daf3a1ef5c777535ea56408e5ef"),
		nonce:              decodeHexString(c, "5fc8914c05e351f3"),
		personalization:    decodeHexString(c, "593400d041a4b4d6fb79b822ddbabd38"),
		entropyInputReseed: decodeHexString(c, "73f7965057401d3d09bf00c2ed44eb1b"),
		expected:           decodeHexString(c, "5d86452d676571756256e2ef939a1a6d65bed74a1873b8500ecb5f7eda332c3011e20ee91818c39c38bbb645bcbdad6a36ff55dce419543d8fe48144fb6fb456e219d05492adf71c2321ad77676256dd"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed14_SHA1_14(c *C) {
	s.testHMACAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "366338cbab989f18525b91d2c75e6d91"),
		nonce:              decodeHexString(c, "8aa9e6516f739b46"),
		personalization:    decodeHexString(c, "62fc1a2145d7c72dea232fdc9a82ddee"),
		entropyInputReseed: decodeHexString(c, "7b4cc3d5fa5547b4fd198f0bafc1984b"),
		expected:           decodeHexString(c, "3503e5f10923e6d34d2c14fb07148d61a2ab52eedf5aa8610f5f13890d72cd8f475a6138d316027f1616bf1ebb4730a3c3f91dda46569ce7abe7297ab00f20f1201b24f2f683e0140083f3d38d81b5bd"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_0(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "09effa3906a5e93d05530edc71e62b39c5e4da020537176c"),
		nonce:              decodeHexString(c, "23823da52dbdbae8307656cd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "af8f861471dba14533c880505874098917e338f20ef8d8a1"),
		expected:           decodeHexString(c, "d5de8a3388b11e45085f6d9a009462947631c4e74523080ccd03a0196aa56b63a93a2939f490e9456e9fce3e9000e58190991b9aed6d145ac18f65cf2b1c17eb021acc5256eb6a7e9023f62aed87d15ea4e4b328f265cc34adbc062d54524365cc9c5073a8371f35dc2f459e1d027515"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_1(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "29a7071e686936e60c392061f71b68500dd6f11c563732fc"),
		nonce:              decodeHexString(c, "a9dec3b2f859e06a857fd94e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3ca1817872d94c2b7c2f283a0d2d12a6443e95f7e700a910"),
		expected:           decodeHexString(c, "72c0f3cb7792bfebbc1ee6f65d40d118a6a1c4e04e589c8f70273b4c7b718c9df383658572b894838a311fc0aa2aa6258758b33783e192b0c3c1d322809375dc925a05605fed8c7e8fb878fb63c84ce639fd277d9955f91602a9f4777b7c3b15404c4e761ec8d466674e32136c7b8bdb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_2(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "abd3dafc85b23025792bcdaf9f410829d3201c1e8ca450e2"),
		nonce:              decodeHexString(c, "17e13ec2e3b744e8c5410717"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4a6e69ad05f643ee5cec49cd47ea88c80b96a0944154b458"),
		expected:           decodeHexString(c, "152333e16b04283dfb8c43dbb3be43b5db2ec49a399facb65cebdf7ca3ed267792ba308cdb0649b0c19cb1126b144d5766b5afeca98036a1f85cd2cfe3b8071011b69b2aec382f8562d9dd4331a554f3a3ee632cff308488b30a7416be8bbdee7e250cd12f371d069a097e9eac43031a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_3(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "caa286c160d22af10922ee6088c269d0c963034e5fd2a85d"),
		nonce:              decodeHexString(c, "2fc171d0c4ba0833b630a64a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b09965f132a744656631bf2dd27430c7c2d1e59cdcf43a97"),
		expected:           decodeHexString(c, "4d6132b9ce70470dd36f551584ada639e74b85fb9bd3c3e350011d99f2dc0371f874e6b9d92eba3fceafe34e574c1441d0d476c475b704755a28733e31637962cae67e849bed18d77501383cdbc27ab6f60d5d8d26634ef39e2c60fcbb04a9bdda8bcfb9b2d3aeec12a21279ed553343"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_4(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f79156a2321ba930e15109501ead80a3b26c1747b7a9aeb9"),
		nonce:              decodeHexString(c, "22d1a9d474df64a1fc3483f1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0e88a7fcdde91dc06940c58bf4d747b5a9cd8cad2c2e9870"),
		expected:           decodeHexString(c, "1b3aeaff973b2e20cee947ff283277991842a22f45cce9d22c1705daa51a56ab43aaae1b51bad7a7363edc7b548a0cec6b376b925a6e35bc7dc3b4a33a7f3b57d66b1b35256908bd2d8f0495caf2539ba4475d766c21c2c2e4acff87fefb07c662eb344d9c99ed407165f8a09a22816a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_5(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "2dfeb70fc433426e23378d048b836f899cbff52d4a92c6d7"),
		nonce:              decodeHexString(c, "d218e3aa54c06793339a752f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "86f03b7fcf89bef725339f16ab1cd28ec85c20594bbdf3be"),
		expected:           decodeHexString(c, "d403dd8a6f3a914933253db9cd043421e54243a34043f5ee11a3b6a627e25d944434eac22a00172caa607ebf7de55b4c4305c2b93428d5fb4cf0a649451ec7fc5da65c4894cf4d2f3d52e90993544237e5c58745441c9cb2e047513ff81d9cf980d8b12769c21cc8c06f6d583b8be3dd"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_6(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "2c6ba987bb61c4131138bb8acd877763c2c7e1f86289a81b"),
		nonce:              decodeHexString(c, "6b54d1d8b399b5a5ac7171c0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c9c0b5943bd7f54bf72b20307834e971bb637b351a756823"),
		expected:           decodeHexString(c, "7ff01def84626825fc22a62cfe28f5f95403bb2618eff22529b6531aaf1032100944d5f9703496d165c5756c0aac55b1812a72940aa5317fb6a2944d124e7f65766f231b6bda06100c5ad0d1b37c488e0e9f11a6d8f7e4cf7337e04d094ea9de2db1bbecf40e0cc8d1fc1cf5a01cd081"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_7(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "ba08acc3a00b9b40d2bad8cca4909d3bbec5471f78d0bf89"),
		nonce:              decodeHexString(c, "a805d839b8b29fb753c9e5d3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "674365a7055a187a238ea1cd04f482d24d856b67eb54d71a"),
		expected:           decodeHexString(c, "9ec6ad840270051313c5825295a6f7527a8b1b9b3e7c867e5642a984b11911be60614e5737d3a0d109eea4223f0d2ee63cb19be702291a771b2e2c277f2d4559176fc5adccea52492e3d3ba7d17bad5b5f487d783639467997d7668ce2173ef777f9e31dbecb6ee716b5cedc8bc5098a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_8(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "95413345228eadb85b67674b9981af34bd6a4ae048662299"),
		nonce:              decodeHexString(c, "21be928c06e6a6a6fde8d31a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6a88f24d6a1114ccbe08ded9d7c50c3360bcb8908a615381"),
		expected:           decodeHexString(c, "d4dc08e36f94e88f8bfb1919c13186139591edc681affb61c421d32dfda69e507d59495bcadd39b73c4036ef440dc598e339473caba60e0770ac4729264b1dbfdaf32ca6d136ef6810a6660fa5cbac91940a28053c0fa405c7b6ca5e3f147b5e0096f36b67da9fce64247cfdaad70fc0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_9(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "9b6bb9589f41e8ed6969dbf1a3b3d242dd5e133711f72549"),
		nonce:              decodeHexString(c, "334c74190e4efb1d0452016e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d4fffca9561aaf219e6793bfb6fd3dd9500bd61e6a62db66"),
		expected:           decodeHexString(c, "cee02e4fe0980afe6ccbb1b0d80041ba9841461397494f0fae5188228fbe9822e3ffc5397b7caa29950d95536e7000e1249e5bb93a593e659a49689add16d2f5e02ff251c76716dc426010c2961a176bd63c29397f6e36cd4de2f2b11e1260b9f9a00bd49b4b6617fb056b82c92c471d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_10(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f276ba0da08274a082f3b8ad989a713908873b742f96bbbf"),
		nonce:              decodeHexString(c, "8c81b4e1a7e4857bc99aecea"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "be534c45105306b14860883cd56f2438a7812b43f0d911f7"),
		expected:           decodeHexString(c, "24dd3eea9a8e1f9929ebbbc2a68379caec77fb42531a97f7f3a75d16ad053799ffc25cace4f4553c271ae360eca1f5131ef87bf0390b26785880db0d92bb351e6e22409d600f6dab5cbb2278b8784e67a40be4d8ea6d994115c67b7224d721d1b3c7fc5b24e15f97eb3bbe33798d1bb8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_11(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "fa5ed9189f21d7e94764bddeff23050112868cfe35220b86"),
		nonce:              decodeHexString(c, "3e8112f691c57e6d6c4a91c7"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "52c5f0b37b97d5f3e383480054877f319a568b064e6562a4"),
		expected:           decodeHexString(c, "55eb5ef1248b5a34c741f2076ea5d568da630ce4720b7e2c86a9dd535b48faece2229866a36024fd4114249be4730e554b772d557ce3f8b9d4d86d91202582213a676a076b87f941351c7606a452816db5d0f8194825d402d2fe7ebb2815532091b3830a9616918bb0e3298faf037bf6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_12(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "d0c5003a6168163f707b25191b51211dc1ae361df1e069d0"),
		nonce:              decodeHexString(c, "f284f66967aca4199809dc89"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "368164213ae17285674e5574851582372fcae8cd2733bf4a"),
		expected:           decodeHexString(c, "24910e1a9304471d053af458bc3fdef527e8796e33133f5af005106b203e8fdefb274f1c0e8ff44e92c63bef3082c6e5607a7981a6076f1a1d15368f4330c7012509d5f61b4349224a87960bce9873725145f187aa931394c449f502d12b60655a0ab2a221134a51786c3683f9ffa2b2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_13(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "bf5b5d1c891f7a6f2dd3f4d486d693fbf67f49584b7f053a"),
		nonce:              decodeHexString(c, "a96ddacd9fc0cdea0fab8209"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d8f4335820ce68bfa04899b63cda15242e9cd3f7acb1f103"),
		expected:           decodeHexString(c, "710c8b33ab034b50a29de657b93f3c71df4727a5219a474350c88b4e3974ffd0d3452e8c4d26f579e348f39cfe0d20045a70a866c5e16a0c22aa0d69b739f74cbe8b046bc14cf82b86498460bfb26af0771371c2750f7c59320c6f6fe1d04cfb40c048686b6c1b69dc641b8957c2c341"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed16_SHA224_14(c *C) {
	s.testHMACAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "525615164dce0dac5397b357546aad049dbe5982da2c215a"),
		nonce:              decodeHexString(c, "233557553460f8505a3e7c82"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "24af561190099ee21a06d62f9f00e282b32b486e8d0e338f"),
		expected:           decodeHexString(c, "3fe96c9b10c4c8e43cf3cd76ced4ad85ae576f32ea6671ef284f7c97491b72152a18a1060145e4f5e7c0c373c396cb4c8c0b6d625c1f0d2ae95b0691cb1c80a3dd5eaa21632a82aaa28e09a2bbdeff7fd8812fae46deae14bbb16da24d06878fc417b3554fb47b0ef9fe18d1b9d4f4ca"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_0(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "2c50da90a1f7987d5216950ea22689584b237647d96c1239"),
		nonce:              decodeHexString(c, "f9251942f4d13d16f418b0cf"),
		personalization:    decodeHexString(c, "a74c108fe870b91a2defa971fa1efcb7a209f293d29bb5ea"),
		entropyInputReseed: decodeHexString(c, "7265b91c4ad97a7acbbda065a48bc1bc5c7a9ee1523c50e3"),
		expected:           decodeHexString(c, "8853eb47c4ada94a3d58a1b517784bccc8f831d02dd5239c740fd7caa3869c5ff7bbf522a78be2d510c49c496a6657a09f0ede00daee9fd77061b0f04e7342518dc6ec1f4a7ff99dd7c783882b58f5e8bc467516c6b85985fab65c6761d4fe756ffc27fd62cfb92778391a258d3b0b0e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_1(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "4606e3e19a8a53e8aba05d9d1fda1ddf15e7709aa2bae8b5"),
		nonce:              decodeHexString(c, "4efc4a14e734b45a5cbbad00"),
		personalization:    decodeHexString(c, "23ef5fbde4b270c084a745e0e299a5eba228a37074fd4f07"),
		entropyInputReseed: decodeHexString(c, "a749d2bde540258de74ff8fe886d05570300af2086d0b9a2"),
		expected:           decodeHexString(c, "8caf86df25de5cbc3749fee4b64fe041cf4ef2859e20704bb01abe126a90ead8cffc427c2f98aac400aab97184846125a2a66888dea9c8aa108e96e03b05bbd30e566fb90c661dc1990ebfe75f73f5b0de7be419c225bfcba3713805455dffbe5d6fcc98141743b59c2cbd70e78f5977"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_2(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "08e2e2175fb34e4111179fc2580c05afa16d224440cc7eff"),
		nonce:              decodeHexString(c, "24082beb16133a992fc4f4e2"),
		personalization:    decodeHexString(c, "0a4af33e2501ba409b132459ba97603888e727aca0a0cee0"),
		entropyInputReseed: decodeHexString(c, "762634fbf68177dc3f11c4d057b71661ade56e7768ab9e6b"),
		expected:           decodeHexString(c, "39c60b6d9f85cb69b2128bde86aca2b055e21ffd7716d789f834ecacc69a043893b09459991793571d3d8070f03382a11bd1c1bf38e86fae13a932c6dc82c540fab8c8eff478e598d3295663ab75ee8a56376c0d607fe43b74ac39479b8f694a3a13826b1b96344ec67b9eb0a5858eec"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_3(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b436ebeda1119de3fb2b2e532f7ebf59fac632a4d784d904"),
		nonce:              decodeHexString(c, "f844bb73f2cade5a88d4790c"),
		personalization:    decodeHexString(c, "07de5589726c49dc5a764de9b41bce74675e4ca3c71769a6"),
		entropyInputReseed: decodeHexString(c, "8c1d5973fc73f6b7f929303b62d30b6818a25ddf705bdb9e"),
		expected:           decodeHexString(c, "2099fc754ecd19a19de8afd21d2ae2ce456c32d6ce7772a98e37ed47f54001f44fad8e9b591a70d3bb28f19bca22940321ba17c33193613b7b5be1ec54efa470b70cbd6be2931193c35cc73d80c139bb4e670e1a2cb74d3bedd3610e9d0f9d154372a70b608fef824c346fb16241b301"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_4(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "4d3e993c296c66983b9c751d2c0aa2d519f801a764ac9f1f"),
		nonce:              decodeHexString(c, "d8d86b57eb226bdd9f69efd9"),
		personalization:    decodeHexString(c, "52ae4cfe985348408d3678d60259a78369aac02953911e74"),
		entropyInputReseed: decodeHexString(c, "ad29bf16af483e7dc170f8af65c16426c2ab7c0fa9df0175"),
		expected:           decodeHexString(c, "bead2cfc29315133e6f5ba2e85bd7778dcf9908081032ee634f90b0124ed9371c9009419b9e2a409fe4abd6295cad57cddcb6042986cc98f2fafdff99f7cc1185f3ba0d5f1e5f5452ee5f9df03c0e8a4f8426ca246afafe81079c2f0d165b87056e7c8528e8cccac5f49d0bb5ccfbefc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_5(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "c7c4e18c56e9191ba43c967cebe48e55bf9aff4d6449c3e6"),
		nonce:              decodeHexString(c, "a1f9846bfd7f92d535bb7386"),
		personalization:    decodeHexString(c, "c36a381b1b36e6ab00ea80557b5e7451ec9771101dc22580"),
		entropyInputReseed: decodeHexString(c, "c0155cdc5aa2beec888de0d432f695ec79b1c78841ad941e"),
		expected:           decodeHexString(c, "da74b23d309fc7cf7670d7feb6cb6ff4da1b763ae2e8616edeec12c71511f5a24b9c466532283f4151a902ffa5ae211d7c1efa84477b93fc393ac95522f3673f97aa9e379e48d198d5929684875150633fcf8a0918d2050551d8daa91887f3d2685737b6456d0c61c0a117413f193346"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_6(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "78426f865483ffbcc6330db2ccd65bf8f247706cedf68d4c"),
		nonce:              decodeHexString(c, "bcc289bacb1ef32e5caf05f2"),
		personalization:    decodeHexString(c, "e5026090f9806ff6f158c4a834588f6a39e9b4a44ef2dfa6"),
		entropyInputReseed: decodeHexString(c, "8a21146a9b18e77b3a7ed0d24a0803c9af7264fe4e23d692"),
		expected:           decodeHexString(c, "111cd64a9950cc6f20a1b38811fce4a08929ca2654bed66c0cdebab0b81552826c06ef12ce463fc9c91c81a35d2ca0553905922b9a4975fa8fee2c7f9ffa9f2ed8cb2609f4b7d32a44927c7b5baa8f43dda137aba9b49a2b0394f7f67d37b7f71a5e4f4c151db6b96e8e4dd9cd0bd84d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_7(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "43ca11d53ad0198e4db5e136de8136bc461851a30ce59521"),
		nonce:              decodeHexString(c, "f931ad0596d13365bd8297a6"),
		personalization:    decodeHexString(c, "532b05891fe406ce72421013aceb434581be8a3a13549dfa"),
		entropyInputReseed: decodeHexString(c, "8dd42b7dab7f40808b3ce6c12f14d4de741ce451b6637a10"),
		expected:           decodeHexString(c, "4c42f791dc8322d779f9a1ed9a28b0cf352601a4ef6d74e4e822ee5d9eef06e700314acb7a47dcbb62805babdcfdd236e3022374defd44bbf747764f72fbfccae10893b54b29966aba448435987c22ace4c931d01dc945091860cae7744365bd9b619059b8b646b229878966049cf83f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_8(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "ddcb3024b681e30e16e05026d8e23977497fd0b2c0ac2401"),
		nonce:              decodeHexString(c, "7de2744edcb097d3a104d4e3"),
		personalization:    decodeHexString(c, "bd9e41974f6627ac5bbb21ec690eece459e1dcedefb327f9"),
		entropyInputReseed: decodeHexString(c, "c6b8adcb554746f9a43671f0692c01a8f89fa98ec3a54ac7"),
		expected:           decodeHexString(c, "741b2a8e82aa3ca9f3a609d05a6e2d570be463ef957f235344cdf9e0f89b3610951aa1ef0b9406785b75e59c2de8349d435e4db82fc2a4a8b94e366f4eb13c432fcf8fac08f0c7fdbe67a44e81706b53b460f78befb8cb6dd2a0ffd13c87df84f8a5197ed47158cee171e5323593df4e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_9(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f81c4ba8605dc14072e2bda2d2ef64e71ad856061056b8d8"),
		nonce:              decodeHexString(c, "374fff5a6fd9a54a814fd725"),
		personalization:    decodeHexString(c, "217137084f4519d046ec896144cf2c301baf911e1440852e"),
		entropyInputReseed: decodeHexString(c, "bda8944037197492c52c62b97ea02df33325b35b91726839"),
		expected:           decodeHexString(c, "14efd71fa13dfbd498bbe13ffa24e646d04ee0ef32c99c11004c3e9d8f748ac2f956f9899a72c8d97ae988d06275855f77a92bc30f1b957dbcfc93fffec3852715c239c5313e765affbed257d302b6d1b74977b8012522b69902adb86efc1ad768d99d657a5375dff720b4cad886877a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_10(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "8181fd2cc5f7ae2d4ed2c96b9511aeeef33e50ecf164afc4"),
		nonce:              decodeHexString(c, "eddebaf76a96d97bfb403779"),
		personalization:    decodeHexString(c, "7d6ca5ab652a37cd79367d84299f1ff2c5a3c2331c77b98e"),
		entropyInputReseed: decodeHexString(c, "59e1edc44d24df041749ec6239ff226e40d5a5feccdbeda6"),
		expected:           decodeHexString(c, "5a2cac8110a24e1d8c5f8bff3e82857ec8cfcd469c316fa18b0f65a0d30866e49fed2a228121f50901dbbba561732c4fe82a98f341bbc0a397fd257a5f8a4a9122c991648b1a6507c82f866d26f9b22e0ee7c9a51c4d8e5104f0b4570043c9257bb9dd6f3730f1daf94f80baf8907acb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_11(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "a0ad012a978bed2268d05086b823f5d0dc9bb98ee03980d7"),
		nonce:              decodeHexString(c, "55bce968f9ac81db886a2a05"),
		personalization:    decodeHexString(c, "1a8aca3c118f2bc0c2196df81ef22c267d20ed7c607cdae0"),
		entropyInputReseed: decodeHexString(c, "b59df40d8346334a0276b73f528db03a118545acb7f2d70e"),
		expected:           decodeHexString(c, "b9dc0eb1e4aeb482dea1b4a5e6f6ef9636366face696811db2d912e9430b303f23ac95d65682694ef9513ac5b3e56a053b2e1a2ffbcb901c375cd122cab47d31fca5a0606daf8cc2e5e6e99b90fc8ab4fa67794caad91985cc92b2187dd2965be0980240d9be2fb1c4bf06e60f58f547"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_12(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f28b143468ab87794230cef4361d047236444180d0cfda58"),
		nonce:              decodeHexString(c, "cbb9494cd1ad21be96297ff7"),
		personalization:    decodeHexString(c, "ea7fc50e1eea3d84bffcbf83b240e921348b532e7b33f094"),
		entropyInputReseed: decodeHexString(c, "99011042013789a928f18831ffb0169126dd046c774a4fce"),
		expected:           decodeHexString(c, "5c22e92f25acaf98f55ff06e1bd80d382da754d1d33cffb6fca933583ba758200357551640c439770f77f843e9ce1e9a054f69588d76acb9cb92b7a2fa2903bc51391bd7001ccc1da67a4cce9e5dd08c2d489295c36de2c148ce27311d0789310de1cab2641e92f859b036383a8058a4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_13(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b628cb448e477cb439a2de687861a992e738db6b2b25cc6c"),
		nonce:              decodeHexString(c, "27aadfc3a0a640b3411de49c"),
		personalization:    decodeHexString(c, "d5f4f8266da9b7f17ac97734201544104a5c0acb53c6bf22"),
		entropyInputReseed: decodeHexString(c, "920407303e80abd7a1d4f45c4749980fe1550bff69518210"),
		expected:           decodeHexString(c, "34a834dbb7da0b6a2e2353bd9795bef369cdde4d172b3feae7b1d9fdfb0446454cfb1adeff423d0a143c33c0e0d8e7905bd1720889e8b1121f1ef82cf15443c2f9c8999c5573e7df60b52ef395ca1d1b60e7eb721c012c344d06b336d519fa2b7b6dfbed8383456504bd0b4893bf2ba2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed18_SHA224_14(c *C) {
	s.testHMACAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "5c7c9690a1926a4580c691c2e5327e736d5c3aec0ce8f5d3"),
		nonce:              decodeHexString(c, "2d4946bc4b607f712a875942"),
		personalization:    decodeHexString(c, "0310b2d8b5655cbb0fc2041ad15a248a7b1f2ac78845e29b"),
		entropyInputReseed: decodeHexString(c, "8b010ba1b268b0de64fc5eb32d3f7fa9b8d4f20fab45c72d"),
		expected:           decodeHexString(c, "6f8b6df55d9d8acf87dc2af20b7f4512f9425987495f512975de8059135e7ebb8698cb0301a8816e7299e76053cb66051c8b35bd2b00b4695cff4847f168d2d60697495cd9007ab7dd74ee7f61ee90b7827543f624b7c1412bba3d6df1242e6ffd90534ed393341429fc00bd97d9bcb7"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_0(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "4584b33ff224beafd37523a36fbf6bbdf77a29f8db6fe884"),
		nonce:              decodeHexString(c, "ef99003ca3ec082cc112ae93"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6a864c3bf7dba18d00b3acf36403ec05f4cd677965644715"),
		expected:           decodeHexString(c, "8277db943ff25bc275f3db65d67935e2c992eef95da33bd4fbeeff7a305ef870be0c406d23713a0cb6676cdb7a11866e6920cb5c036011b768fe753342d167cb3c1654f4bea704579ef8087491ad0cf9a7b7db8d6e53178b6ea9f1d1b49b901a797713195246164a6b1c5680be310fe2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_1(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "e6e2d6509626ac4a5e96a82f2d9764eb65cba73b79b224c2"),
		nonce:              decodeHexString(c, "f8a11690558bad40483c254a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "417b36557dbbf31b8f1fe4f7706ae124199e2552d4c42925"),
		expected:           decodeHexString(c, "aca0df82249f536950b3e921f36c76db6b3f7fbed3a9deaf6c24e5630ac0a7b6daf5a6f24a6a09849702d640f6ff2ff33ef5dc3cb199b95cf5f13f5637be387506a49c79bf3d5c63b27e142c85a6d25f632caacd1ce990a66f501010b3ec6f4e6e6798f79439f0923da7f71339452a84"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_2(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "df524cc137ecbc9ed5797e0c79f3635d3935c4155e09c1ca"),
		nonce:              decodeHexString(c, "228d775e3599b39df06722ba"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3dd95cd97f8f5954eb5cc193d99597268484367017830a93"),
		expected:           decodeHexString(c, "f3c8696f7957e90c2bc97eb0e6c2b72aa6cd6fecbf170e60d0997edf1a5f5aaaa8bcafcf68f9d87e83ab4ca0e592a4d7782f17a4f3f9314d39b0089bfa639f90d63f0b573b9299df708ef96cd8bae6556d3222378c6cf3554f3489147d0624c21a23db26740a230b59a8822bf3366373"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_3(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "fc644d63825c7b36d5e7aa3ae5675b7af05776bc2ab8c855"),
		nonce:              decodeHexString(c, "d0fc426cf3e6885943631eec"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ed4e3785e6432126b1b2c1c91561ededffd3b8c2e14e93cd"),
		expected:           decodeHexString(c, "3ac7f56a77be6c515659ba606631a58eda584100e16a6674dec050c5d0c103924d1536929b95352e39054d0845329ddd925db9339676fd17925c0420fff1a40fd75edae17f014f8baecefceef587b736368b800dba8fc3493bec6680d6fe95c026619b441f3e06c38bf648d6efad58de"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_4(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "1acd1d0be7ba35ae5ddebb428205439054b43a59ea504606"),
		nonce:              decodeHexString(c, "9d88b21b2196a43d81cd4476"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5e5614c43848088c032e8e1a168abd15a5a558aea51df260"),
		expected:           decodeHexString(c, "ac4394292ecd9826dee8b596d090ee950b610e98e4b0edcf3f983617a9e9618320a88cfc54b9d5b42f44e2dd8fe45d909c938412e2ba3e662be5ab49c79aa4dfda5cd344fc1fbcb9d54adb4c9404ba22797395c175b9c16b9b3175a6541af44da9ba452871b815aeed629f15944204cb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_5(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "e4f2801c28d190a965831b61b9b1518b0c3715469d77fbaf"),
		nonce:              decodeHexString(c, "427a4596fd4d2286c0865176"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5fb0037c0a663a82baccc4c3364f2da67392ddb773714d60"),
		expected:           decodeHexString(c, "9f6f9fdbe7a16abebf88613bf307cdb47a2b0a9ab1547c308e29d30232fa3a1461c5b8b39b2d70f3ddb970a1cfa40e6a40ca2c7fad945931a44c7887d0370dea3438a1c8cdc8fb1a846a2747afa5f3ac85174b3962d9ddbac55a599bf6f353acd433cc84f4a24dced96b608ad1705fe8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_6(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "8eb21401debcb726fe5e4e13afcad9103bdeef385650ebb6"),
		nonce:              decodeHexString(c, "846c53d3889b9ad28759295c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "eabd93e12ea629d42f4da7834ffc67930ae82275dd04045a"),
		expected:           decodeHexString(c, "d748a0d711729f71ad97e44d81cf9ec11b97a77b16d22e3629f04ea15639a5fc0e9274598983ed44e39fa9d1b242f8274f8fdab10019ab3f99b5cada0efa5ddfc7b450ba6d0a53aed24f9e1bfdb1e9c205576eae6878709518e8d80f59be51fabe1a0965856c85c5861337cdd4bd6a00"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_7(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "ca622c90ad71704972ec0a43c7bbff3bd6ecb516fa273314"),
		nonce:              decodeHexString(c, "6bf31a76e300467bc848408f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3a054deda83f2eb99e3305b594bb4b72237ef4ed69927b8e"),
		expected:           decodeHexString(c, "3b6da864061fddc94b1c80570ac279c947361c7d5fb215f0d7168faa0a7a2db4f40bb83078d77a55e4f67c18a5d4f43f30711e60a9997568366013650cd57a377885029113dcd2344a98c3b053ac2256eb75199b3bb388a18b80a56ab003882c9608dc542b0ee36e9cac56842a2a9989"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_8(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "a9a9679159b8838ad6c27e44ff6a6cae3f4767a825ac5a97"),
		nonce:              decodeHexString(c, "6315ffd452b1cec03509cb97"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4ec53cfe9d648dae47a44f73a0b0e8eed13c9ac45769be20"),
		expected:           decodeHexString(c, "72a3bad520e41b534f9caff4b50351df37842c5e4c9383e082415a61193c4007295d27ce2da6c30c4084129edcdbbe34b964a1c10e7bc0b30de936a3afde6cd857615c98b6bc754d57df9320cb0448672073e46964e157e52b7c80d706ec8a493c06d29db6b9d372c479ec5c4b1d22a4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_9(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "050b7f9651e4081414bb68ba3836c70125f0b9e6c626f45c"),
		nonce:              decodeHexString(c, "e1b98f7980ed56d670754c88"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d7fd7e2b727c358607d8e59ec251f313485a8331827ed24e"),
		expected:           decodeHexString(c, "8dda98b2314d0eb03bab3712e79160b7bab4a07aab13396bd21a829e06997e7ae3ba63165a52e943902f093a54fae9af3d67c752c06f25464248fd241efdab808876ba62e47a9d1fc6dad17bba00a36f40b7bb698afe97b386195aa992f1c0128d7d254d6dfed8157428176c29b6b37c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_10(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "444eb19bf02c8cdc6305c3a0e311c2f11209da6bd30c67d1"),
		nonce:              decodeHexString(c, "8761288628e58026ff6a26f4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a38b521d99be988e5a24f72a4f723a40cc665550568811c1"),
		expected:           decodeHexString(c, "1691ae568d2290c2a4714a03e0e576deebebabf416fb59d94193d737cf9cb43036c55e04143a319b385cb3308364b5f9b5b5de300fd50d10fdf95fd9affe97ae2436fed2f91889bc2ac3102d53b33118210116e1d01d61bc02b28ab76d5bf493a72d9c6ac2b732bcf92c2953694ffcf0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_11(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "93df9e24d84996cdee38e4855f58e3aec42194103cb1aacd"),
		nonce:              decodeHexString(c, "254e707a174c24e72fe0edba"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2447937906f349a612d85e9e4827865079a8880068bb2c63"),
		expected:           decodeHexString(c, "f6c14c8b315c1e4b5e61892315f5f31de9eade220cf27d3a27572ade882844f342e394e46b6c0bf52c9e06e3c535ad1ca26d925dffdbdba49c2ace8d3c94910ca65159a2c6de5a8269a8807966644f0d6323209c5a909dea9574531fe23d9109b7e979382a311bdfb7feb4ab9896fedf"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_12(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "a7c342fa807c960a151560ac2fd44656583921d51b889a3d"),
		nonce:              decodeHexString(c, "b6ee6a32047f3c74e176ee04"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "082289181887fbb2cb143df4dce92771c54254eb3be35939"),
		expected:           decodeHexString(c, "90454c858533f6a67cf1687a5d29cdfddf7a870367e97b79b53f0a845514a3c290be06a3e16c4e05ec9a820e896a4cebc1854d4540a883ee2eb18076f0a3876019b22abe2a8b103f226e38b15fd57f21ae327afcfc460982fe8954d266fe39bf784ce962471ab7af9ef0e430e7c3e216"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_13(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b49d946b70a5a3d238afb1937cec924f077283054d169a75"),
		nonce:              decodeHexString(c, "008a2dfcb784da2053cdda51"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7bb845f6786ed049de0f4c85c84a55e36a78ab3e7895f339"),
		expected:           decodeHexString(c, "68e8e12e7063c14d85496e662b355ef6a5d879c0006a3b3cddb7cb107254aa1ed0c6ebdc6419f22e786a308fcf61be830e42c354571d728dea4b2c8859d48fcb1ae075928aa2b47ecbbcbc3ec58fc189a80b530c294b96a526fbdfbbb7f72234c0e9252c0a410f26e52a1d0ef3071ac8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed20_SHA224_14(c *C) {
	s.testHMACAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "794b1400e41573827fa7860c7b9e2dc78985178a17d616b0"),
		nonce:              decodeHexString(c, "27e1f6a2acc1a6379cbd728e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a40b0694630a7497269666b8e78f63ef1f53718d9748c7b8"),
		expected:           decodeHexString(c, "5e1a9e94334b8c8a91baa12bced82eb2a745e3bf669247fe18cb266c62a3f796be8f83f669758b921a6b24b5a4ceaa7775e329fbca70e34ca231ac346623d7070a15309ddd9df130f47d4704e5fb445842e83d3968ee55837c4731ceb210112532668083ec549d157193c77121c83b7a"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_0(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "166864c6e1f1c75dd668547d9e3d144d267b1f57fd39c8b7"),
		nonce:              decodeHexString(c, "43080b0e5aab08f87cfff183"),
		personalization:    decodeHexString(c, "499f9d1a4d46aa794bfa3f00b80591de26373dd9e276be6e"),
		entropyInputReseed: decodeHexString(c, "37fad4ee320602a0bc8c694e1e88a2630ae06d14e1cf2f87"),
		expected:           decodeHexString(c, "0783522262cb369fe68ebe4aa0914a41c59485a3785762bcec8ce7e44c8459622bb8181495ca7f512f7ba6eae1f8eb9213f85b8651dc696eec59d3cfc41cd4001b26a68db179297766a6c86bc7215c395ecb221d83fab24d45441f66a1556d4b57c1c7bbb33b3755a596dc2c5ac43a25"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_1(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "d73a262188bb859c0767158945250fc7582d5ea20df939e8"),
		nonce:              decodeHexString(c, "168e5d553335924880e1995e"),
		personalization:    decodeHexString(c, "f6e35987f829229ec01e3dc43cd78ead9acb8c1abb12551a"),
		entropyInputReseed: decodeHexString(c, "28e41384c22c55852a5f91a1516194c698fb5628c5236181"),
		expected:           decodeHexString(c, "f9bb802b18b7048b8498acdd01026472c52d0a3f0e9649c7f4da15ba38d4810c9652bbf8e0ed8f9951c2379ab8c75df344868343f6f99501a1932b9ea36703e76c21b0d8e38977d9286de6c02991bdfd5e81e213a416f68dffffa3ff5c5fa6e96c1df9ab93f6719fb7bb42765b58c0a4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_2(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "3ddad14470a08b651b112f570a407ad88dd5afdf93eade4b"),
		nonce:              decodeHexString(c, "fd615cd2473dd9dcae759cdf"),
		personalization:    decodeHexString(c, "63e5fe1bb13bb44d7b284a5513768be531cd70b17b87a5e0"),
		entropyInputReseed: decodeHexString(c, "61f7d10ca480801a5705477a4725f081daf001871ecabd36"),
		expected:           decodeHexString(c, "6943f9b891d73aeb0fdb2e49f755d3a991dbd037038a9f47102c8394e28b6146b8d5c87fca3a9f5764e8866df1012c8ddd1c0c93010d0d63898c16e97978ffad60967e2a7f6bdabb518629192c0de6332ba48e4669848bf8c4ab0986a109f4739af08801b6803b014e4b103479083496"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_3(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "1ba8c3230fdb8616938c083a93052cb37be5123664f54de4"),
		nonce:              decodeHexString(c, "860da43158495d46055ee1fb"),
		personalization:    decodeHexString(c, "3cc6b3e8ae86ec63b4829bd6a94cfb77698bbf76e56ce193"),
		entropyInputReseed: decodeHexString(c, "dcb603fc9735ac3bf71488e67c0c377b8641efaea640a581"),
		expected:           decodeHexString(c, "2c488d99d60751a5caf5af34f4a75f719b16a2955865f926c5ceb2d1f0e6fee6e810a44f0224fac1af36a4daf79ad05122d52e7511ef476c883d3edb86b700b88b5853c4650952015c127865c5ef578579dd56ca4234075cb89c47d9c41c87090ff68fa65ab7c83a2883ef33da5b9e3c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_4(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "a0250acdd07d8386442ce7ab61ae47cc2c1f1cf42bf3f872"),
		nonce:              decodeHexString(c, "addad68c711e543a33bb9ab2"),
		personalization:    decodeHexString(c, "3f37f22789ca58a15a52231894fbdcfd245d89a54c1d238c"),
		entropyInputReseed: decodeHexString(c, "8246bea87a472ac6d61849d61f507d26b14302a6392979a4"),
		expected:           decodeHexString(c, "eb44c545138d01ddb38a6aaa07161cada4b25bcc573203a5a83fbf0da838c6d498df4b8f4c6334b3010bdc3442080e1c2a65915b42444f819dadb283be43adbf0c59a8c504e8e8b3cd3658e64f7f8f4d9fe1c443716833ed2b0c291e8c73c25d5282fd0a045b477ced2ec381fb538900"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_5(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "c29515157fea4222a070d2c9432c3487d4e1ffbbb5658e5e"),
		nonce:              decodeHexString(c, "b07daa65c75baff4796304d6"),
		personalization:    decodeHexString(c, "401e45312b71f978bb26306e9cafe2f723c70a95db5c4450"),
		entropyInputReseed: decodeHexString(c, "e35561e3a8a3a9817000a712af1c6bcc9e4b1003a49a230c"),
		expected:           decodeHexString(c, "cb7b41b3cefa3e9bb6e015a9934d9de9e1f228ab1673fdc211aa47fefde393cec8196de79fa2610c70fd917ae3b576002c50d0211b00492bc84afb7bd3f86142c6845588e394b60dbb3ea6078f90f8a4fe246fa4792cffd7020074e4d87909b2dd514b3cb0f1c9abd5c6007f6ba9c5ad"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_6(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "c1513c89a75795fb634457f9aac86a87d1b0e05854c32d3d"),
		nonce:              decodeHexString(c, "cdcee89999356f2079c51b6a"),
		personalization:    decodeHexString(c, "0698f252ea14e06483f6f4300e16e9ac758d50275406c7ce"),
		entropyInputReseed: decodeHexString(c, "e8bc0103cf6a2e0f63154447ff3062ab4d30f386050dde1e"),
		expected:           decodeHexString(c, "c8464b48e3556179b439f639086b69720f444d8c3b35f00ebb6110a333070fa62914160c7143a1bc4747524fef2d7e66ebdf4bfe4355bde19c80cd3707e3aa5493b6740b050c354047a245d8a69651890441946b3cedf749de775e319e04cabb56df322a3f0e4b2af3c5825424fb4048"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_7(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "568cdf1b4cbc4c1b43f555fec14e8583d852f4c372dc4355"),
		nonce:              decodeHexString(c, "36335fec870bdda29ce2a1ed"),
		personalization:    decodeHexString(c, "ef393ab1b0c380142453b1b9947cf394a90f0bea171b68ad"),
		entropyInputReseed: decodeHexString(c, "e5d164606dd5ea6247beb349e1f12bc401d96c70ac018a85"),
		expected:           decodeHexString(c, "bdf24e7dff7a33f64b2b4e97e904b64c9108183e501284fd621e6e4c6f8aff090581dead7048ed27f67c87c25993288f0d3198229783be2f5bc380e8c494768cb34ce7375f1c8bb11a9e0534b1e700ad54c5425fa8fdb20c2c9901653d35f6596e268e6fbb8c8f6323c050596e844ec5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_8(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "94ed31b038c036b21ac2a3abd1ee49b7ebdbb29218fa5226"),
		nonce:              decodeHexString(c, "30b42702c246137c9836aaaf"),
		personalization:    decodeHexString(c, "20e17e21bfb37c8e1793308bf3d4e740f2171918c02a8906"),
		entropyInputReseed: decodeHexString(c, "219091d83fc404ae27ba26f031e8833c4711cab0e18924e7"),
		expected:           decodeHexString(c, "dc6aff5f34e58a606a54b57d8cafd6bbf242ccfe5463fd0e9926ad8daf4f222bedc17a480eb2640fd56b5db19748c59edbc12d279107cffa613f079e2a7fa90c4eb3dd5640c0c77d07f0503339760ea03370b7165ff841fabc7edfb3a811e3de30b7b0c0f464b4d83f088b9066dcf9a3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_9(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "7e156da2efb5fffa057c06c707b0667a4115090067e9e199"),
		nonce:              decodeHexString(c, "d8854ea4a1c4b7fe31c4012d"),
		personalization:    decodeHexString(c, "8204fb60dc1f8db5fb04696dba7e9e296531ac124e5dcc90"),
		entropyInputReseed: decodeHexString(c, "2db2da3f3e3184ad5c173ab05e3c8a7ecdd4d8081f1ccf5b"),
		expected:           decodeHexString(c, "665abd4dedae85780a8b3b80663b8e38ed327987b6d8d6f72c2c0290737180a458cce65bad3e9fe334d79dcf2b6b538b80a0407e1632b7a3b72338104887125b81b0e0453c2d9018d9b97847f62e1353d48850676f12b1c51455bf5b5a478d4b4ad02f0523c6c757281c3f996af03216"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_10(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "adadd51a6edc5ed0f54d6615f8d64393f1c227b2ff69853c"),
		nonce:              decodeHexString(c, "f21ab48d4027e57fb5eb3199"),
		personalization:    decodeHexString(c, "0e294f949352f76f1d0243ec59ee65b35d2827ec05676fb5"),
		entropyInputReseed: decodeHexString(c, "b96109a9975603a14038def87f8605738222a282aaf83c9e"),
		expected:           decodeHexString(c, "6baabcaf455ede563ac1e271726f2bb2e081e4326e1eb5a229d283d0feef043cdfecb6ee6a6569a4e8bd43080e04d590f39c83e4b21ebb65044559c873a864d814e8aa6da8ca182b634f133b6027c963f877a8c1db151677297b146828f63b68febfc3745fe92045bfb2c646976026cb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_11(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "9834d60f60ca12af0341808a5407df66acf97dbf4dd8ae06"),
		nonce:              decodeHexString(c, "edea8b1795cc7cd44286e4d4"),
		personalization:    decodeHexString(c, "042234eaa053354ffbd24f0cbb0a837b4565d37d0adb0d2f"),
		entropyInputReseed: decodeHexString(c, "529950d6febaa751a3de0c039fa8482fbd5a4afaa3456835"),
		expected:           decodeHexString(c, "63bbdbbf323d313464f760d9e761b1d85d4751fa66246dfa10c39e8500fcc666c6e91dbe5d75dd28587e62659a17dd84ff55e3b8b4446cacc49ed9e264863760f0449899864b0762d621b862e550d1b81016936b227d9cfa6860466bfae87097bb38565d33a811497b972002c4c0ed9d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_12(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "e972d354406cbb9f4a5cd58b261ddfc49744270324e5d526"),
		nonce:              decodeHexString(c, "7042923576996682c1ea34a0"),
		personalization:    decodeHexString(c, "80f76cffba7e5391f5d4967d5ac9105a80db4f3f1a0f7eeb"),
		entropyInputReseed: decodeHexString(c, "f05b970dcc6928b7cc57c3cfec6a850868bf0e90cb7a0420"),
		expected:           decodeHexString(c, "5cdd3785878cb97b3b778fa6284ad539978e85bf09e86fac97071cf5c2f548466752aa7cfeb1e32cac176b3afb655f47f6ed775af7256e3f69cc9b34b977419efe2c4bc236ec125c58d57eafdf54055408688dbd42f586dee06cca6a123c2d3aba3865fc29e4e9680a94c54e747a5c65"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_13(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b66b77ab5f8ef02b59f34a9c83b7e6b1d9bb4da0aedcc6b9"),
		nonce:              decodeHexString(c, "c071d1e8cbbe6ce7cfee7bb7"),
		personalization:    decodeHexString(c, "48b837aa8e14bc3f3907fc6be2ffddf0b3d3e3f3d1df1e52"),
		entropyInputReseed: decodeHexString(c, "29f4ba6b08e41bd93b4b1bf43245c5f0bac975c3fb907010"),
		expected:           decodeHexString(c, "9fece342a45ec86240d73f5981b3cbcb4e93133a8181ad1c85887ae66b3fbe7b11e1fc3efcd91d42654b7947ff5c7f940d1450578a3e78400c344b8791480cc47177163a74a3b172f082d37b32aa8e2d2747f425edf050ebeee2a4078f22496c01a69bb9872630ecbce832fda645e9e8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed22_SHA224_14(c *C) {
	s.testHMACAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "04c5c1c3ddab060731e30b59011cca48500e4b94c85059fd"),
		nonce:              decodeHexString(c, "d1956619b57595b9733f4553"),
		personalization:    decodeHexString(c, "45093eb15f7176782fcfde904b765881383f18a7e0c60d76"),
		entropyInputReseed: decodeHexString(c, "db29b0db2e9e68fe64bb828396b2a2ac993da3de9e97a3c9"),
		expected:           decodeHexString(c, "40c13600cefe46f8e44dac08c749a38cc247d92f0a71b85fb79aff36b25afc49445b35eb382f1fd3b3388c013546ef8f9a3c203273d89a86c6170046ca67c790d5896a57b483539cc5aaf4ab4964daa19e72c6ea583f59455bc66a28c77c59b8f3fa36f8c91bff4f15893acd807ff2dc"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_0(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "d01cf4738cdc62fe54116e6d1cedf280f1c7aadf24e8ba0e"),
		nonce:              decodeHexString(c, "4800169080d1e660e9268c63"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "01a07dfba5af92e174c7e4c8d4335acc6e57bd138b3d322c"),
		expected:           decodeHexString(c, "9924b1b346abac3c0c533cf79965faaea9950f272a2741651fe36fca4732bf0b3da93c670e298499fae0c195a7a0f018ba8a5df4fe0de62fdf7dace84f3ea09b486d339c1d44c34584e0d80947e2882fafcdff83f6002e7424c4103494ae7014172277d94e3dcb9daa0415cf96469332"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_1(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "8c553fa4a1ae533d37971e78f357530359461fb9d6899083"),
		nonce:              decodeHexString(c, "8ec1e0cc73d3f25e15763c4b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e136ed6df6ba4cc04620c3d07c092ec56aa297fe67383dc8"),
		expected:           decodeHexString(c, "bdf377601a2e51890577cced936726cf1d6875eb97e1a48c74c23b167599996d618ce6ac930380e8d481b209ca52b493375aad8bcec3ef5a5e8d5cdf7eced6a4dcd959e00a4a7c3a34174cee4fb812bb7bf637c3f9e98932cb7645afd62c3f0eecb8a7ebeeaecc1275ba568cb21ecfc7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_2(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "2cbac4701788d8d2462a9f951958e7f186028b444c5607fd"),
		nonce:              decodeHexString(c, "69f3b99b3c422909613831c9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7796009c6c519bb21e9c3aa3ba3594ad337ac73a1006be28"),
		expected:           decodeHexString(c, "4e4673f9867f006583485a60e4128ece9e171aa0efc04ec0488b07f2063a919fe7bd0c20213a9c9036cb70d6203e54ad5f99613eabab936f41826581688f6a294fc2bb4b508db91ffedc29d249b8a3a701112752498e32527d4a7de7a8ab84804d23d2dc0671b40b9793fbf65524b6d4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_3(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "c5278dfe4c1420a10fb6b46e48d051d04145fc6ef2ff33ba"),
		nonce:              decodeHexString(c, "a82e3f531a267124cfec048e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0484a7a74c6f670576da147b94aa7e3511e8c645fc9cc89e"),
		expected:           decodeHexString(c, "72434bbe9269bf240c2a2e8fe07d0d70dc2af290afcae175fc95e3f14a57b58cbba88cb329a94549cbfb5e04925fbf07641397cff80fccc466d98ba6eb46efcb977bd0e695445635fc378d1985da62ae62e4c0742e88814fd74ece369b4383d6ebb171b4721c88cdf6b35c4d2d03370a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_4(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b4c2bfb904b088b577102efe02a22635343e131a35a9191b"),
		nonce:              decodeHexString(c, "13a57f611dd738e9822ff668"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "90cacf110bb01f571df055af5917ecbf43897af0f57e269f"),
		expected:           decodeHexString(c, "5ef038ee013bc61ff68e62bd698814aa947ae79a79ab45597211627fce3d17716a5ba941658732f956b5aeb60420d2dfe18a6332f2e1305046db644250cfa788fffebed0e4dddfec3f4e7afefdfa0428b801357c115b4ae9ee7b7398f50201aff67cdc74e6a45f5d41ac22e57e49ec8d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_5(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b49657335ed63b7ccd60aee4611cfe13ac5598936e907f66"),
		nonce:              decodeHexString(c, "e0c93912733c970806ed1ede"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0ccb5f2f547d2569ff8c3714f01f6d3d4030641d457f3226"),
		expected:           decodeHexString(c, "fa631b72da6eca9782c4aa05041a1ff91c4b8212c40561f3ae1f500493ee5e44b9a83a8275321f014a185365e2d26ee34e5d36876659cbdc34f9fe6dd22e62940d85d6504b085375f13510bf51b89792d4e532880e75f90a946e086ada7367b8fc2c4f8a5aeac7567a524590d6e81f38"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_6(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "bbf561c02e21f4cd54cfb22cfdececf3ee60e030ac707f89"),
		nonce:              decodeHexString(c, "f89e918d8228b7474f5704e2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "47a4ea6755c8f646fffeee68893bc27461ab5ea0ff27173d"),
		expected:           decodeHexString(c, "6a72de469e6d9b58438cef28fbc26436dae793794d89870a0e86ca7c4d74646868d69673339474c1819c7bb10b52530b4b8c9b73b85449401c4afa8775710a9d58165d22800db044a5fb1ec63a8ccded670e4a832d24cbbd17bd1a2695150a1c1779a464ef33bd027dee50800bafdbd6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_7(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "0256a89c91a84977054356f530332507f6d6e5ff45d5eabf"),
		nonce:              decodeHexString(c, "31a6056debd7e80003223d59"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8f29e77183cd1a1112a6209b47ca6b787bc6dddafeaa91d2"),
		expected:           decodeHexString(c, "b1c1bfb8052dc66c8be8c8e455ad3867225619f0c13848010c427c9afd1780e8ad1d17e395f651381e26f7647552b06c4f4b4d5dadec35d20b07c26ee1456e894153e5a7c61937f68d72e9a9dd7625f5ca7a920d3991bdea3880fe3a55aee785050f647e15ff347ceff1274e52f0036c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_8(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b1a23b9b0649964d42705e3c0af3d53eae13c1f777fdb239"),
		nonce:              decodeHexString(c, "80138346040cac4edd8ba2fe"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f12c1789761fc8080b62a70af2f1a48db58c944fce853f62"),
		expected:           decodeHexString(c, "607ef0a9dbb126908e039f0cca5d4526c776882637b45ca43b58f0c8f7ebbc2fc24da2aedd7d2e7b2c11d68a09b892f4ebae277ac7fb001ea998a2f3a2ee7d947c42a22be000743f2ce39107d7a5b7e63677a5857a9b6f4ed9640e489b25d4f2f0e3773dabc093ab6784c564259ee33d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_9(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "9fd35492e25240dbac2406b99725165dc27d140e4ff01028"),
		nonce:              decodeHexString(c, "8d28ab0b77ca26381aa74923"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "18bf1c9a25065150b6c6b93f034201a25de5c419399fb4ad"),
		expected:           decodeHexString(c, "2015dafb661646d7078b470f5b0d024adca4715ba288aa05cd977450342ecf387af1f48a3e4eabccdd0e9b2c6e234c37c2a356b96675c4335ca579154afbbd2cd1041a7214ce88ddf49632be9e830e75a2f15f85b7bd2b8ce25b8ce05eea2c252e1464ab7138b00908a53adc884f38a4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_10(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "abd30bfbd92ba9ff504081f3d93d38dc4e36553ce96f022a"),
		nonce:              decodeHexString(c, "2a72d031f9c06aecc5e71fd2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "67fa001273f38b0d84378492088d50a46bba460caaee98b9"),
		expected:           decodeHexString(c, "9bf2dd8dc80aa487a7fab28d0541de792b69481fe3cdc66845c697fd1e195084e56e1dcfe09bf97909af20b5ff88df30342c5350d39715019ff8396b899330dec1942207ae76451c5d54d23215434f4c89556f25aff136a971b03021a1c41bfd2cf3c4c10aa70c510b75350bce676f10"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_11(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f0ac889a112e6912c6ff72fd8eda97c515be855a3878422e"),
		nonce:              decodeHexString(c, "9ba50044c470b114ccca9893"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "dd237f9f95edc64e4749dba94f906b832d811d6aa766121b"),
		expected:           decodeHexString(c, "67ae1a534c232babffb62c9b62ce01e7e72524b2c25b6949abbdd0f7ace00715c0375a4ae201a4a482df635872d428238ebe5f7b3e2a7dfccb5e6c2004a20ec8dc015a0975c47cb54b3aca2edaca214c6b66391c0037881e49b373657c7a5a6a35b4be174ba4492d7d44fce15741d832"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_12(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "41e277f7a5c72abc15d567de1d88c952d930f85d6dfcf057"),
		nonce:              decodeHexString(c, "92aaf1910e9baa335e96c031"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "215587a725cba2768a070a50e01daaffc8be56949e625b23"),
		expected:           decodeHexString(c, "0e38ace95421404769b1f76a7fae3ba3b7f6e97b65ba30e2963edb91b9f3d6687e92d210d932266c96ec38b3d3d775fd85870284e6feb069277b81415359d1ec64d0abdc7f10678c3cc681c4592acc432bc4ac2e80f00b53a838591b5ca7ded8860e2c87388a4f2ef41347f274171bc0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_13(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "0b9fb69783ee9ad0f868876edb11ad2ec8d192b8d46556ca"),
		nonce:              decodeHexString(c, "abf320011fce2c4bf5ff0502"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "788046b6a9efd4e5858d0f8433725c1de40841c778a93e80"),
		expected:           decodeHexString(c, "000b05e1775676058db68ad6cb8fbed5024f46f00564a88b1296dcd421d3913ff838f91a7c8ee5b6473e3716df016146c705605520c5917b0387a3a8ffa5d24b503be6fc29fe6988b48a6dff18d450c995d1c06555497da3409b067b6a4d4ff252e5581fe7ea0e9f1840d9c7e54e1f35"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed24_SHA224_14(c *C) {
	s.testHMACAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "836284634963e77fddfe15f082675a253d21535e04927c0d"),
		nonce:              decodeHexString(c, "0f66cead08ab69e974bf1422"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4ff6c49a8ef1a5e68571c96a68cb3d2fe62cec8beb4d7328"),
		expected:           decodeHexString(c, "b66030390d1b9a327c85611f2c6df202cca3c118caa53de1a5c883930327f539c37beb92b3cc49a58c668bb7babb1eea7d5fb3b9751c3ad4bd979f497a53be60ccb8cec3e2ddc31595fffc138f532ff4d15a7b795a8d56668726839af333169a531be48f4b93d284dcbdbb5d14c07857"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_0(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "07e6f39a4f1c75203e1f3cb2a2bb015539b294879cd4db47"),
		nonce:              decodeHexString(c, "b930f6457c6e31ac22965cc1"),
		personalization:    decodeHexString(c, "5edf4066271f903a02ef7e6152eb41be69d1a59d1a954543"),
		entropyInputReseed: decodeHexString(c, "cb4a88463a87958f00b21017263185eee10c8b57dbcea047"),
		expected:           decodeHexString(c, "c2c1519fa6c4af564e02e0554579c249cae9c30312ce090f9daf9edad7f57e90671ca04162f85d498c84274e1cc5db6b204f0fc9daaecda244b6eaed4c2ece0a1335b44076b702b96c05638c57377682da85a8040213219109d6ad57eb642db0fff14cd886fc9d26130eec583755cd97"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_1(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f7253f1897fc3219a6fdc0e7baf460ab24bfb0302bf7ddd6"),
		nonce:              decodeHexString(c, "1d97e61a8037104794c00fa5"),
		personalization:    decodeHexString(c, "65f9b995863e5854ec3d063c5b9023ca8612bde0027f7b14"),
		entropyInputReseed: decodeHexString(c, "c745cd0b8cf9fb41980869fd433919ab8fa3d3b45a271fa1"),
		expected:           decodeHexString(c, "e6411ac63cebf5c77001796ac48a03cb5c706f83f6cf6f41109bae0298c22d42d90e0cc573e565d1df3727d3a9b41efb52c486bcbfffc92df27b3f1773a8a2ec0ee517fe8e9caafee910bc97c013ea04dd79a47c7f8ab02edcf8cfbc85557fbd528646844ddc60e1b76b7ceb544bba15"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_2(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "bf3c95669e1e603a6e066fac829607a4c865f6aa231d5d94"),
		nonce:              decodeHexString(c, "49a0c81966273791e655bbed"),
		personalization:    decodeHexString(c, "ea9e5a9b61b0506bfd8556d0f8c90838b9f9718d43442c06"),
		entropyInputReseed: decodeHexString(c, "2a433f8bc49418eb0daf59dbbeb7e19a5262e99bd7075afa"),
		expected:           decodeHexString(c, "0827fa4858a4edbf626b28ef917a1a3a7cf73b59de18f68141ecb03e9fd2a9fe2dee8ddf4214478be6e56ed0c8963143f9201e43d8037d720b7dc0a8137d4e5d08c4e7433cb427cde9bc677c4f243964f43eb08e4f76d5e69d71270d1c37cf9090ae6afe2c14df5506e0ed7f033e3085"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_3(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "3d085a54ad5ec8c1ba8c51fbfce50abc4684dc73d719e888"),
		nonce:              decodeHexString(c, "56c643da133b49006e4553c3"),
		personalization:    decodeHexString(c, "b14938623c990ab342efea0404486362bf7fd8cf0f2135c7"),
		entropyInputReseed: decodeHexString(c, "2cf8a217efa6a84cb715affa792c714bad416b1fada1dcdc"),
		expected:           decodeHexString(c, "be3b71ba0e765443a794581b6183ccfc528d86c54f9cad63cbec52b1924c226106226caeb8de0eb8c48cfac0cfa1aaa040cdeb075c9149e80d1aaec6d3e35bd2a509d305e1dcf6ae89a4b67a6be54092cfea6f3428b449f376cf3d62080845ece70fe6ff8250e72a396181081ecf822e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_4(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f86dc6b7bd1aec8a9f1ffd9f99af6fefc0b7ba35af2fb2c4"),
		nonce:              decodeHexString(c, "cdc7ee708abf43aaf14fa58f"),
		personalization:    decodeHexString(c, "6c5b5a436b696c62576490bed91dfdebaedc72ded4db03cd"),
		entropyInputReseed: decodeHexString(c, "2a492ac191d6029b6328543c94fa8dbac77ff330826d0c11"),
		expected:           decodeHexString(c, "72471a14f1a6aba36f0c1190a048fe7557382f17d0f68ecdb8a216feae3426d270358ec3093a49050ca0c220cef0e1a2a9fce9cf6bbd1203d683e61a7df1927e0eea58503e914cd186a81e192aed026f31e80029fe3eec031cad809c12c8def0c06b50a277e901f5dbf1e96ab3732aa1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_5(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "5c45cb4994ba4dc6c4858c003900c0a85ddf679bc0420532"),
		nonce:              decodeHexString(c, "74081015a716aa5b9fd4e08c"),
		personalization:    decodeHexString(c, "ca2dffa7a087945a05235791318bf9978125c3735f447370"),
		entropyInputReseed: decodeHexString(c, "edaf100fbc335d798322a5b69a4b53b798443ffcba3779e4"),
		expected:           decodeHexString(c, "82f066589da944179cd44f07359161552cd4752eed7d0ebe480855551a3f37aab6c1eee399c93712a06d3dd9d625bb2916040e8e3cf0066b25ca19beab609055e54ec8fad5bc6e8cc4093f64e9cd27e7e29a3ba470fcaad2221aa1928be6c871a322e60e2dedfdf238203cf6f935da75"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_6(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "1023d6158d3c820c68030cf9736991a117f181c9e0c6f9f6"),
		nonce:              decodeHexString(c, "83b12fe0135791d47309c7fd"),
		personalization:    decodeHexString(c, "4d472a8703ba58e04516a41fe7e318b0020b4d1cd12ca85a"),
		entropyInputReseed: decodeHexString(c, "3be9784a591b42e637e5f9d1880004627a4c0ced5663ff28"),
		expected:           decodeHexString(c, "f266a846c66333871e2e4dea4edb9c8093274976b0ad7a3fc72e896e1ffcafd736b72b113e61fe1ca3d7c7fe247b44916c2827745d4639a400444cf8f4a5ad7587f64f7c3161b43f5df2105f68506eafe3a3c3c59b60e8bc45dfd7fb832258e24bd61375ae60844b8b66679fdc6a8320"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_7(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "8d05d3602682ec020114b8511288b3bb71a1fc4d8df9e048"),
		nonce:              decodeHexString(c, "73919e854d3f256f11e58ed9"),
		personalization:    decodeHexString(c, "c4f1b2dfc5955b23d127fe3d5bd0d84532400d8aba31969b"),
		entropyInputReseed: decodeHexString(c, "9b024d816d101e22fbcf1867ca63510c3c9e93b248311d83"),
		expected:           decodeHexString(c, "a7dc46f337ed9e06c26bab1a1e656a407034e60fd160d2fedd241ce66f58f9d22ecce1466dd935f3cae7a6822dc665dfc3f19258c0ec92f5f77fe2315e28225efeb11cd2d26e2ba79cbaa97d8978e0220737014f27f982e05493d73ba46c880979f4112bffd46571c007fd3f41b9b216"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_8(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "90a11f59f9be2d9bbb1df407a87771805165a3d552924f56"),
		nonce:              decodeHexString(c, "35353d1032159b843d285d4f"),
		personalization:    decodeHexString(c, "3cb7dadae2ffefded882f379f935c59f342d18be535e07c3"),
		entropyInputReseed: decodeHexString(c, "c29d18ba7cc6b825fc10cd3740d299c25380f0da851eb4f4"),
		expected:           decodeHexString(c, "86eebe427aa02d11cbf75268b5078001fbc295f0d2ff0bd5aae6b3e7bc07ffb240cf88de18669267b60c0782e2d7fa850676df7144558a87beae8d7d43e7114c3de2bc0bc64d8d05fe932b2e3424eb4e070a58a21350839099f2f8e0d07772e51ab5778b4906ac3ae018746681a57aa1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_9(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "87f39d7a726d80338ce0fef98cb9ad572e73a63445228acd"),
		nonce:              decodeHexString(c, "83faf65ef6fd6a5ebafae6d6"),
		personalization:    decodeHexString(c, "3a8a18849eca73247734852e180571128ce14172504ca62c"),
		entropyInputReseed: decodeHexString(c, "2a99809878d560161bd4ecd63a59d274b63d6eaa11b65f0c"),
		expected:           decodeHexString(c, "e5952913deec0cf7e44da38ab8e37b61da755062b19a3573ddf2a58bf3c059215c0c961a467e14be8bcd238ae0007bd7a987373639d1be2ce3fbae354620c935f3e8c0e852b53186c7d1f8e86bb7e11c56480a6fec2a89497ae51d83cacee4dce0bcebcc3cb8bf4fff108fa7578ff56d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_10(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "345132518aa680ba992b1860aed02bf2d81f99199dc593b0"),
		nonce:              decodeHexString(c, "5cd2b774ebe0adfa62e3073a"),
		personalization:    decodeHexString(c, "8e7c12c247cfede919c0aa853913f369b8a1215dd1dc8be1"),
		entropyInputReseed: decodeHexString(c, "a0010093269c52d5b20961ae4ae25fbaa45f3699afa1ec92"),
		expected:           decodeHexString(c, "b32a7fd826b2fb89af889787e71ed047a3210e32f7264fd8be1f338f5c90797219834107b7fbc32d67c07f9250f6d7c8f9c60684c9edbdb6460afd64aff8f94fbacb50a0c66b02935c9f4cbaa9d7895f553b4e0682a41fcc306993fa4c0f6bd334d0aea63c4c9ac8f17abb40e0d88017"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_11(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "a4b797b390291fd9e8c851e6ad93245341eddad526024f74"),
		nonce:              decodeHexString(c, "d535dbd7be26e5b3d8290768"),
		personalization:    decodeHexString(c, "d4c8fba249467e533b1a40940406340e4ba92d4a577552f0"),
		entropyInputReseed: decodeHexString(c, "c7524b88d49a007c1347f96c6acf6f3dc4208481694a5b82"),
		expected:           decodeHexString(c, "823f2a6b4825409b4712d8a52028965485c66db1d828c57466c82b23317762754bf646980d37490cee7ac50f6499ba31a1b6be7243e470279ccf87126c7ca92f69c64a91b6f847d30e089054ce6e6810840627e6adf7c2382119ac942ea600b442188854c15c724fb2c5b014332fd979"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_12(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "6fd3f98ce575dd5fd80df04ddb74a9aee48e21d5a3b49334"),
		nonce:              decodeHexString(c, "a8900ab595685114121e8591"),
		personalization:    decodeHexString(c, "371c1285178c5ed096f6c172d39cbe66963db2dba0447361"),
		entropyInputReseed: decodeHexString(c, "5b75e13271f2bbbe248063982818ec4efad18b54c01d0f72"),
		expected:           decodeHexString(c, "339215892bab264e64cd47a8f035a26623ad15a1dbd329c7f0b99a6d7d5b4dd4fd119469cb81d604d169f6441e2b7e37e33fab592cd0196ff4741a1287d55188f83762bdacc8a5f59a0a2618ad099d28fabdc0f9816144b93561d9070b6b24aacaaae10bcbfa7e5908b53ebcc3cbca0f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_13(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f4a8c0e41668607f1943802ce51b5654719dae04fb54fc7c"),
		nonce:              decodeHexString(c, "20208bd5ed4066a6ca0cd46f"),
		personalization:    decodeHexString(c, "93b59f0fb178f9a2fe633ac2697f89738d0472bd17590f8a"),
		entropyInputReseed: decodeHexString(c, "7a6e704c7af4e0439a9fb7ee110882aad9eeb7c858ae9446"),
		expected:           decodeHexString(c, "9f72493ebf410d40c756a67608945888e2f328f7352b74986ba022c08ba850f91672861f0989496c0995c93ebe18e0b5f44b653c8ae9561908395fba3a4c056e9ab8166c23c57ac11243d8e792fe1e8ea2251906c140f9c90a7c1870144aac8268401a34620fbc83e5d21c4f2ecf1beb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed26_SHA224_14(c *C) {
	s.testHMACAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "3ecd3608cba641494d31f0b3bd690d06179a34be0b11e872"),
		nonce:              decodeHexString(c, "2d8b61b31b1491f013291cfd"),
		personalization:    decodeHexString(c, "457cb6a0893d1ff59ad3b19f843694c644dcfe14df116f6f"),
		entropyInputReseed: decodeHexString(c, "0913f5d566cc27404feb695194d41817764262b60e0b8576"),
		expected:           decodeHexString(c, "f4e882dddfdb6bba45301b1f1333554a302f57841e9ff807a782a20a4d727559b917040e561b0e80c81c1ddcd4504b04dd6f345ce32eec7bde42622861b58c8803797858130015f2bf1952051fb1dd73a41e62a9f4681b9a1f5b8fe85e0e824c072fb0763434c7591add79f8d6043840"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_0(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "030033e45bf00fb0d0aa3819efc426f6bbeaf176e922dd82"),
		nonce:              decodeHexString(c, "6dd11dbdf10982fb53d4719b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bbf980064624be77814fb4c85892279f3f9ceabc99b7a094"),
		expected:           decodeHexString(c, "206b045374da2ef40c8299ad90b94ddd7395d27754bc58b42d8fa5776c20213f0b26d367b39de9a7185ebe404522ad5f14b58e85400c2a0040a4ee031f2e48569ca973dfa267b5da6137d9596b697ae8f76ae2de1848682a20dd24407fcc8d55ca4c91e7368340e93e23a9ee8f8bc5b9"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_1(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "d379ae51303aae1d023be220d50f65fcea19e55ee507512b"),
		nonce:              decodeHexString(c, "2890a3a7e729fbdcc163cff3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "372be08fc6ed059ffd706fba0858e805c005273b52717116"),
		expected:           decodeHexString(c, "45e65a8260ad20c8832628c5b90849a1145a226ed6d34fc9367a670d977417749214ad77daeed063a415e0384f39b77a2f2f4c6397e539d364dc7064499a589d62d5070f0f8a37490512756a0535683c483479e3618074eba8dbc8f5b968d276c8a4c70b3e03f37f7cc8c09b6df86953"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_2(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "26ed55947053941ac4121176b51d74645f33185125a8e912"),
		nonce:              decodeHexString(c, "2f42af2887d3cbf455345099"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2b46365cec1160c49107041e994a4fe1083ad9936b6712a3"),
		expected:           decodeHexString(c, "69378f20b12b45a3c3bbe08fd40918cea8393661d549f05f8695c7870df86a5fc97ba2c6752bc2aa9defd7fc73b083dd8796d2b6cd7fd2cb24044f7c3d1e96dc15faf1f43496be00a10b1089b8ce6a7f38d76fa9b033a0a2b3facacb92499d2089c8e1fafba9585bee154a969cb50179"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_3(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "2e044407b6419c50394fe62ac1f3c8d45f4448c0fa2da88f"),
		nonce:              decodeHexString(c, "6800dbcfd89695f07d83c050"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "436078fa9d9d75a20daae23b36fc62590d6401ebb3e43452"),
		expected:           decodeHexString(c, "d76f31de4cee9c279f8a070c9fb3bf752bb46cabfe6ffea861706f23ecc9cedf7ec1c356302a6dcd05a776e861a6b1f653b2257843cc01a937d246e9b40742ca07a001ef519f083119bc673f89b83e3f4d057ef248a579867c52c5966efd9456986522d15a5f46c3decf0321334c25a5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_4(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "4aeba257ee1e456449a21f31698407fb7318e426d5b33ae7"),
		nonce:              decodeHexString(c, "1230d79898f5e4e6cbef51b1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "864a089baee97c4f677a89afbb19a0303e36811412958590"),
		expected:           decodeHexString(c, "4a9b5a57065df521ce42602f31872b5f741f201de70c03af3695ab898f4706f5627c2267a62e3613545d4b7019f67c24b593aaa7bfb2768f5da2f6bb43889acd7947752a1db1d13edc6b1aea866832015d82e30d062067113c85fc8851d3078b776bcf1cbd1c232ba3c34a7f49b1e657"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_5(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "69a6d14c07fcfe0d35eb5eff00d9615549ad54d95f29bbd3"),
		nonce:              decodeHexString(c, "71e0b915e4035fc5f924b39e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fadc5916219b5778305f3b45678881692f3551db9009f169"),
		expected:           decodeHexString(c, "bee5e93888d5f90fa7be16c2d68e1d25ff21a27fa3ea2bc82fdcdd9bb398a7ad0b032512d222a7e2143800f8da451ab9999b5cf49d82c2038b2fccfe6c0c7035833fb1aded07be1fdcd866e56f80c1e7f4e5a9e4b1766548e913f8a8d51c9e208065a65ca9eb1340e30c5d793c0efe7c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_6(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "e063f0e5504037bf2fd1862d1396a0f804b85eac2c45de17"),
		nonce:              decodeHexString(c, "7481b3bb271451df0add6af3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cc50b84732f575e009edd4ba5f233c49f7bfd93a39ed965d"),
		expected:           decodeHexString(c, "04c41ffaf006f1cb8c2299fff8f8d63f4044fb28a52739a8404444caeb50d310a1cc48526894d7181fd7e243f219ea403081eb89e02be698c46196b0e8d53aa916d3f9b9bafd1aadfb8b1b719d9f850c9eafb45b9c2c73468e4c8c734acea054d3b932ac27800b4fd23bf3a6a13a3c41"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_7(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "008c40b3a1607942e3889b40a292b00a6705bbaf607bc39f"),
		nonce:              decodeHexString(c, "95733d931fb9be5401f04333"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "89d7db9bc97e6dabcae1476c99fbb206e3d37096aa00f1f5"),
		expected:           decodeHexString(c, "8590cfc74592b5f449623525175fd1104bf0dde57d1ddc4810b02f47f9b02fab7f3dcd62bab08a5914dd0959a67c21897c8a23a27453f48c3d53fbf9e22869446981e0be3706e0b7e8285dbd760f131375d9ec879dcc2928a8e9f5e8ecbf0185d3c1a8db663757353d68e010d98da396"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_8(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "9bf2f703f216081e88c6c15736592abe372a00cea6d549f9"),
		nonce:              decodeHexString(c, "15db88e07619efa5b47de176"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9d0b0c008d7a5f42f338d9dece91e73d452c295dcd062b58"),
		expected:           decodeHexString(c, "b00f6b033b4348c606d33cda9f1e51bec8450d186d9130619fee9f95b7b25be8270a6c7893c1b7872cd4454b56c166e120e750d784a4803ae8fafe12c705be930934c58eef160288125f19748212a3ea4105e97c862478da6be079c1eb202d6e82695bea65c2e8bb4370ec2cb8b277b2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_9(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "5910740f3fe1b99d9b60e4138a1402bbd5b79738add0d9c8"),
		nonce:              decodeHexString(c, "9ce9a465b2a276edf547a3c6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "05a1d7b045cac61cd7dc62d4ea66bb630a34e516ec10eb8c"),
		expected:           decodeHexString(c, "cb622e249167b9623fb0fe2a1ce8a4afd2aadf1d03e0d8f0157d62c3f7d5d71c9901c1ab59f73bfea3a9bd2bb04f960a72326fc336fdd02cbbeb37ad7f7a4d2a3af5215e3693997ae438df8c588d6e6f6f2f4ac603ec19654d57569aa9c0911ab49f735e9cdb019ff6d8ea710ee02ffa"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_10(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "665e77028240e0779f3be3d5ceb5f05c838eafb98409ec25"),
		nonce:              decodeHexString(c, "9ab90b27fe54849aa2d457cb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "98dd3334b8990fab909a84662a4ae8f04a58a5b832f977e6"),
		expected:           decodeHexString(c, "cdfebf096fdb8b5a38148909d64226e8f4bb1cb2c04635c2ee59070cccd34dafc5f5c1002f95dbd51a6177d5d1d920aa8b562f4ae7378506d426d133417cad929d3631f1e5176479af7f397ef6c7ca4ae6882e1dc31ec0f34c4250e7e906b0452fd8b4978291de6e6c98f148d240cae1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_11(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "6c87d5ace98a6ae3aef838d7a57584b60125a91e8b96e057"),
		nonce:              decodeHexString(c, "d59e5e52bd11326bdebfc076"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1edee4cabf1b11218502cd7b20fd19a1efae2d0318d4155f"),
		expected:           decodeHexString(c, "6a807cb17c7ff4acc577b81a29c239523c56730309a10773d415c93aea5496dc4e5dc6b523f088d192292fcb968dbe686c158915fa3ae23c2ca6e35eae0202edecfc4e1e66f873888038a2581dc07d986e666e89fe2193f6270ca2af145cc90f8f6566b29da0eb2cb41fbe16d38da4b2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_12(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f33d622832c0480c6b5ecb013a32b5e3ec185e7c5e1dff3f"),
		nonce:              decodeHexString(c, "1bee68a134f94c6702fa3f78"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bb3d19825e83d9cdf770ac1b7c33a8c1bb1ca4526b486b48"),
		expected:           decodeHexString(c, "d95b908dac6faee8930ce5d4c073a0c8e6e4e17b0fd7c9dcee4bfa86193d34b894152e5d1f00c2cc5523c063513a2e1e68bc2efa4dda657b3924037e666b07fb4f7d2e0e28281cb28e3e8979da9ebb46d3ae7073056d56fde91f3ce3363ace18740340cad7949ddf45b0069de69835b8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_13(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b9d973d0ed2ef873d871b2120dd2ecc83957b03a42106d8e"),
		nonce:              decodeHexString(c, "dcb080807fcfcf2c9c500c1f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6858df1012609018790c74f9add75e592c5dcf623bfe9257"),
		expected:           decodeHexString(c, "82d1f70de2dba437d8f1ee9c8dcefc5b89fdb4a2dca30aec899e34811f283b12ab2ec3214d50ab6ff55f1311c8113e2458091a81620fb552c9367d5ba6b4d6263289a5a286299c57eee09d111104f4eab0625deb8c485b94674812ce7c3fda29ee2f1ee2eec86a6f00ddec9ca55d93cb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed28_SHA224_14(c *C) {
	s.testHMACAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b9024d3018564b27cfba304e3698871a3ed11d768bf1fde9"),
		nonce:              decodeHexString(c, "73bf310b51374082b05159ba"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "907bde73f3e11c8d82ce48e98e9a80b6086a14b8d8ae3d14"),
		expected:           decodeHexString(c, "5a17372db41833f391f15b8cefda1284a623045f86f7e9bb09d931f9c1a16f31e7f5fbea366d50276dd0ec59e57018c249eb71ee4a231a84cb53c4d3e88ee6a84e0da28b1fd18be11c3d9140d44be4e7ae88dc780624a868b530557bf5774900ef63759994aca42db417ceb81324ae74"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_0(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "e2391d189ee849f1dba515a230567a2ca6ffcbf24556446a"),
		nonce:              decodeHexString(c, "7a9d2d5d797cc89a93dc1977"),
		personalization:    decodeHexString(c, "7dd1f6b5220da6006a2e7e9c8c2720959d762a6009cf7be3"),
		entropyInputReseed: decodeHexString(c, "8826fa2e3ce5181da16b21d1fd86c2d90a9a079132ef2e2d"),
		expected:           decodeHexString(c, "f9f0fba1729e0eb29a84eb6eff0367ab3fcc274211ceafd3a060b7b04e795deb66443f8696657866e75465fbe9b947483ded2d7c57f4ffc909051e0727074ec12d13ef3fbcda39249061e85faf7ce6c394917a95202a5fb23745ec326df9bed775c5eafcbbd1d8f0897d9f66baf0ccc3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_1(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "5fd4c89cd71572e5878eaab210e54f762aec936418ec60f9"),
		nonce:              decodeHexString(c, "e555e4dcc7cbefa57172b47a"),
		personalization:    decodeHexString(c, "deb8ec55416cfb32c80b712a52135ff3f513ab6dc2e06f11"),
		entropyInputReseed: decodeHexString(c, "e5bedf1724637336d27717485c20ccdc62f7ba5da166a5b3"),
		expected:           decodeHexString(c, "6eb1ebaf4d0f64c9cee32628d0efaff387838b6ad1e68427b02fb94adec0ca02083f4d38f3483f4a859ed19d83acbfebc173edd480c97ef39aec5311c5affd0793f07d0e4994c9332ad5b3760e537e79b8f3f9522e22c56c0f360060d2a4405112eeb368c325533eae52ed55462443c7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_2(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "bbae747b3d2ab012121c640350c4fd7ffa1d6dd92c6fe848"),
		nonce:              decodeHexString(c, "fd51a652ce11ada5f2d606c9"),
		personalization:    decodeHexString(c, "f1b69cbd0be8a8ddf09b01176c47990aa9ecb7d3296e7703"),
		entropyInputReseed: decodeHexString(c, "d3074a45eb9e1a35997f337b49a27db46817bb49ac90141c"),
		expected:           decodeHexString(c, "e80c84b558b0e0ac2851daa2b6b0d76f462ee559b09bec40cfc8493d0af0c9635ac0f83fab746866c45299bdb1382ecadc630ed4ffed393e1b3787bfb5ec2de0a5f7fb013ffe6327f90381d4f6549b0e0af28ba527b36114e5051695fdb2180744c10f70eda6bb2429800858956c2b3d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_3(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b57238a10fcfc43033bdaa06f9d049701b6b2c204586ad84"),
		nonce:              decodeHexString(c, "9780126f279e264b1c907d51"),
		personalization:    decodeHexString(c, "0620dd6da4b5744586e64d9f62269a14d8e8ee6498899cf4"),
		entropyInputReseed: decodeHexString(c, "a2d4b27fb6d1e6393ea96a3961a7112d10cb44067cc6b245"),
		expected:           decodeHexString(c, "4f2a0b3e33990d6dccdce6ad0408448ab2b7533a9ea71295fa275943acfa458c66e41ce43329072f7862c1a9a86e9805da0629b53e230df1c0ae19e7d317da7d13234fff1f614da81379cf3616205276e9de4b01fb258566786e2816bd4fcbe23bf9a7871f6004c4ba3269817593e7af"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_4(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "219682cb2035b05e3b32c6ca3c3776a84bb5eb1156963d27"),
		nonce:              decodeHexString(c, "882e106cbbb03b3157d0515e"),
		personalization:    decodeHexString(c, "785f055bf23ffe24b4e9900cae38ab5187c44d1113555123"),
		entropyInputReseed: decodeHexString(c, "24ff1ddf63c44cd08a6ba26898e81a83b9baf62fbed9142c"),
		expected:           decodeHexString(c, "308d09b9c70d2226c12eb26fec49a5240e614fb78275a3873c2816b4d1ce0989b081b2fe98000fad09355396bd6c6cd9edd1a6eb55f7cf179c569bb962a0017c0ad19bdd55149702cd01969c537c380600c94abddf6f86858d2c0d998e5c09194cc05df1ea4b28140403a96ac2151e0b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_5(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "bc30e3f7c611dfdfe7ee3282fb7895f8ec6d53c6803338fb"),
		nonce:              decodeHexString(c, "f22d5e24c41d913183cdf8bb"),
		personalization:    decodeHexString(c, "48e7e7fb3813970ee7d904e4620d177331a21f24f6ca7462"),
		entropyInputReseed: decodeHexString(c, "4cfee5fe8bb2d5a6d92bbedc275e311910819f5cfcbdead3"),
		expected:           decodeHexString(c, "ecfb9a51ae3ecbf8ddd4eeb2a0cb22652c4a9e2a0954cb5d5e325db26354ba108f822a6a27cc30b111c90e2039c5aeb8cedc8bde6609b4c1955952544f87c173db970b361d2db15e95352887e0b37b8198a0d6df449f81c169283f42b5f9afad0e52f1ca82b9097864a658bfb51a793d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_6(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "ed087091e4de19e93bbb952c1e6baa7174e2e011e32bc55c"),
		nonce:              decodeHexString(c, "75a30cbf0253ebd12a1473d0"),
		personalization:    decodeHexString(c, "94b8ee66597006307d405938106c3495238e2a9df5831376"),
		entropyInputReseed: decodeHexString(c, "2e5dbac7ceeff129eb25aee91e3eeeb3598852d80d2cf135"),
		expected:           decodeHexString(c, "c68d1a2e161fd168bf0d8ec0711a016c3f0d987861472c0f929952370709e821ec0754873d45915aee51e5d8e2b54f1f49286dcf5f92bdea027c934b044f0159568325b404167c74ef9c0830ac02dc8457335bdfe9b7988da6d14b7af798ca863262e77fb62c84ccd18dcf517bcfe684"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_7(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "4e382f82cd553958e36722e86c3de8d28b5e5940403a1c74"),
		nonce:              decodeHexString(c, "9c21d849b4999b6c8739ec6b"),
		personalization:    decodeHexString(c, "5f8824d894c83e6833e398b69c6e5f8ad06e35d8523df542"),
		entropyInputReseed: decodeHexString(c, "f58a4623065e34440063316b8f913b9f1c71577fe86b2533"),
		expected:           decodeHexString(c, "4405d17e599075d2ee63b3b77c9874af433cdfbbf4d2ed3f153000cfafb8ab4920084515f50dcf495e3d9bafe357255c15916a9968227b6099f88bce7c7150a0bbaa069da14f2d72111fac20140a9620ff150b6def337c823fe0605bc7608828fe225ac870d7805c63144d8949cfeb43"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_8(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "2ed07a9563e2923c6391a22a1c30c99647a1a1a28291f7f3"),
		nonce:              decodeHexString(c, "8e33b8c8d0a1db62598c842f"),
		personalization:    decodeHexString(c, "30059291dac480624ef16b59d3fb6bfc8e7c5b01dd558e63"),
		entropyInputReseed: decodeHexString(c, "1b182c34271bba465744f8ed4954b336b22686f655c89b35"),
		expected:           decodeHexString(c, "92459743e61ceeb745a4c0a815f6e7f1fcf478ed28731837432597ddcbca250d424ecd59d8eee5656493ac862a11e2181d16e72e9590ed728bdf24f21bfe6c7f66d4942a7d70f78836248071f5604219bde2844f453b52bcf4b50136fe3d18d270f034ea61409e6a732531ceab9332da"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_9(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "04d936b0ff5def4ee29c58f274bbe8c24f7291e7265f87bd"),
		nonce:              decodeHexString(c, "c36438af7dc5ddd72fa256d8"),
		personalization:    decodeHexString(c, "f5ef271f9b64881c3df2da35a6081f5ff1541a30c1799108"),
		entropyInputReseed: decodeHexString(c, "d4544603db9a990b76995971ed944e40f4a90bc5e951ff52"),
		expected:           decodeHexString(c, "7a433251b17f3e7458ae12ecbca6c9f091504a6dbe6f2dc4c44b806812a2474c17637a7c834ea16bcef104c6281cde4a905b87d7768c4d64520570ef0990c9294ca1b5dd69eaff77f5e4dc36ad908d4215614f1bb8efb12e269b24381915cfcf20395ca206d617631627acc864585ab0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_10(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "aaade6c4d3a38d35c13827f19b55e8f5abbd74b95a7e9d05"),
		nonce:              decodeHexString(c, "f4b5fab6c6503ef1adcac2b0"),
		personalization:    decodeHexString(c, "69db0f4da101f9cb013ba7c3f839bed97dc9d343d693352c"),
		entropyInputReseed: decodeHexString(c, "b678e0391439bf4af06aa1e684c6ad54e5f89228e71ac076"),
		expected:           decodeHexString(c, "b98dda9606116ae7ff87fbdfc902072ae99ad51b1002fa2632f31e824d6676b9626972a2721a268e173e753792a02a25b257ddceb1194338712d1e059df5c0266e6e48cf828df3d0fafafc3f0e52133c4c280f9b9f7dede76e9722cb291fd59beeed375bda3d7081ee76ac71cb71706c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_11(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "9946997eb9be7777b9e788f4682b2c171388ee188f7ed9d3"),
		nonce:              decodeHexString(c, "acbc8d98462ee4ef375b1c54"),
		personalization:    decodeHexString(c, "05b01ae2dc644589f5676b4448a439faef89bbf5c267dfb4"),
		entropyInputReseed: decodeHexString(c, "1bc2adf067092727b95c7d40ccee9aedf384062d6d3888ac"),
		expected:           decodeHexString(c, "5857c334220a64084cbd4bab51d6a835719157b4bbfa4c201a9a89929a29c891ba07759e354b778861643744d2a26d358b338ac55c8ef850460c6e2edb0ede4f338529e24157c4727e6ff825b78c1b1c89418a1a264a70078a40a83f0af5c64080d761e47f4ba565504d27ad4484c9e2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_12(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "d549c3d26df339db88b81bef795f5cf87c2733ce8e9c76d2"),
		nonce:              decodeHexString(c, "faf622de5cf0a4c4941dd21c"),
		personalization:    decodeHexString(c, "2028dde261d94a13f6ef56eb2968174c8bffdb9f11ce1de6"),
		entropyInputReseed: decodeHexString(c, "e6931672f8a34422dd74922d586b2a58949e85da0ebed317"),
		expected:           decodeHexString(c, "bba653349d4e8b8d2e8a2743c23c1de7991dd461f06b22de9caa64a097cadfc6b8f82c55fa41b5c8184d3ec273f88aeab35c6dfa344092d79352c8e91db387addba185551692d5d88a12b18bbcc94e99e2bd2861703bfea4d0c7fab29c68c349e2c225bd06ccd77d104afe8f20a03498"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_13(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "17eb90fb869d49ec7e5b2b4b3d3c64a03cc31cfa94f8aac6"),
		nonce:              decodeHexString(c, "24bc969bb6468c1ca238de91"),
		personalization:    decodeHexString(c, "ca8f1ecd364aadea3e47c7196d615c874fdfd4dd1f4b4e9a"),
		entropyInputReseed: decodeHexString(c, "a8628bcc9bf64339936bc35b36beb423b07d0987a4791abe"),
		expected:           decodeHexString(c, "98ccb3f596b8a88ff2ac222ec2513c74f6cc9f777598c3ea0c6873db96334872721685d272d813c3bed6b7cf7ff5840f93a3916a7bdd4136ff02b53f87a24088dd3e44931fc9eea326947d4d2b3789da22fb383df54976e58245446097e9b9ac692dc69cc86d200c25d3fcc4284ae2b4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed30_SHA224_14(c *C) {
	s.testHMACAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "7905311e1c3e62880033c9909cecff0c81a1f351c81bb71d"),
		nonce:              decodeHexString(c, "80e329c843c25c98052c74c2"),
		personalization:    decodeHexString(c, "5254f0afcee1998fc855874294c0ee2bd321d201e77e4640"),
		entropyInputReseed: decodeHexString(c, "114c588ff60f48fe0fb2fb320c7a54d512132a2f530abb3c"),
		expected:           decodeHexString(c, "8a018866798e04f7a5c8a35e829d547629ba8e6189e88ab9184c01cf61a9c12f12f17aa48ccf1690bf6646dddc92d79d1704ba517dae097cad527b56e762373083c7d0a37cf16b7b58a4c97441ff4b4ef54ae3e8773b4f20bc681e0ae2fbd3fd3c08d925e7e5b6379a172882b2e706c0"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_0(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "06032cd5eed33f39265f49ecb142c511da9aff2af71203bffaf34a9ca5bd9c0d"),
		nonce:              decodeHexString(c, "0e66f71edc43e42a45ad3c6fc6cdc4df"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "01920a4e669ed3a85ae8a33b35a74ad7fb2a6bb4cf395ce00334a9c9a5a5d552"),
		expected:           decodeHexString(c, "76fc79fe9b50beccc991a11b5635783a83536add03c157fb30645e611c2898bb2b1bc215000209208cd506cb28da2a51bdb03826aaf2bd2335d576d519160842e7158ad0949d1a9ec3e66ea1b1a064b005de914eac2e9d4f2d72a8616a80225422918250ff66a41bd2f864a6a38cc5b6499dc43f7f2bd09e1e0f8f5885935124"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_1(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "aadcf337788bb8ac01976640726bc51635d417777fe6939eded9ccc8a378c76a"),
		nonce:              decodeHexString(c, "9ccc9d80c89ac55a8cfe0f99942f5a4d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "03a57792547e0c98ea1776e4ba80c007346296a56a270a35fd9ea2845c7e81e2"),
		expected:           decodeHexString(c, "17d09f40a43771f4a2f0db327df637dea972bfff30c98ebc8842dc7a9e3d681c61902f71bffaf5093607fbfba9674a70d048e562ee88f027f630a78522ec6f706bb44ae130e05c8d7eac668bf6980d99b4c0242946452399cb032cc6f9fd96284709bd2fa565b9eb9f2004be6c9ea9ff9128c3f93b60dc30c5fc8587a10de68c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_2(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "62cda441dd802c7652c00b99cac3652a64fc75388dc9adcf763530ac31df9214"),
		nonce:              decodeHexString(c, "5fdc897a0c1c482204ef07e0805c014b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bd9bbf717467bf4b5db2aa344dd0d90997c8201b2265f4451270128f5ac05a1a"),
		expected:           decodeHexString(c, "7e41f9647a5e6750eb8acf13a02f23f3be77611e51992cedb6602c314531aff2a6e4c557da0777d4e85faefcb143f1a92e0dbac8de8b885ced62a124f0b10620f1409ae87e228994b830eca638ccdceedd3fcd07d024b646704f44d5d9c4c3a7b705f37104b45b9cfc2d933ae43c12f53e3e6f798c51be5f640115d45cf919a4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_3(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "6bdc6ca8eef0e3533abd02580ebbc8a92f382c5b1c8e3eaa12566ecfb90389a3"),
		nonce:              decodeHexString(c, "8f8481cc7735827477e0e4acb7f4a0fa"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "72eca6f1560720e6bd1ff0152c12eeff1f959462fd62c72b7dde96abcb7f79fb"),
		expected:           decodeHexString(c, "d5a2e2f254b5ae65590d4fd1ff5c758e425be4bacdeede7989669f0a22d34274fdfc2bf87135e30abdae2691629c2f6f425bd4e119904d4785ecd9328f15259563e5a71f915ec0c02b66655471067b01016fdf934a47b017e07c21332641400bbe5719050dba22c020b9b2d2cdb933dbc70f76fec4b1d83980fd1a13c4565836"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_4(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "096ef37294d369face1add3eb8b425895e921626495705c5a03ee566b34158ec"),
		nonce:              decodeHexString(c, "6e2e0825534d2989715cc85956e0148d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1b4f7125f472c253837fa787d5acf0382a3b89c3f41c211d263052402dcc62c5"),
		expected:           decodeHexString(c, "4541f24f759b5f2ac2b57b51125077cc740b3859a719a9bab1196e6c0ca2bd057af9d3892386a1813fc8875d8d364f15e7fd69d1cc6659470415278164df656295ba9cfcee79f6cbe26ee136e6b45ec224ad379c6079b10a2e0cb5f7f785ef0ab7a7c3fcd9cb6506054d20e2f3ec610cbba9b045a248af56e4f6d3f0c8d96a23"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_5(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "a7dccdd431ae5726b83585b54eae4108f7b7a25c70187c0acbb94c96cc277aa8"),
		nonce:              decodeHexString(c, "94c8f4b8e195a47356a89a50d1389ab5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "51733eee2e922f4055e53939e222e71fae730eb037443db2c7679708abb86a65"),
		expected:           decodeHexString(c, "99ba2691a622afecc9472418e6a8f9f1cdc1e3583c3bc7a2a650a1ab79dcbccbd656636c573179276e782569420c97438c06be898867f628b1c01eb570263d2c0f09c7aab536f6fba7df6aad19e05c236b645674667c03d1b6a04d7fc11177fe78933b309679f5bf26a4632b9a13e314c4bf4532428d3d95c689002b6dc1fbb1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_6(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "c286425ecf543a49bcc9196b0db1a80bc54e4948adba6f41712a350a02891fa6"),
		nonce:              decodeHexString(c, "957a659a4ec2e0b7ad185483c220fd61"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "08c2129813eea0776fba72788fdf2718759cc3c4207fa20a5fe23ac6e32cc28e"),
		expected:           decodeHexString(c, "8e1020a4fd84c99e0fc7e3f7ce48de5ed9ec9a5c2ccd624dbe6f30e2f688a31dc55957630357a5d48ca2a456241a28bfb16d8bb000877697a7ce24d9ad4d22b0c15117996f1f270b94f46d7a9bdfa7608fa1dd849177a9b8049e51b6b7a2742623854a1fddb5efc447eed1ea1aed6f02b4b2754ecf71ea0509da2e54f524a7e7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_7(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "02818bd7c1ec456ace55beeba99f646a6d3aa0ea78356ea726b763ff0dd2d656"),
		nonce:              decodeHexString(c, "c482687d508c9b5c2a75f7ce390014e8"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cf319bfa63980e3cb997fd28771bb5614e3acb1149ba45c133ffbbab17433193"),
		expected:           decodeHexString(c, "19a231ff26c1865ce75d7a7185c30dd0b333126433d0c8cbf1be0d2b384d4eb3a8aff03540fbfa5f5496521a4e4a64071b44c78bd0b7e68fac9e5695c5c13fd3b9dbe7f7739781a4c8f0b980f1b17d99bce17ceb52b56866ae02456ffef83399c8cf7826f3c45c8a19315890919d20f40fc4e18d07e9c8ccd16c3327b5988f71"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_8(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "77a5c86d99be7bc2502870f4025f9f7563e9174ec67c5f481f21fcf2b41cae4b"),
		nonce:              decodeHexString(c, "ed044ad72ee822506a6d0b1211502967"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "778100749f01a4d35c3b4a958aafe296877e0acafd089f50bc7797a42a33ab71"),
		expected:           decodeHexString(c, "831a4da566f46289904893ef1cc1cd4ad19ee48f3857e2b69e936d10afbdc29822e85d02663d346ef3e09a848b1d9cc04f4c4c6e3b3b0e56a034e2334d34ca08f8097be307ba41d020bc94f8c1937fe85644eeb5592c2b5a2138f7ded9a5b44b200c8b5beb27597c790f94d660eb61e8248391edc3ae2d77656cbe8354275b13"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_9(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "0ea458cff8bfd1dd8b1addcba9c01317d53039e533104e32f96e7d342e6c7b9b"),
		nonce:              decodeHexString(c, "935a4b66fc74c2a48757a99c399e64e3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6c5f3708e7b714c4ed139b4fa9e8c763af01773484005109a85e33653bb0ce98"),
		expected:           decodeHexString(c, "373a37af84fddec13645a9768d6a785ae5a2589d64cd9b37980dde2541499210c4f408335de1d585349064f3f53a2b4c5ec6dc2a09591f99ad9fad528ac83474164b45497bf167f81e66fa08463ffea917f6891e48f149fafc20622bb1172f34886feb45c26fd446a4a4e2891b4bc594186896141aaaeeb301b49e7c1a26fec7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_10(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "bfb68be4ce1756d25bdfad5e0c2f8bec29360901cc4da51d423d1591cc57e1ba"),
		nonce:              decodeHexString(c, "98afe4bd194c143e099680c504cceaab"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b97caf210e82498c3408790d41c320dd4a72007778389b44b7bc3c1c4b8c53f8"),
		expected:           decodeHexString(c, "409e0aa949fb3b38231bf8732e7959e943a338ea399026b744df15cbfeff8d71b3da023dcce059a88cf0d4b7475f628e4764c8bef13c70cfbbbb6da2a18aabcad919db09d04fc59765edb165147c88dd473a0f3c5ee19237ca955697e001ba654c5ee0bd26761b49333154426bc63286298a8be634fe0d72cfdeef0f3fc48eca"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_11(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "4f6880a64610004463031d67d7924fa446c39138d4d41007e8df3d65691a9367"),
		nonce:              decodeHexString(c, "6b33b2c13600f4b1df6ca3d1960e8dd4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "57b87b8c8f48312b5333d43b367730c0a5ad4725a16778fcb53fe136d136cbfd"),
		expected:           decodeHexString(c, "73d0f324ed186e2ad06bd1800e262bdbda79ba54e626761bd60f74f43e3bb62958ec1e2f1d940af163e1cadc124e7ebaba2f72e67efd746c7f6d0cad53ef03d859d93cff778a32ee5be172fe7fdbdc232ded360d704a6fa0f70bebe942e56478345492f49dc5c6fc346b88a58947ad250e688e8c626fe1efe7624620e571976e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_12(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "aae352e111843219cae8f70e7b8f6eb9bb53d246cbec1e4f07d42757143295b4"),
		nonce:              decodeHexString(c, "b84485dccd1bf93210e322eafcbebcd9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f9237f00d744d8fbff21b9d0043c258e8731817e6a5fb7b4bf5011680e5bc642"),
		expected:           decodeHexString(c, "cfb28b93522c7d61d8d3ce3f080e435e4c83c7e13a9dab788db8fef0407267a14fbc9324e090e24df5491fedfa81116869983938d4d4d7324a310c3af33a6f7938f602c5e4e63f1771cdaabdab0782b5affb54eb53047c109a9606739dd0065bd21eca33132986554878354f5f9f852e674dd690163b0ff74c7a25e6bae8ce39"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_13(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "589e79e339b7d2a1b879f0b0e1a7d1ad2474eaa8025b070f1ffa877b7124d4ff"),
		nonce:              decodeHexString(c, "0961ed64dbd62065d96e75de6d2ff9d6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e928388d3af48c2968527a4d2f9c2626fbc3f3f5a5d84e0583ab6f78e7f8b081"),
		expected:           decodeHexString(c, "fce6ced1ecf474d181ab331f79c3d2cc8a768ec2818de5b3fc7cf418322716d6a6853733561a497c0c25cb288d2c9fcfbca891bafd5a834c85f3603f402acf1a7b1ea92db847ed5c252a862ad4ab5e259715f1fc81da67f5230bf8be50ee8069758095f7d0e559e03f2c6072290e61794458437609e473eb66580cddaad19b71"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed32_SHA256_14(c *C) {
	s.testHMACAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "714277d408ad87fde317f0a94732fce62f1352bdc90936673b4f1daa0925aa26"),
		nonce:              decodeHexString(c, "d16582a99f23010b4248b88d86485419"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bd9fc7cb2fd5063b2c3c0c4f346ad2e3879371a9c805e59b9f2cd2cc2a40894f"),
		expected:           decodeHexString(c, "62ef7a431288252e0d736c1d4e36cc9ac37107dcd0d0e971a22444a4adae73a41eff0b11c8625e118dbc9226142fd0a6aa10ac9b190919bda44e7248d6c88874612abd77fb3716ea515a2d563237c446e2a282e7c3b0a3aef27d3427cc7d0a7d38714659c3401dbc91d3595159318ebca01ae7d7fd1c89f6ad6b604173b0c744"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_0(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "fa0ee1fe39c7c390aa94159d0de97564342b591777f3e5f6a4ba2aea342ec840"),
		nonce:              decodeHexString(c, "dd0820655cb2ffdb0da9e9310a67c9e5"),
		personalization:    decodeHexString(c, "f2e58fe60a3afc59dad37595415ffd318ccf69d67780f6fa0797dc9aa43e144c"),
		entropyInputReseed: decodeHexString(c, "e0629b6d7975ddfa96a399648740e60f1f9557dc58b3d7415f9ba9d4dbb501f6"),
		expected:           decodeHexString(c, "f92d4cf99a535b20222a52a68db04c5af6f5ffc7b66a473a37a256bd8d298f9b4aa4af7e8d181e02367903f93bdb744c6c2f3f3472626b40ce9bd6a70e7b8f93992a16a76fab6b5f162568e08ee6c3e804aefd952ddd3acb791c50f2ad69e9a04028a06a9c01d3a62aca2aaf6efe69ed97a016213a2dd642b4886764072d9cbe"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_1(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "cff72f345115376a57f4db8a5c9f64053e7379171a5a1e81e82aad3448d17d44"),
		nonce:              decodeHexString(c, "d1e971ec795d098b3dae14ffcbeecfd9"),
		personalization:    decodeHexString(c, "6ec0c798c240f22740cad7e27b41f5e42dccaf66def3b7f341c4d827294f83c9"),
		entropyInputReseed: decodeHexString(c, "45ec80f0c00cad0ff0b7616d2a930af3f5cf23cd61be7fbf7c65be0031e93e38"),
		expected:           decodeHexString(c, "17a7901e2550de088f472518d377cc4cc6979f4a64f4975c74344215e4807a1234eefef99f64cb8abc3fb86209f6fc7ddd03e94f83746c5abe5360cdde4f2525ccf7167e6f0befae05b38fd6089a2ab83719874ce8f670480d5f3ed9bf40538a15aaad112db1618a58b10687b68875f00f139a72bdf043f736e4a320c06efd2c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_2(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "b7099b06fc7a8a74c58219729db6b0f780d7b4fa307bc3d3f9f22bfb763596a3"),
		nonce:              decodeHexString(c, "b8772059a135a6b61da72f375411de26"),
		personalization:    decodeHexString(c, "2ac1bfb24e0b8c6ac2803e89261822b7f72a0320df2b199171b79bcbdb40b719"),
		entropyInputReseed: decodeHexString(c, "9aec4f56ec5e96fbd96048b9a63ac8d047aedbbeea7712e241133b1a357ecfc4"),
		expected:           decodeHexString(c, "0e1f2bfef778f5e5be671ecb4971624ec784ed2732abc4fbb98a8b482fb68737df91fd15acfad2951403ac77c5ca3edffc1e03398ae6cf6ac24a91678db5c7290abc3fa001aa02d50399326f85d2b8942199a1575f6746364740a5910552c639804d7530c0d41339345a58ff0080eccf1711895192a3817a8dc3f00f28cc10cc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_3(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "7ba02a734c8744b15ef8b4074fe639b32e4431762ab5b7cd4d5df675ea90672b"),
		nonce:              decodeHexString(c, "8a424f32108607c8f1f45d97f500ee12"),
		personalization:    decodeHexString(c, "3ad627433f465187c48141e30c2678106091e7a680229a534b851b8d46feb957"),
		entropyInputReseed: decodeHexString(c, "d8f02b59b6a3dd276bc69cba68efcf11ab83ead1397afd9841786bd1bb5da97a"),
		expected:           decodeHexString(c, "1fb91186ba4b4459d994b4b9f4ca252c7be6294d6cdb5fe56f8ff784d4b190a1c6456e0a41223bbbdf83ed8e7cfbfa765d9d8bc7ea5f4d79ea7eccb4928081a21de4cca36620d6267f55d9a352b76fc0a57375884112c31f65ff28e76d315698c29e6c4c05cb58b0a07ae66143b4abc78b9d25c78b4121e1e45bef1a6c1793e2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_4(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "9a8865dfe053ae77cb6a9365b88f34eec17ea5cbfb0b1f04d1459e7fa9c4f3cb"),
		nonce:              decodeHexString(c, "180c0a74da3ec464df11fac172d1c632"),
		personalization:    decodeHexString(c, "336372ec82d0d68befad83691966ef6ffc65105388eb2d6eed826c2285037c77"),
		entropyInputReseed: decodeHexString(c, "75b95108eff1fabe83613e1c4de575e72a5cdc4bb9311dd006f971a052386692"),
		expected:           decodeHexString(c, "3c683f6d4f8f5a4018d01633dfee74266aaa68ed6fc649e81b64dfdf5f75e75d5c058d66cf5fd01a4f143a6ff695517a4a43bd3adfd1fb2c28ba9a41063140bedbffdb4d21b1ace1550d59209ec61f1e2dbacb2a9116a79cb1410bf2deca5218080aacd9c68e1d6557721a8913e23f617e30f2e594f61267d5ed81464ee730b2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_5(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "22c1af2f2a4c885f06988567da9fc90f34f80f6dd5101c281beef497a6a1b2f8"),
		nonce:              decodeHexString(c, "3fafdecf79a4174801f133131629037b"),
		personalization:    decodeHexString(c, "80327dac486111b8a8b2c8e8381fb2d713a67695c2e660b2b0d4af696cc3e1de"),
		entropyInputReseed: decodeHexString(c, "f95a0e4bd24f0e2e9e444f511b7632868ead0d5bb3846771264e03f8ab8ed074"),
		expected:           decodeHexString(c, "77a7fea2f35a188f6d1bfdd49b569d8c45e2dd431d35a18c6f432c724f1e33ae92cb89a9cf91519e50705a53199f5b572dc85c1aef8f28fb52dc7986228f66954d54eda84a86962cf25cf765bd9949876349291b1aae5f88fcf4b376912d205add4f53b2770c657946c0d824281f441509153f48356d9d43f8a927e0693db8fc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_6(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "d0840e3a8d629d5b883d33e053a341b21c674e67e1999f068c497ecfaabfd6f6"),
		nonce:              decodeHexString(c, "071de7244ecb2fdf7ab27f2d84aa7b7a"),
		personalization:    decodeHexString(c, "90d609527fad96ffe64ab153860346f3d237c8940555ae17b47842d82d3b0943"),
		entropyInputReseed: decodeHexString(c, "1dd1a8b59856c49a388f594c5f42cc2e4a56b3ccb8a65e7066e44c12f4344d50"),
		expected:           decodeHexString(c, "7ab28a9b2d3ae999195553e6550cced4c2daccbe7ec9dcbb0d467fabba185b727fbfd9830242cd098f4db3cf4a85e8bf8e8d5974b62b28550922b32ed5bfc1a522b6605cf93bf8d90bdec1c5b9e59c6fc37a817d437068a87254be1f7c4618ada46fbc3a2efb02e44524e21d91be7534cf05fbfd858304b706d6a91ea1cc6ad5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_7(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "2e2dd56869104492767a59778652831919e1c8b970f84e824ae4116597a0ab7f"),
		nonce:              decodeHexString(c, "01c42a7e983641de46c82fd09b4f2f76"),
		personalization:    decodeHexString(c, "bcd9e1508fcc22820a8be07180fea5045367333b569e111b011cd57dc1858765"),
		entropyInputReseed: decodeHexString(c, "7306507cd3ca7eec667e640d270cfbb033063d97520b6b7e38ff3cea0e79d12b"),
		expected:           decodeHexString(c, "b915726c7b8c5dc3975f1a334684b973abf6a9495d930088cf5d071548e4fd29a67b55cc561ed6949ad28150a9fb4307c1fa5f783a7ea872e8d7c7e67ff0c2906081ee915737d813c25be5c30b952a36f393e6baa56ab01adc2b4776ad7b5d036a53659877c7a4e5220a897d6c0799af37beeed91173fbe9c613c3b6b9bb28e5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_8(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "d1aab0f16bd47a5ccd67c22e094daa3735eae21aa57f0bcd9e053d9d0d545cb8"),
		nonce:              decodeHexString(c, "199310dfe1b01265b8c0d2b46d6c7c9f"),
		personalization:    decodeHexString(c, "625b4b8f4de72ea9cb6f70556322dc2a19d6b2b32de623f557e419a084ba60fd"),
		entropyInputReseed: decodeHexString(c, "f50cabae4e060f3971096b78e550cda2837a26a693d905db2d992d589b268f44"),
		expected:           decodeHexString(c, "987e1fdfe004c619cf1e9034576707eccd849400e19c87a1fef5b0179ec51c42a2f8c45d7942d0023a023c89f188b2634362703985695369863322f58619c50a7385a2dc91fc78f94b59f0131dc2b56a0d7c699d427285da1c104b0ad1739da10d8071c23993787045dc21f0070e1e9aa1658fc8e3add73dac7262e80e0aa2ee"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_9(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "449480eaa100aff6f48dc6286a5a81b9728b084864f78a9da98f606a00a6a41f"),
		nonce:              decodeHexString(c, "e53c6c5ac3da9f4726389a03f97bb640"),
		personalization:    decodeHexString(c, "6b8fedc084d8e28d333aef6db3702b6351f0d24e30908cccb63794282655886b"),
		entropyInputReseed: decodeHexString(c, "73a6d64e1966ae324388dc12c14544e9dc5ae4fcb331e99d350c456ff16f9aa0"),
		expected:           decodeHexString(c, "a06912d362da7eb25598857f6d65344c3e23ec3deb80c6e43158845b95eaeca241c0bbbd67ac385e24693444455cc1c2c08c1134d956b8bc93b28be9c2d3322b3e09252979dfb8d39d04c94f81bebda5c73110605a237b561216bda9ee9bdee1cc0c7728bcc8304682334ca944e467a27a85313fa5395a9c790e35defd2edb12"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_10(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "9a6174166e97aa4981ddf580bc01c96754b9f0ba042750aabfda1cffe56e8581"),
		nonce:              decodeHexString(c, "d7512ff6b7db7ce141b2bb01dcd0425e"),
		personalization:    decodeHexString(c, "ed75288f23275f9422444da5d3b53ccb3c4ac8acfb659a1e9b7655c2db52f879"),
		entropyInputReseed: decodeHexString(c, "6888b9277e57dc57663d402eba8d03cf56a070dc868e6a128b18040002baf690"),
		expected:           decodeHexString(c, "03519dfb2ff88cc2b53eecc48ae2a18ddcf91a5d69d5aefcdda8444e6df790a5240e67b2a4de75b4bb8a31f0f8aeb5e785ffb7a1341bb52fe00a05ee66fa2d44ea9956e055f9ffa6647c3bfe851ab364ade71a0d356de710ddafb7622b1da1bc53fd4d3210407289c68d8aeb346bf15806dbe787e781b94f63da3e1f61b5ac60"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_11(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "9c6ae1002ee1b0add0be563ce50f899da936e13efa620d08c2688c192514763a"),
		nonce:              decodeHexString(c, "fde7db5160c73044be73e9d4c1b22d86"),
		personalization:    decodeHexString(c, "8fdaaeffd64e53f7b4374d902d441209964e12b65d29afec258e65db6de167ca"),
		entropyInputReseed: decodeHexString(c, "bcc28fd58e397f53f494ad8132df82c5d8c4c22ea0b7139bd81eeba65667bb69"),
		expected:           decodeHexString(c, "021d938c9b4db780c7d8134aeff1053e5b8843370b8ae9a6749fca7199d809810f1bc8dfa49426470c30c3616f903e35fbacb23420a32f1bee567cc32300f704246ddc0217f236ef52c3ec9e2433ca66f05c25721f7661c43f22c1a125ed5db531bd0836eb435c27eefc7424ce9d845e1d4cc4c503097b4ffca788e674a5cb53"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_12(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "fe96a85b69d46b540918927bb609dc57642eeaefd46bb5da2163a0bc60294b58"),
		nonce:              decodeHexString(c, "22195a410d24db45589448dfe979d3fd"),
		personalization:    decodeHexString(c, "20f698833a4472fd7b78fb9b0c4eb68604f166a2694c4af48dac2b2376790e1e"),
		entropyInputReseed: decodeHexString(c, "09cb870879d3f734214f6a4bd2e08c62a2a954bebe559416d8c3551aafe71d6a"),
		expected:           decodeHexString(c, "d3e96dbe29e1fcb8ed83b19dbfb240e6f41679fbe83853aa71446617e63e5af78cf98b331d15bccb8c673c4e5d5dcec467a1fe26a6cd1696d0c9bc49f78139d051287df7f3ae0dbb4bbf581cb8211931063c3f4612ced53f59d1b4ebb875729139f5d2a7d60642e8f2835eed888b7e3e49c0dffd012cd746abfa3e1c5c2308c6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_13(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "a4fd693ff0a8af24bcec352d3196549fd0da5ee5d99ca58416ca03ce4c50f38e"),
		nonce:              decodeHexString(c, "8cd67f2bf71d4366ce61396642531ff5"),
		personalization:    decodeHexString(c, "368969c15a4849d7593be8b162113b9298a535c148ff668a9e8b147fb3af4eba"),
		entropyInputReseed: decodeHexString(c, "83d2be9a0d74e6a42159ae630acebf4e15271ef7f14f3de14752be0e0e822b11"),
		expected:           decodeHexString(c, "e9188fc0eaec74b2608e21e3a40be94aaf4ae08eb684de8f8bba2d5fd3b073aa5531c938c0fc628da65725c54b5c68bb91d7d326565e96685e0a4e7b220c50e0caf1628edba5bd755b31894f8cb90afa76e88c5eb9e61b4932444c1397dee3e32241a3fb70a3929e49f6da02eea54812abb3d6b5cee18f03af1e0b4958430ab3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed34_SHA256_14(c *C) {
	s.testHMACAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "254ff5687a6dad3f1d237dc762f58d24ef2e2c084d0a48d26a3dc81e5490cda3"),
		nonce:              decodeHexString(c, "f2ec392acca491e03ce47b95963a49fc"),
		personalization:    decodeHexString(c, "f806b9b4a56682c61b55cb6a334caf87ffe135adfea6d0c3fc22b39898fbd078"),
		entropyInputReseed: decodeHexString(c, "b8494b1c1f1752fb6f80d732a89b08115857f7cc96e7dff05ebb822706889917"),
		expected:           decodeHexString(c, "0e527e00494d55564f9d9b28e7110f9a61ce36c883b5be2dcb055444164cdddd1a9f2731716f22d6ff476ce413c77abfc0e946871d5481345c2e97b4bfdd12ac03df606fc56bdb99ac7b71a69b5b9160373bbec3e9dde477180af454e7acc6bc58dc0afb4281c0de4354c1bf599054e3800c6d60d892858865b5361f50bfca9b"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_0(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "ff0cdd555c60464760b289b7bc1f811a41fff72de59083858c020a1053bdc74a"),
		nonce:              decodeHexString(c, "7bc099285ad5621993b639c4a94c376b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "14fc6c9b178db644a8cd7130a4cf051678c8f4fa8f24c27b0a531338a5ce8589"),
		expected:           decodeHexString(c, "2f2620347bddcaa2943685346bbf31c44081f8665f3ddb2b42ae1416a74c4b77fab3fa19aeecc547e76c8cbe6ad1f100a3fc8b2ce2a1ea3a3dd7cfad46c1b27830b940ba18d09e9b7fa902bb760669b1735cc7b7bd39052da7f2626fa87000cffada410019d053386ad808bd3c0cfcf56b91879eb8d3f932ee2d185e54f31b74"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_1(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "f61b9a293d18952c7465a511382c031b860bcc8586a7ec99d7523ead8acad0cb"),
		nonce:              decodeHexString(c, "e332a10e88f00d951ddfd4c7b0b59658"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "10f23afebe726093de8170036a9f694e8084c09c6e620e98bb45f16ee56031ce"),
		expected:           decodeHexString(c, "d34384893ef4cb3e42386a42efbdce467cd411a76e6a32e1d634a5a3670a95973985851b5f369a1be65add3ed61f7c6a11986485b7e16b57263eed71ffc5a89756cb42b7bdfdf92b2e31c36b4d7b7cbd2e650ccbd6c0b5dfc95cd8937ef1e8ebc71a04cf33c398f7f9086f0bae57ee9af8f93f3b8ec1c9816917f699d8f43272"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_2(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "1b6b52b7ba19c26e62bd0ac9b233bcf004bbc9fd9e1e737ccf884a760829cd10"),
		nonce:              decodeHexString(c, "d381c8be203274f1766918b45e08ddc6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2f504eb29f8ec0704f070b59c02076f4a4e5c8e7b64568b22c5ff5bae196d5eb"),
		expected:           decodeHexString(c, "a41500fc54ccf549fe21b3693428e03ccdffbf42ff790d47dff34fd88fce01afd49a26d300ad66a34cd3d1aec73dd002dc83c1b86c432d721766fb90366130a3a28888a63a5d0b8befa895611c25bfa8817536eb0b20b9982c7d976f4707563b16b49ccbd435cf049b6a6e11df12e5faf0d20fc9deab395ac69303601ba31fe3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_3(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "36367fa973aa4e2ec7bcef339900dd959416bd63e746aa3c14a9b66e838fc780"),
		nonce:              decodeHexString(c, "fba07124e6d57f3c81ba596d256e433c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f30bd11a1f2bc97dd8d4829f75d59d5577e726825e2364d204e9077df48f65a9"),
		expected:           decodeHexString(c, "6a5bdfdf37319c2e6bd2bc44938455e03a2e830b23ee8ebd6f982ff838b499d6d37b44ef0a5941ba42fe0245e64b28ee1a2fa3e8d22469ceb4c6f675629c3c6abf61aab6b1e887c8cf6644803f5d5116be11ff42698d42ac3686807036f51af4ae344a365e8ad8ebc3a623de1bcc68e064d9fa82b6c80fb0570060bc58e87ebd"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_4(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "2485cfc615d7fab60f4657e470c8121edd6bc1fa2247b205ce4040ee13c36f17"),
		nonce:              decodeHexString(c, "087e6b4bf1e775a4c9f182df61801343"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9aee0ebed8daf703360aa1fa2e17fac6b7945ac45cdaaacbcc9fce22d28c0d1d"),
		expected:           decodeHexString(c, "ca4e2c4b63bb7f08438b825cdeb6a883a2caf30ddbcceb05c91d37c05676f63cc4de0bd680a821a995564ecd12e54fc056a39e4ec5fe3373b4d6620402b6a537762f95a2d4909581c8985df801c72f3223bd946796ac71dc8fc1b2838ea5aa68644908cc74cd8184861b8894e074922e85a5e258fb6ed3ec10e3ffe240b6738c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_5(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "d109e755a725c9648d3371ffbf2ce08045d17175bb1e777aaa73fc6f9ec2acf6"),
		nonce:              decodeHexString(c, "c142f6e04dc887d02d57b1c27c1c77ae"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "091fd9e5b5b7415f873f2cb1e554eabdd91f96b684c10cd0024fb32e481d4cb0"),
		expected:           decodeHexString(c, "1d6fd50a843869bb8a9b83ccb4d100af18eefcbdcb98afa273737c687b50402273b9886ca1320eca2c558ed264a42e02e1a7dcbca267a385dc70d6e15ac4276a6ad59107d63b2d077391eee762d9fbe22946c7d6e37578d4ddccfae9789628a60537a3933cf7cfcb1271a29215991bd341dff39b2c9b6c243a03ddde0b73ffb1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_6(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "8bc47b94d06919a17b23fccbd4d23494be2587e0b5d2b82395593dd42a2837a5"),
		nonce:              decodeHexString(c, "bf4d19fdfaf2d5ee48391195828acbed"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "08190cb31d8f20e8df5e5a648eda896368ff3bae1b60f7ca1c93f8bcdcdfbdcb"),
		expected:           decodeHexString(c, "6105197b7fd3a3121727899550144f8b9f03cf9b1a570e972ad23f0ea714db424a0bdcba045b6aeb1237c7abe90bcf843d4253b375724953c3f726a9ad8b25ba913e4db374185af93637f3dcdf973b986723f590ee766916052c5eaa419151f09d12410e48284ac8ee87f25ed9671b235cd7acaa440ad4b6ada864ed62fb9823"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_7(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "8b95ecfe9fd090a09210172b4cc199ef1bfa73eddde50d3d4147c75b6e0e76eb"),
		nonce:              decodeHexString(c, "130c18aec9415a2a54d6cfa433440833"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "825f0b1dd1a1570fb710231512cc288681fcba15a0a45cef45aa1f2682cf37f8"),
		expected:           decodeHexString(c, "5eeca51c5a058f08bcdcf83c1d9044b5203b77b536f86623153e67f05f3adb28eeb8925b6107d7a8acca778bc4526ef1cff5ac5fdd0239522fa175d3e065d78c19a6daba56e20b284b433ea81cbae8139ca79445b887749949dae8b9f03e559fcf5f710722831efa92ade0cd0cab5c343dfd4bcdd8d6bcefbaf0531a8ded693c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_8(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "e8436e8622ea345dcb9431640aff328c21be838321daf089510d27aa4d3d640c"),
		nonce:              decodeHexString(c, "d69ae9dae216ae6cf36f48cf3f97bd3a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d912aab48368ede1c5f9c1116cb4e2e991fbaf2624d9f81af47e8d7467460105"),
		expected:           decodeHexString(c, "c3cb7789f69f6a99c38ccd8d73b627c5a24da7116f9d1b11b4a9fe3448a6837d219099b339f06f185d9f4c3d1b9a474bbd2c633acc09fd540ab8df423b9515d52c68c539068fcba531b885c26ccc4f576e3471f7e0886f39725131c2f1256b450220473bcd07ddd90ac863059eb18c6982703ca4219c747d84580092096a55c1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_9(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "61308733c0883627ae9319e18657072440c7588f58131eda0281a4e6c63ec6f4"),
		nonce:              decodeHexString(c, "37384d9f08c4257035f730db48a2c153"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ec6681c5281399bfb3ad4f5c6d73de9726351e189c46ba94304250b71052f904"),
		expected:           decodeHexString(c, "b3f642cd6ffb6deaa11c074e767299d93d2411fe4dbde2adc04630904e3bd5e61b53440f9d51398af3eb8e951233e585d88975737e3f45e23f5d63bbd42a2862e827a8a49cedd8ecf8fd8256a47573d35c2622d7e87d83e5357205e0dce531f92e8fa3257782f1db47cf70dbe94401cd50e27dcce183693ad501db7b0aeb55b2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_10(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "7c6b15d4477c5ddff3eafad55690e021f8bf5d343bc6dc2d58d29a979aa921c3"),
		nonce:              decodeHexString(c, "7938804eebf061388d3c346144f49211"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7d8b82d9ee9a99af59347da76778051442be4098a300a4c606a3247314ea4618"),
		expected:           decodeHexString(c, "62ace99fe2db12e93c2c9155d70a581b2bacb8f1ed909a24de1b365fdeecc67135607a44792b004e507d07f5b361480ce4b2f1f6d32bb2536933ece2816d47a94677cd823ef64a17baaa335987722b0e1c0239940b0f3d005219d8d378157ccf17c14162165a8ef38fd408a4e9ac85a70804d57353c75fb187be0d72cf699cc8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_11(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "7159c7aea96da8ab8648f8f854f351be9b28456690b788c49c3dce74b2311e63"),
		nonce:              decodeHexString(c, "6aed951fc6e1557f5f1cb6adbec54686"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ce6de3b5211777f9056669d0460184003e879784dfff86d7ebf08a233e6a5482"),
		expected:           decodeHexString(c, "1333d12111b959c51174ca2188ed84ca7dfda30d5ff25327cd19f73779590b19c0b524756033008b6406abe631cca6b82ebdda5ce7b9e2968a8adee3e4a6b3eaa8079a64e7622f6628c362b5c6dcb61b7cf64567e6ec5ae312047250513ec5659160eba5c758352f7416a0398637902a4d7e86adf98450df111ef433111ff2d1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_12(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "ebcfe25cea696645c79e772922df04d48417f9cf2ecef727cccb3e8998893c59"),
		nonce:              decodeHexString(c, "136e0c8e8fad1c49435e6eac763c776f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "38b48db11ff31ce5e0a0cb627986b88bead74be834a4e347de17074ce117244c"),
		expected:           decodeHexString(c, "d90cb0835b0ca64c8d1dec23f2773b6dd835bee7e27c91822dbf0898d181de5be4e4f6a1d59712e3b47200cb14e12252e9d7c5624c841e4c05c7372a5e70e83a1d86d0c069bfb29a21f511c4cc8c4cd9f66ba3a0810244df2518bf3785b303e7aebe9f1906bcff55a4545d53d2fb8dd72eee003f10009e9b41825211f2352be9"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_13(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "b0cce5acf0d3305cf5ebdb55870af93168200da56fa2fa6885bf1c2a9328956f"),
		nonce:              decodeHexString(c, "6d7966198ec2341808973900a9fcf044"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2c0bb1bda5a0125757b64d573ad04cf36d47ee4615583fa8fe5a2dec8b805921"),
		expected:           decodeHexString(c, "b417b4470ea950772cbeda485de1e945d2319a6a3500d88fd522080a2644cf7c1861d4281dbeab81518b59245050b1b4a5f89e9a61be4c5a4372b4972f1c17b983359907a44d88b5bb12848428efea84407893640fb0363b2371e14891248afd61abb5ac0474c500e1c8ef2c114184d7ea4766d46b78d2742986bb34e62c49de"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed36_SHA256_14(c *C) {
	s.testHMACAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "103e04dc6c885de4225067c8dd67cec5a3dd7c45586d2adf59b54b546cdc1591"),
		nonce:              decodeHexString(c, "5e37bf8f455a2835cf448da683d636b4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "936ffb8cb0833324be823ae723929996bc450f81576f2c43b4829ea85044cb55"),
		expected:           decodeHexString(c, "14efb3f12fa03bd20b94b9794eeed7de9e7f7fc9f106d680366322e710285c1eb8c143607641e0c44fe9db92c0abb5fda3806bef5961289e3ed72b67b14f1e98dc3bd9b938863d5cd9e45fff3e7c5eb256b487f029643a0a27c09bcb6f5eec8363c4debed61752df8840cd34e6ae7f5ee3fb53b7267678d15e0172a699fabd8d"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_0(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "28ba1a661632efc8ecced5f51b791300fb3b55b05d041708638de4beb757a9e5"),
		nonce:              decodeHexString(c, "76828796aff07f55795cb54713c77ed4"),
		personalization:    decodeHexString(c, "40933fdcce4159b0955111f844471b0db85b73bdd2b78c468dd39e2a9b29aef2"),
		entropyInputReseed: decodeHexString(c, "a5f542b04aaa5dbc931e47019feb38962616c57af09b7c1df83f2b860ff76586"),
		expected:           decodeHexString(c, "65e5aa47b385f1ea42b231b9fe744253b8598859d7011e525f5a2a1ad32a972a850802c60a2be19be270063a3cfbeaae954f10b122352de6a08ac410e0991653aab271b360fe9191cf5addcccced8c4acfb61457049992988fd7a9acca1f1bca35f1475813694a39988e5fac9f4ac0572286bc462582ad0af78ab3b85ec17a25"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_1(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "cfd549c8080a502e3edd7905584e5be14d7ef55910d282d81d345c53ca34e07b"),
		nonce:              decodeHexString(c, "a565e4bc2f461769c0a8f211a67dc9a7"),
		personalization:    decodeHexString(c, "d4add64c8603415629da5cd58c518958c84d43ada71bd1bd578fbe67744b2476"),
		entropyInputReseed: decodeHexString(c, "2712a41615f2b4af37d641c3a73407ad62b43eebd0439bc70faf2b7f2525e2f1"),
		expected:           decodeHexString(c, "b5225fa8b7b1ff058f3ed492cc7f66cbc3934774031447125af820cfe9429c195df9b3cc9a11b02cf3800613eb534dc2ce1365bc409b2b13d65bede54cd213a549f2ef9e3d17c4fb99551eea539b91254883cad86f5c3853a803566ac1ea864a08bf6e8029588ff8580f7d2657dc8f389f72cab4251a19c4fa2e539afac7c1c1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_2(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "5cc913e12629481262ad317fb8d39870b4f7260ccacdcebd9131710ae71e0c98"),
		nonce:              decodeHexString(c, "d46de6c6f4a543fe5f473c2c2d0e214a"),
		personalization:    decodeHexString(c, "ca7f2f6501e6dea1bf7f54e6bd50304797ab80ea0228813eb3849842f217273f"),
		entropyInputReseed: decodeHexString(c, "e7f008abd00d525297ff6e2c39a358e6c75c4a64f6ac68defd275623f496ca07"),
		expected:           decodeHexString(c, "8ca7dd3d3b82f640b33cf176b22de7130c1dc54c684ddf8bc7b08a181753ad7af8c4638287f724df8ff991431f99a3105173b107f064541dd92440fd4cee659e9322b5154168f49db36f32245ae4d9831559eb839b28b9a388ae4980ceeadd9903d4febc662bb7d246017463e843e77256726622cd1f1025c51b6624ce847716"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_3(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "b8bc5e6720a414b7f7a213d455d43ec55c773edf2403319716def9eec1293975"),
		nonce:              decodeHexString(c, "2da286292331056dcf884de8944e026b"),
		personalization:    decodeHexString(c, "514eb0c69bbea5b995324976ca123337e26f639b06a7a362ff57673520cb70db"),
		entropyInputReseed: decodeHexString(c, "3c1bba681b3e0408d08b92fdd3252dda67685d865fe8286d6c4fd669c33c0920"),
		expected:           decodeHexString(c, "b9416002c544e079998464d5181afe70c106d44b876d16b39f936aff36ec86ddef5fb2688a0aadf669c39b6f6724ff3eeaac90b70674c14d97e994bdec0fd52373cf7a21250c835e93c73d7c49790b59300db485f021b13593a32d72b7057da0d55f63a6cae5183540e817290d8b91ce55f45feb7730732fa9156da8276d6732"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_4(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "28dc2f25b2634c0672a0fa03378563de214500faa77ee4076409aa16bc8512d2"),
		nonce:              decodeHexString(c, "85d52ed34e062909bb5e6175dfa187b8"),
		personalization:    decodeHexString(c, "5bb0e422ceec47aaf48082909f11c998a5a77d54320b28eaeaab713221c95419"),
		entropyInputReseed: decodeHexString(c, "4393b20d7dd15d67a2f78e7437e1e7a95110dc2df646db22342a711ae102d1d6"),
		expected:           decodeHexString(c, "66dbf2b121bfd4a72584b561c650f50995d22f0f377df2f60cd26e0377b7d1ae7b1afc72d22f9ab5b542764a219cbb66f3253e602e93807d3ec2bee5ab131f00fb4ed3288bb1b6f52dd39d79c817ab73d9b11f81e30131d1f3cab960441d07ec23bea0eed77188d714078739d81c42cb224bc5ad0b65c8c9c5a808b605f1923c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_5(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "af84059f96ed19b2e53f091228e70967864735dc83178e159f577c57bc121cbf"),
		nonce:              decodeHexString(c, "84c6515fcb88136adc239f537fcabf4d"),
		personalization:    decodeHexString(c, "9fabe30adb15a1452fbaf2b627c0e47adc60ce6e9b10a56a338f08e8858f82a1"),
		entropyInputReseed: decodeHexString(c, "f5fdb3b3aa2edef8ca8d31c9912eb43a3adc4825c88d463230b113913f1d0117"),
		expected:           decodeHexString(c, "181c7a02264e5a6a1ff4d97dbce07428e4b2b449a2b861eb0a617293fb847e2aa1234d214d5092073f9dbb49fae8b963569bf4b7fe20e6aa355e565db4c75d623b47cb627a7fde9008d029d20c09bb50e83ab037f3708fc5183fe0f22a732b89f39c3a45f1f1616876f87203ceef0605f03c28b2654df00a4d55a0c011b93916"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_6(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "4af2bbf36d2a302595de667e42e08abb5e44cbde9b1be2eed0338aacb48673bc"),
		nonce:              decodeHexString(c, "e0b943f55fc13416869a624a9a383fcf"),
		personalization:    decodeHexString(c, "dea4c6b2490f1872e61a9bf77c3f3b67afa8e892be0c3c1ab89e92a27045e1a7"),
		entropyInputReseed: decodeHexString(c, "bb6a04ce7f81ef18bb3455c925b8d576df2bbf68c0fe4e65c68022aa69dc0ec2"),
		expected:           decodeHexString(c, "31052a14c911b6926457f562fc27d19f22a3de7dd145aa75b9b603a6109fe1c1fea3ff2e37e9d98414502e2dfef0137788187e42a71cd69475a8bb0040ac6db23aed06927495954aaa23193db83289f75f966eef0a7ced68e8871ab2a47d3892f594a98c90ae51cf11bcf6ed879d458d171f334c049234dce7941f34b4839fcb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_7(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "d666a2e70af2771269425c4dc1eca87fe177313843b8b6b9c3d4da9d46540caf"),
		nonce:              decodeHexString(c, "d5486a3b881c35be944dd2359b88d6a2"),
		personalization:    decodeHexString(c, "5f0ccf34c257608ebf9e5fcbb979c1d8f669047e718c760d0a9be0bee7c94d79"),
		entropyInputReseed: decodeHexString(c, "1a6cf1d8f6a17ad9dba6898f7f82d33dba596eaccc2011d155ac6e39d59a7558"),
		expected:           decodeHexString(c, "58fde4f4e108a540226f40846bce66dab6082efb636e8987e18542dd6e2840a88be045019402b20371e08e415238925a440a493ed8e10355fc164685e499600ee192ed0b9531592d4a52f4d70ac0a0aae12c1705e9c1eca26b36c0906e216fdae479aef2dca8460d0558bdf768d7c0002fc71d6a5eb06fd660564257a158db53"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_8(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "208b9ef500b0493b7f2ded5f3af6bd568f5dff0ebefd1998d348037ec363df80"),
		nonce:              decodeHexString(c, "13eb969ceac89456ab22d86933a18181"),
		personalization:    decodeHexString(c, "ccaebead9e2b911ef927f3069da5e3582a7886d956570d2edf2af434b9473dba"),
		entropyInputReseed: decodeHexString(c, "069b767ac6123f9c551d3bbd43228df54f379ca6b418967722825fad33343f9c"),
		expected:           decodeHexString(c, "ecc758fd316a75e5f97a14803ae51f8c0a80ecba954b54ec8b9da8081f0be9680b11acdcb9fc65c6ef458787546137fadbbf077a6002528835ca3c808fa593d820a06501592d857ab0a67b803ecb6315ba1aa0c90cafede02480b98a07cf9bb867dce3b1575b6b46d4046f4408ddc71282fa43acc738a27665b33afccf974077"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_9(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "01469dfdc993ba870c3487f93bec2081974de5f4193d105bd8af41cf001f699c"),
		nonce:              decodeHexString(c, "76154ebbfee08951cffc61c1c22c9685"),
		personalization:    decodeHexString(c, "4e5fa3384345b66b7dd4fe9fc788a03a3805c5e8acb4707e6d24412c4927e8ff"),
		entropyInputReseed: decodeHexString(c, "5e7435f00f59387bf0977a6d79c95b831884e8ed261bdd0958871691c70a3fe2"),
		expected:           decodeHexString(c, "26dff79ad2e72932ccb00afe66905fb966fc7a057b491c375a31540a79e30a4780708a1e928d7c6ef959433b9a0dbd19cc73082cf5d304ff2e9acbc562200250e7376d7d35f22bfa257c86b0da7483791f8f82e79559e5b4b9bfe0e1fec52ac40933b3934b13dd650ed5cc183e796be35fc59faf513c40f1249bc8fec4f2f611"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_10(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "f19f4dd401e7fb21b3f7f73c8b390eb676f895daab860b491cb2fac85197c149"),
		nonce:              decodeHexString(c, "2538e6be68441f15ac6fd0a34ef3b8b8"),
		personalization:    decodeHexString(c, "12352e74b912c5c637af35b19047775f9cae26c1ad49c5d56cd287c7b4117622"),
		entropyInputReseed: decodeHexString(c, "051ffcc76479a5670cb0fbba2bdc8379331d8dbad06069f9a5e36cb8f7afb398"),
		expected:           decodeHexString(c, "8c44e3d5d0fee79b1a258f3e30e3cd9a0ebd12cf68978cca5ed053447657ff4105778b4dd872fde92f98804a7242ea57e13b0d6a8d49373748c495a77de80efe24fae768604d1cbb94ebd08f379140ea5208db589d1d1ddcb69ecc764b51fc082508acd693cedbc7070f552d294b6b2bab9c7b6c9c0e06888babbd75688cf536"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_11(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "a0245f9908f6c664dea7689e971a1ff2c189eee422ea157d40a444d83c941980"),
		nonce:              decodeHexString(c, "f569f2af4d5fbbb7813f3e244e4d3dc4"),
		personalization:    decodeHexString(c, "887e6c40263597d756c25b4015e709a9663e48d5a9fbb4813b85a53b997a64b6"),
		entropyInputReseed: decodeHexString(c, "2b85598a4f92a00f4cb4c1fad1829ed6f8f02a8a81027d14b6574c91783c1dc4"),
		expected:           decodeHexString(c, "b4c4f41396706cf36d6cd9ffb6f8a94c4682a8692ae9d8ead80ae89d964a01a5dec1493d96e764b94935f88dfd95e7b5fd196eeda8c2afe9946dca0725ff517d7ba3d8f7e017411923faa9289f68b7f7ba6e29e3de652fa4d60e8cacf582efa2157a23e953b503981c485cf523bd1456bb7e8c322f7bf006223e3774697500fd"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_12(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "ee8f7a029aa7d220a5a19d285fff411f2ed566a12ec3c813f9559d221da38e81"),
		nonce:              decodeHexString(c, "b028d4b96d9a61801d2453c4b42fafdb"),
		personalization:    decodeHexString(c, "282cf8311375837c2577d31c503ec06023f8e2a5a0a2e5cf9cb7d911899f2b5a"),
		entropyInputReseed: decodeHexString(c, "4c7b59e4dfd69c36fed4a128d7e63d5e7647143f5d4aab55516ead959c05946a"),
		expected:           decodeHexString(c, "b6e889d02d5d4cd5a937c79494e9928c383d5a3bb11f6ceaa180c7964796ac59fcc2466171d61f533ceaee81b0dc763f0c62c449b779cd303ddf56e1ce01dc127bf1bb526723fd7f2f054676d651c94dfb0623f97222e34241b5654d5d9f231b99411c0f36d57fcbd0ed49e2eac47db3f2a122178e116d68f04fe0898854e695"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_13(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "10b8789cdbd6778442a45edf228b9923f452631ad0fe9e608d10826ba71da7ca"),
		nonce:              decodeHexString(c, "159fc5d8e50eb56e22974789b1dc20d1"),
		personalization:    decodeHexString(c, "2dd59e37766c667571b779c06e12ba219188489772f48631a6728b5b867e3cf4"),
		entropyInputReseed: decodeHexString(c, "966d942038030509b20e610062042b6bf104812818893292a68d57d1ce865151"),
		expected:           decodeHexString(c, "3e6acd8b4e85b4a0f7928f6bd41a8e6b52524fe72723a0509637d33f15afe7d8da6a15209b9e4149576fbb1fd831f784c04439abda4605d06556dc3002055b5855fba201f6daef79f78d001ed69eca8a418513d02464e8d742c2799cd68edfbe88ae9b35a0aa065c42a4770058c4b026d0350a7afa9c52c3c7fa054f8a96d887"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed38_SHA256_14(c *C) {
	s.testHMACAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "9829d2e5409629d9c53c7dbb16c619b616b0d17394a3e055bf6fae9fcbbbafd4"),
		nonce:              decodeHexString(c, "e15d2762631516807c1f073382e85212"),
		personalization:    decodeHexString(c, "2556e3d75eefe6b6171328e660bb6558dadffaa1e032e7ebb6b3262adde0ddeb"),
		entropyInputReseed: decodeHexString(c, "a4f4e28b330b73382fcc5c857ed62e945fd971554064545437a5d22ddcbff3ee"),
		expected:           decodeHexString(c, "747402c50dccc3a666d94d2d6f6f43fd2b505384733c9762c2ef84936fb329c366541288fbc578e9397b5b1198f1665f8c373de8556d3c08c6619aa3b355db206f840b6aa4cc72206d7fefb2435d6b024e4c1568e9ab31f7110f4311b05d7996ceba6e5e6bb900f8e721ae106a9511f8926de2f8487100698aa8fe995388a072"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_0(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "6ae80303292391335bf9c9387fbd3bf615756c9c27c3478c87e260cf97d47110"),
		nonce:              decodeHexString(c, "01e16247dd4cae6499337d82784ea57f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "035702ef4e112b173112c5851d07b279309863740d38d0d0720223e24017bbc0"),
		expected:           decodeHexString(c, "cf4315598fcd6af1315518c4bfbac0540c589635273548a7b507e7d2e685e5947b87ae257e58faf214f2b58ed10c3bd35f75f6c35dd6d441c93bcd42e71720102631b1a6a4ba247c175ed800cfca6e1e839b5aa907604ccfe6f984f6822e001ab02dd6634964f789cb107a977346693f3244c895e840dfa0edf7f14dc61d794f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_1(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "da2c406c1a40f1be98fdb286078a927f606ae8ec91ab3a663fe213fd8f0523f9"),
		nonce:              decodeHexString(c, "4b49857c625f7a6ca2669aba213d79cb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "52c1c006c577969179cc1fefff1bb0dc42255c358b686c73216da1216f82fffb"),
		expected:           decodeHexString(c, "5b6e8ef0300712aaeb44a52f91ca2f3deefceea95ce28e8c4d9310125a7d259c3423b2cd662b3337aedf7df12719af7be6cacb3a6565070fafc986c336836aa2e18c237b23ff19339b4b5ef704634f1626d66bce9e72555183742b591335821ce9c3a95f2a1beab6b0659ffe6e940b559dfb8a8df1a473308c3154584ebf9622"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_2(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "5b77e885056b4faf9d8ef9c85730fd5075f0a07015c6dbd7323ce63ea5d71e42"),
		nonce:              decodeHexString(c, "9ac3ae89cfb286b31149e78bced8cff0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0da5ab257b389673852cde4800c05aca596ec57c25d7da451911487a5ba6bdaa"),
		expected:           decodeHexString(c, "1d604f4d5bb10e114aed678a5139bb46ee6955d86e063d17ca5ef6db387151430db23aa0b48a343b2d35003d295fd024fc344e7c010649248469da7d9ab7e25097be35fedad1ba89ad66af96809c64ba3b2efe601c1d6c201ca55ea82d901af146f200291b113fbb059a2043285a8d88ee655da76f837908ecfc9bc0bbaec1c3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_3(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "4030b2a983a8e214c9b6053f474debb135522e2b0d50ae98441bef99b93e63b4"),
		nonce:              decodeHexString(c, "d6292c7633acc7a17e797a149943e6e4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ea9ff3344cba8634e8058f093510519c4cb93a1ab47c3123674295280a26309c"),
		expected:           decodeHexString(c, "e98a2d67d2d52dc612437c5787adad2f5daa8290423c45e5909455e755f2d4a729a6e6cb42f36b0e40571f1d7721b40e3d4f773d845e726e8e1e5bd9504a945943f334603f282bfc7c5d8b2a6a1c82cca1ee943be6c464bcf8a4df470d3ddcd7eab1e8bba0090e537c3670f424438e3a0b197297a7a16d12a282558d556f3b5e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_4(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "947b3f93a601da15aaec58078d198c20c91379d5bf1c0dea329691f47b3cdb40"),
		nonce:              decodeHexString(c, "97692ebc8c9b045b73e823500eba5077"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "599fe84d8a84c306ee334a3b443005e33ba0f8f59b636e67d74f8c596558cf8e"),
		expected:           decodeHexString(c, "388de4ee5c19ad972c650c865ec34f7db669669d326f0c5589c5ab2410d64f2d2714843cf5a2288e3795fae7f541fda4bd4d4884014cc7758ec2973bce26a6b4c4da0911deba016424630d30d5f3536e4e7977dfc70f40b5308f38ef6e5a3dd7a060da5c68cce27505745f5768245ab3c31fdcc540d3767b9fa62d4171c715c7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_5(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "c868e7221fe565c13e46ba781417da8cf42bedc9bf5ecab898f64f53a8e5be2f"),
		nonce:              decodeHexString(c, "49240587c2f9e2c9afae3a7aa7062080"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a698203c5f5e559d5f08df28230ab3b1ff4059ce8e8b2b9676880313d134f7fd"),
		expected:           decodeHexString(c, "64e69b9cdd8294573c67e06cd662662e98cbcab9b8fc8c9ad7d366c3f978f10af1bbd9934adb9a31228d0c51a268acb776e3df0d9a5dc413da6236e77c15f22dff4109115e2e7a09d45d43f5a269104a717e101f2c8427049ab6588daf8907e33168eebedecc4701906557f97fd34b724642f285c0b06abc3ca15be687c9be1d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_6(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "5b75c3c8000a81721824e9676662851257ff315b9f2065631e4b1c31a824ed0f"),
		nonce:              decodeHexString(c, "1871bf15ff16e94c9c8d93da29515566"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "994867b413459c17a1e50769cb2dc30a0012c8d594742ed4ea2c2ac434be3386"),
		expected:           decodeHexString(c, "2b40db08a5e15eb1817f05141cb0b5864684ea4e1004c26098b483119bde017526df8d393abd6a2602f42fe35224ea7deed2f6403d92c41df801ab9365ce24a6a9aea908dcf6113e02cb67ae13015b6174f22cd94331a479ab03b7a19de281e069a17b600c6649d7b88e5ba3f340fbdb537a9e4581496c8eaa40e5b88862c4b0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_7(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "bb4458cceb0dce7332f30ce90f69d82825b547bb512afbae3e1cbaaa4c172b7b"),
		nonce:              decodeHexString(c, "60bd6a33bee61d1a9bbfddfee60f7a18"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e88a2aee17cc491640f2e0a693f03ebc48a9579031861df31cdb4264997f8a64"),
		expected:           decodeHexString(c, "5bea97a6daaee540ab6d417ca4587c198f589db5ac72b4f1384b1b1d8c03ec73b297939f5a8b8240fd1033cace0e971e3c3f49239b168576f83dce89533787fcb72537b32f585df1355064f7d737b6c252595f16c42d77b837fb7d4d44bd84dbe84d0bb5a4224487fae3ca26e930e54c27e2ebdde992e76dc4c407777aa4bd11"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_8(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "7e70381bfba7807bc773e2cd683f90c7ad606dcf462767988b3f6c758f5c795d"),
		nonce:              decodeHexString(c, "7e5ab4427029e99df2201d81c3ff284e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e0dd5b4e7ca72afde53c16b8225403bb6e749742f3e38896fbf8f18b7ce6f799"),
		expected:           decodeHexString(c, "8af27c163d25ecf4f539944d9450f5116ea8aa7f97361c696f8dc7d8b3afe6ffc0201459a1733d9ee09b2e45f3b6cd5f45d9f9f45fdc662b569059891f2e9ebc740f78404a0bb1c46a6bfeeeed9c6b552c5c468a4996ad41cfff77ae4d9896cb80af27635a4e2a1b5c07c1b58b49c9a76851144e69037e14f7b805161329ca15"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_9(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "2e5432acdab8ca81ee56f3e69a0c748a72f83e11d18c2ef8fc8aad568e19e91c"),
		nonce:              decodeHexString(c, "ca5f6eb325e4a2b24c00915bc37d9941"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ae3d7ac0622f7dc069e52cbd1584472979e1c8a96bf461c8d3976d8d535c10ec"),
		expected:           decodeHexString(c, "fda5db4b28bbc5d2f6bd33ac98399bcfcfa46037478cf269bf359db228280662718f6d4ca477bb1caca567309abaab0832e7885884e86c4e0b017e8677749c5db2c33e65fa538df4aec446c7ca724af18e45983601785f9800a0c5b23feafbbd349d204ae54b40a019a57a8368f07d70945f22be24aa992f930f92a626bb22b6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_10(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "effaaf06cd997b99783372c515672ede1a741622a2043953451c33668e8df465"),
		nonce:              decodeHexString(c, "fb922910bc6c2ad0461c9809d18a23f9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "53ce26babc294d2f1b48b58aecadab3308d8711892cfa393f358335fc0f4674e"),
		expected:           decodeHexString(c, "8ae535a3cc00da2c817e7f389a9bc997d8e720e394bcd3a6c23ec678ed9da48d3d83e32f73d896da582a5c2b0f44127b3f7ed36d91fc877bbe91339064890a4c2db05f16b553611d6872c8bf4084344c5dae08ca48172f9822244d4ff372e04ce99aed28c3944c47fa434e20e99730baf2be9ee85247f1b94b129c3f6c3e0fe0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_11(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "4a3542cea1b5a7b893851532549884a9eba93695be8d76761db69831bd1053ee"),
		nonce:              decodeHexString(c, "ff0320c47e47b440718b80ab616d7fff"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "869ae8ff949a10c93c05d620e4c4f13d0376ee1e00c71bba5883b3bc41f5247b"),
		expected:           decodeHexString(c, "adda83c611883e01f958febff1052b658b0c84f857ad8d7d18de897de2a8eeaf3953d9407cbc4c059c9ff9bfe67744e13406cbfb09ed31dc2fbcd9626129d0b6e4a80ac3c1b286d81f6f28183a3e8ce26668600560084f3aded94ee57de18657f44350f97532a7c25dcb99a8683ac3d632a37618eb9e2b18545c00b0c2cdc3c0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_12(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "c502a009eb41c8f8220666d4e23354b3d086c8f6e09628d2a9bbe072770c99ee"),
		nonce:              decodeHexString(c, "bbfcb4613c4503268bc90745df3cc890"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6da4c12b0aa128a58feeb87abbea04eecfb2b43c6293b8863de316ae6ed22221"),
		expected:           decodeHexString(c, "c2a8784fbce4fa6e15844fdd8a8441d6b56ebe6c0db576d681e02bdb459e4baadde17bd0b87dfafc9f92941d7ca899a13f7e19ebd492b347f7750d7c43e67028654748572dc91d2002b14427187cf33d421a56efefbd621a84de1e5664df1cb2e7efc36bcef03acae13b05ea105976f840ea759d68004b4043e8ca76d52c7366"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_13(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "304f129afb5ba1e062bd6c0d859e7161e3b9ea53ef526f00329533b6be12faaf"),
		nonce:              decodeHexString(c, "58565e9d776c89abf6cda5e77ce7d27b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1980a2d65b26b7ed3bfc2ba976f14f147ddb7fb18c8543d04686e6adc020cf72"),
		expected:           decodeHexString(c, "8cda68caf57c12dd0a2b628fe875d5e0bba50981415a4ae2d58806af4c23f05978e39e566269076cd43e36eaa1025e351395514ae50711b187ede5cfd8458a7b8a7d9788c2120d1d71f61ea95d84a7ff1e04f514e8448ba2ea6b956aeafdc3ebb6c1cd0c7b7ec76b958eefb812ecb3e86b33a4d3a7b2977f66b214089662d14a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed40_SHA256_14(c *C) {
	s.testHMACAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "c558926a4dbb9f41e75689d9c8aec86797c29f8c77e356f0331bed788b76e9b7"),
		nonce:              decodeHexString(c, "cf83e7715826fd1489cc3054d3cd5737"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d1207c7b914f5e873ea0cf6f06dbd02d59494f6c8d4c9aef5ad180c9bbbee208"),
		expected:           decodeHexString(c, "d3a7d78cfe76ff97bc54f7f694f72f312441d8608d3c1513fd28e94742cb19683a0270839b026cee52e4924dee999ee8cd7dd01ea445cf91008798b8ed64c8458d8678c344d4e3fe3201c1af2fae3bea82ea3af0cdac8e77b5e4d7c2b084e416e5322366ad13e36b455f047ba464cff287af372297c68b51aa4701901943aac8"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_0(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "633d32e3005f78114723b3ea5ac121ba74aa00c52d939667e30c3351b38549f7"),
		nonce:              decodeHexString(c, "37afff504a2d8ac168c68e24d0fe66f6"),
		personalization:    decodeHexString(c, "9f1699c99d60b085bc61cb110ef8ab590d82a970021c3c6a5d48021c45de4956"),
		entropyInputReseed: decodeHexString(c, "3e3347c547f17f4d0b9f46405a54eedd7e980d06a215ec15e89316ab743b7547"),
		expected:           decodeHexString(c, "6e38e82962d707ce9a6ac383a738a748f975eb785611fad5e3f5a4fe44d7b59a98137a2bcdc35f9ee9a1e21bb17df1665cd1397625a177247e2e329a660140636141560610a368bfd499c2e25be318aa4da9e7a352d115db8282ed8d79ecf9cd820360d3d2d1a58a93e040f5554887ce6c9858bc2bb102249980a858498abcda"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_1(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "cb20152e99d8ca5e8095a13e72e0c1bb9e6cbeadbd0bf4e70fc6fa3c81ec5d0f"),
		nonce:              decodeHexString(c, "0a55d433d3744a2f381939be85c97a98"),
		personalization:    decodeHexString(c, "b5bd7429591e5e2914532a7dea75ff76caa39f15279c73092c2cac3b0d28c13b"),
		entropyInputReseed: decodeHexString(c, "d08ca96d745f7e3a9f2acbc1e800a98195522a4f7c607aad62f38b1f63354bd1"),
		expected:           decodeHexString(c, "03e8cd60768262cf4cc2f295506c24f06fb3fd3a889c71521451df6f2efa0747ffb87578b71bcfc37d3a43f85ab4e5fc02d21a90e85af18d6d75e9fa95f7f92942a293da5d31a6b777f110ff862791428ba01b3c1b2fb4b2366318d244a91ec130f4c0bdb8c40cb7a623e5ed020bb305a38b134712151b4891da7ffb06912f4b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_2(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "bdcbcf6d3475ac8903dd32cb125436a6f4ce7464496043a180b260d2a00eeda1"),
		nonce:              decodeHexString(c, "4e63ef1dd04d3e6ca8a8099d7e3da095"),
		personalization:    decodeHexString(c, "e0b7816cae8674b87308541fdd65c0f811b7808f3f2fc15f577d64748ee36d4b"),
		entropyInputReseed: decodeHexString(c, "041d731b3497b41909deecafff8b7116085d8ef28c32f4233f6c660e77a99bb6"),
		expected:           decodeHexString(c, "d10f8e09ba935269d8c38762adcaf28308d25dcecc19ffdbf793a9c67585cb791df65a24da8ba2b77941f701de863be3d6f3c9d13f44459719387b5136534663862b70c7dcf99131de592530b3cedc616898d3656e2064d879149db254d26e72c5466ad55b1ac6fe524386a099aa642ad096a0933f92db03e94170e05da500e5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_3(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "0cf0731c47ca73e8c42942cc61f998f5342e318cb8ed3b1869020e3dab1e1267"),
		nonce:              decodeHexString(c, "604c64154f914ed0cf63c861653b78d4"),
		personalization:    decodeHexString(c, "3050b2df2f59763e443caa925a54de1e5ced8759b554b5f0f68cb01b4150f999"),
		entropyInputReseed: decodeHexString(c, "eda082edfaf4f9766de29ae2cb930fb1bc26bde6d18ab16f66fbf4b06d3e7480"),
		expected:           decodeHexString(c, "39b3f47c024bc84aad8091136d341eba3a89d06577aa4fd3d24f8b7a5be4280fdf62353490d5f66c1a7d57cf198a633756c0907186a71a4fea41c3fa42efeefb0ac285ea8587f1a8d8fbb783ae627c1e858ffbe051d6b7a2a518a24e71d554e8a0da3d54bc69e4ca940b7ca320c4bc44df1e476e05e489a2c668702b0bb8913d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_4(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "97155a624ee42b974c4bc9e0b9a737eb790cde2f0a93f8ef2c6fe72015c5276b"),
		nonce:              decodeHexString(c, "444df2beae4ae6e9a640416fc3948dde"),
		personalization:    decodeHexString(c, "625c7ef0fa30e0cb5c28ff3a2396639324292b20069ecb1c0163d966f2520e61"),
		entropyInputReseed: decodeHexString(c, "401b91bbd726eb24eb19b4f36288192ae07135917dec75b7f7758177767298b7"),
		expected:           decodeHexString(c, "8b1c56cd415ddf123bc5bb327f0ec4cf53a649831d7c0920e742033ce183a4423c4b162eaca3157cb194dce06a543bf155164c7041750fb3afc77892bd7b452a20b6489018e5369fce4e7eb79354ea8a033880a6db0a79ee0c1ca15d807512312c3f2d82bdf0068364cc3eae763be24edb39356dc1a6d1c5eb093cde4bf9a589"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_5(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "88e9bc0e56bbbfe8c07f311b955d2b877fe7047f3f85ac83f9da68ac2abe36e2"),
		nonce:              decodeHexString(c, "2cf7593a98122525c281d3cec1e2b94c"),
		personalization:    decodeHexString(c, "0d28961b6abad30191b21470ba1ee00da1703790dd8a15537397c73e80eb7fbc"),
		entropyInputReseed: decodeHexString(c, "e32852b81c80f37d79cffd3cae785910e79232813d174a2d14f0bf275f31294b"),
		expected:           decodeHexString(c, "4a6b13bde6cbf866d1b60942488cef4086367fd4e2445f73edef0328f6941d4084a4469862812ff6e4d9e4192e29d59d562e5dafa0ae10944f8b62ad15a8f483d6d10eed6c4fe42645587b6125d863653710bd6a21277ae449b7d2a979782974a731da601b29bc8e31fa121b8b7e95d1eb30a75b3d4fb2131e17fdeaa0395ea6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_6(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "df8188fe2b7bc5ed26f747c93ed48024e3ed627530107d94906bb2debd4fb92b"),
		nonce:              decodeHexString(c, "0dd750c74f8363c14c172b4098f52058"),
		personalization:    decodeHexString(c, "8a9ba6bdb3059ec88bb29e1c516051f8f958b3c7751fb37a616e9d4a6cf17a79"),
		entropyInputReseed: decodeHexString(c, "1b2145c0eb75775030d1681c848b9249dacb8137a3a0fe26544d17a2374a5182"),
		expected:           decodeHexString(c, "b925c27c1b2a82e6969a90fe4e4b6f27c369e82b4b03479a9a152aca1288b262420faa6c62da1f225dc7f3125d42885850788b264410c8149eabf6ba164c1732a2b60b77a525ec745bac6eda51ec7d88d11b40c2e12854d392e7c6af2fff7aaf1544ab306ac31b6d971b70a82a672c81e928204d04960ebff5bf5e38aa897f23"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_7(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "6aeb84cf5f72982bf7b1ef4ca16f8a27965c35b2a55561946c6d2cf6a6f9e41e"),
		nonce:              decodeHexString(c, "827607b806df2c423741209bed59b4eb"),
		personalization:    decodeHexString(c, "c25373b61d8d582fc268cbd6493a9161eebede96c43b0295281cc8ac473824e7"),
		entropyInputReseed: decodeHexString(c, "57548126381ed8626705d3537122800c4cd9ef8132044dfd0f8d27d5ebce55d1"),
		expected:           decodeHexString(c, "b20c3ae8133b8720498c17fca0b9a2f7045726fdc15e71a6d39e189549b02d3992a74bfa9d68ecca5ff171890ee5bafc4e59bfc662fdb2458ef244e54e03fa43a0616797bdca83b6ef8f36dad280c9dfb1ca56d3aa5e2da32aafe2f689f51a43c7547d24ed94d02a567f7855aaafc8b694ea5f0bb5602f72dabf8656e74358b2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_8(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "49ceab47ef95585aaaeb98064c61e8a289eee5412f4af1fb6e48a12358f9cf67"),
		nonce:              decodeHexString(c, "d48e4a8a612cac57fe7bc1788c64836b"),
		personalization:    decodeHexString(c, "621e313b133480d5c471bae8da097a0333b2b2ea23f83c1b102850d411d1515c"),
		entropyInputReseed: decodeHexString(c, "84407b20d0adc22c07bf2494080ad286938b2128f824dae3e44d3c71818702c0"),
		expected:           decodeHexString(c, "dfb9ccd2749363fd993df5db53826dc36adf4e040878f6851514466dd7214ba70d35f474b22d5d180d71f8ca0049fc90156d6d796708280ce1d225184b06dbe3d798b7b9028562d222f11ee8fed9a95587a6536e907adee3102b2f3d92db246737a9bc71aaaa4f40cda33d33a3379d2e8bfed1760ec12801e72a384b748ffaf5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_9(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "f322b258c62951d37ba680abc49a61983f3fd89973940c1d4f0765c95d0d7078"),
		nonce:              decodeHexString(c, "0b79d5befe4285a73ea4b48e2ba185c1"),
		personalization:    decodeHexString(c, "0532bc7e99709006aa191b379acefa1645c67d2f5b61f13f36f868bce444a529"),
		entropyInputReseed: decodeHexString(c, "2e4e16748ebf365902d910a01d9ca24aeb8e3e5458edfd88f6b909c1ffc7468c"),
		expected:           decodeHexString(c, "855ee8e0060cb8b4fc5692073f62cc3e19a19b89df2df97c2a21879d74571d3362ecdd1ad9e46458e35f5f3580e766067e3d8f7258d8eecb17a075f7dc7523a478b5d177f673659e3887670edf6e8f0ff75e26d41adfee6ae28fbe5c2e247e1036241e1f5bf316fbd9adb3c15930e8425ae75024c277029972f0d6c645b4a117"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_10(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "33a68bad0fa344fd6a46f75f0428cbdf2711d3f0c7ef0f6a395073ed70897baa"),
		nonce:              decodeHexString(c, "1892799feb410b9dd6e69bf4403efc20"),
		personalization:    decodeHexString(c, "677eccd0c6e01a263fc7d2e2c2d0c6294a307bf3ee1ba35372c2166d04042972"),
		entropyInputReseed: decodeHexString(c, "a6447ddbfaf7ea07e10a95db1fae3ea86d103cfcdda550f1101b02ddc5ac460c"),
		expected:           decodeHexString(c, "2291433df6fa572589c3a6513f381af4212787499bad0864cb36d0ebee3b56e340ab7bdb9f3b0e0d61dba6b01435772108bd8921cfc00bebd20766944184046a84f56c4319695880d24345acc64f8579d3ca30c1f54e411cff515ed72a8fcaa5d2a15fc2526d5d116fa1783fff6d70d156b6e33bf31d210d3ee79c44b73eaa7e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_11(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "3136f442dd3cdc249538bd5f0eb355c7670add6427d1e180317b7d6496780b83"),
		nonce:              decodeHexString(c, "836557294d844f2180d37ac057cbb869"),
		personalization:    decodeHexString(c, "4834c68e72e25acec7ce577efd4dc9746b8abb89a446ad39db7042ceb6da9cde"),
		entropyInputReseed: decodeHexString(c, "c66a4865fb9b0f86f0696d4a2e1ea5f7a393157d096929dff45f64e745d06a3c"),
		expected:           decodeHexString(c, "edb81168130ec433016e07429374073137e0ec1d1464e63ad2dd24bfe5cb763aa8793d8fb32eb2c70eb670537fce9f7e53c42d4bd85dbe0b2f50f440cb132ce6cc46fae10869da2ae6ab8c10c3a1ff2e4529e46c8f843e0cf931b770ecf0d0639f1a5d9394299601714cddabea3d004d24da005666514848d2fe0a1c07c78f11"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_12(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "2e9beb64fb0fd6fea59b5873dc0a946e8af68afbf8f16358124b4a5679a1a8db"),
		nonce:              decodeHexString(c, "05fac586d88f7ddd6fd849e5bd9332e1"),
		personalization:    decodeHexString(c, "81a657d896e294db4977b52653b8ea29c89eb2cdfdd995676c8135ba6e8dd31f"),
		entropyInputReseed: decodeHexString(c, "0cc81f757d01427366bb764b40378c1024cf88136bcc36243cdf111c28d976f8"),
		expected:           decodeHexString(c, "de247230bc5e805a6788a4ce2bdd428704c07668631f85917812cb04ef3b7692e7263a433a66cb78504adb04f5b60395684783f41a3c937ad0e10cb69c4e8095477ff4378b8a3ae06c9a03e985bf14b999d276a45c27762b4c09c53872fefcfff03496c1c8833daa4bb60928b44a6c63aa440403515365907ed4d6cc8787b892"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_13(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "5115f68ff08532abc3077b0a49f9eb9c2902fab523439fb689157ff9f03997af"),
		nonce:              decodeHexString(c, "41df1ac01f8ca029fff6034d57d093d0"),
		personalization:    decodeHexString(c, "1e92f8eab8166825915a56bbb00c4b2577cdc99c36126269fcfed682b12b06ed"),
		entropyInputReseed: decodeHexString(c, "0b245e6e6ed23e171a02d52f1f1a520ed50d67aedcf999a9063eae51b3b33e08"),
		expected:           decodeHexString(c, "5b1ede46c58a3d79cf6305ae59fcdedd1f88f1fe3514f6b81667eb659172a120b70d128d23cdcf2addb9b97cda137ae302bc993e9e405b5085d8a0df2e4b9e0f4acc644a0bd49cf60dd2170c0eab8df5373978d89e415ff6891080aeedede6266ef122d448a0b20574cc511c3bdf35384f58878a04ebcc862f2f1dd3c93a101a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed42_SHA256_14(c *C) {
	s.testHMACAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "dc5904bd752c66e025072622824e4e789dfafedcbaad3356a344953e002ff845"),
		nonce:              decodeHexString(c, "1aa563883bba444c88500ecfcca2af94"),
		personalization:    decodeHexString(c, "ab754f51c03f29eb7703ca5e4c8b10e168494a1f09b544175bd87b687bf69f7d"),
		entropyInputReseed: decodeHexString(c, "bbba280c3e2207212f18f78dba2862920c2e1b69b8c9531dcf8a5c981bf43865"),
		expected:           decodeHexString(c, "2f7d0053b5083ae049524f18a25d0783dbffd2e531f673f87bbc2871c0c4bfccbeb544a09dc208cfc7582b4884c994bf84aaed1b55cd88e9564302088cb54992c40026cacdd02831926d11bf1994e08ef2e940f1a7acc1cb3bdd4a3afb2ee3a7defefb6ba87a5ef1828c840286631cf1c88422ba90e3954b421b0a869a9fdee1"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_0(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "ea28926cd5df4fefd572c9103d87ffb04f599da95e1e6fecb84f53f73fd00d6c"),
		nonce:              decodeHexString(c, "cb40e16655b9a2c71e8e3677b9ea6c6f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3d2d1db88b8462787a5576c95fd660734fb681f894e8efc47e3be3bfc3098e40"),
		expected:           decodeHexString(c, "e929c6e749c5175031dcc926bce8d529147b5e940f61d0ba1f02831c80c27a23cd4b5ffb507c7d09a77e4c8427e29010cf1c8021a80ca29504caa350a27d6ca4554fe4d8b0235554f251a59ec6729d802b473083b0bd6ca83f6d945b3d1de2b706bdcc3b50ddef57847fff88a4498586ca6afe65e76c2d97f87ddea66f5563e3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_1(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "bc3c346928929169c7a00c6f532f7eb1c4a77d42193b65697bdde5fe59ae4520"),
		nonce:              decodeHexString(c, "1b2ba33da49d3f6cf84039cd99cce50f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b4254aab62c415d8323d556aeca61417b41b090465480db8fb864f578f567b3d"),
		expected:           decodeHexString(c, "2602fcc0fcdb71046da4226e1277d5df89225473e4564f047e60610d981a18e2b44d79a93cd864b80fd377685fb4198ece5b2211aeba57ff49fdb6128262e2836e7e8166f3c3d5a93c686a9b70aa739c66f85f84c44c314662d7af17ad625e55b6b4801f0ddad8e636854d228f01ba8f2f8120762052d2894819a9fbc76d6e6f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_2(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "0ba038bdb7ad7bbe77a6c7daa33a2bdfd9a1a5f31cd2e75377c778f492f5b3cb"),
		nonce:              decodeHexString(c, "17a134234a30e09170899c115b43ca16"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "db020e00bace417ba7687e829c1ffc91d22ef93b27bfe1107732cfe082a05cf6"),
		expected:           decodeHexString(c, "01792f59d0a63defd87d13188b1aeca98c03b11b7dd6698328172dfb65ccb695a1baa58e44fd7523fd176d270664337e598aa453643ce3c6ebadedec6311e2e1a6ed2252477401041253d3afbadac06e4d06f46dc3d7ace287ee3e23286b28852ee0cf1e7ab3adb0ff1007d07716b09c22eb1380bbd0e8dac482df480d41581d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_3(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "2b37c70c56a2a1c3d5150edc4c31807e17973f4afd853218e99403d8dd9f195f"),
		nonce:              decodeHexString(c, "a5110c3a0f45ba13b8ea3f77f3335849"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1450bbf9f6b68330fa6c3eeb20185ecbb30c4ccb4b7b5ee3271263a643d4f3e9"),
		expected:           decodeHexString(c, "5714e08ecb34e51c1b5b91405c812e8010729b6995b6cc9014809c47c3b6baf110134575146c6bb43d20fe16386d1005b5641bdc12b6454f3bb74588b616c654bdca84f071364efd8d1ee666cd60e4e2a8a3de99e3f56a72714db04f15aa0376aca8b12d50318c128e1f4ce2584009ed4d7e57544aba9d631269eff995319923"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_4(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "ab79f1ff8a69c7f7eb33e57f03c5fd8458c0afa9d27388b78420a1ac8d98be68"),
		nonce:              decodeHexString(c, "b36b72a04bbdd285968d7305d356f8ff"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5ce8783b453ba8567e7b6d7a63ace5b4eaf87562420e729fae9439ce3a68dc86"),
		expected:           decodeHexString(c, "9d10404b952e37c1d7007beab7f8f1faf2361700f1388bebfa83d857acbd6520947a4a069f80278dae1d5a8eeff9d69f633018310e2a16acb908b3b029b5bbef71f2a05970f544adcfa6e707799fc1e6b78b96ea1a574f34d44994e68d1c40bc2f397ae1a48728a92b8b4d46e34722ddf24dd3a035262e90c5bffe04896b5658"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_5(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "05fae5a20803a1442111ac0bd1810186319d721d2946eca264fb31ac8d8cbda8"),
		nonce:              decodeHexString(c, "97c41ca669e223eecfb2659941ffa1bc"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "df4f01ea4a91aa2eb65155f153dca70afce98ff56bff2a1c941178c2c2dbe918"),
		expected:           decodeHexString(c, "f3eb85c168377931a2f677f1064c82de815eff75701b031606098794eea71696805485f777ade2f250e48fd58d2358aa8eebff597d396a7afcf38be65e0e78405d35ee3d8dd2985cd62c26cac1bd0d9c6e67accfbbe2bfda87d50de6415a4a9baa273f997bdce903271a0582befc402f33fcabb6db6f145252d870554d7891d2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_6(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "f07ace299ea3c1049d88378e3a64d6fe781b8772cbd192c9692a4d8e7aec1987"),
		nonce:              decodeHexString(c, "87cd0d8fff8dadec5b8bccd085f41a1e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "42fb6e92ee263b1c03a63e5beaf80662ad67b195e155d0acb7478a8293831fc6"),
		expected:           decodeHexString(c, "3e3eeb53800b4874bdda331c1e9b98c57700e7c206f5f3d0f421e3c490797084c09ed6b4bd5885bcaa42e036870d633df8b3bf1d1baff588ac9b24e0827c26ed4f0618d912d39004cca9739e0b9946f8927b580bb2f32c9f142a7b1c09b32a405e1ef5209cae790b0711d14993510953018f279c8c8dfd06648cd1b1a58bdf93"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_7(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "96c3e7e5feccc0618059006c735a6ce0b5114d208c79143e1c9f8ef5036e330d"),
		nonce:              decodeHexString(c, "6bbb09c41651c1c78c36c25e4cee8aa9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "aba51086577c6948b892cf5254520bf8d240c2e3b0924afe6965acfabd7e0abf"),
		expected:           decodeHexString(c, "1d7ec48234bb2aaaf54fbd55ff0663f0fc82822531f666ee7f7f5e257007f30462428a519d86a8764ba0d6a2331cb129232d9a5c03183b0f419d813f4c0e00e4be5dd16a87a9faec8915a39fd2d406c54eb8aaf228a09a46db55fda8a90b27efc96c461e9e9be08e27af86b01750dbbfb40245e998f0679686e18d801702ffa2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_8(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "210725c60839782d3665a300adcf81c6d51478b1f12e5d53104beb385ce15024"),
		nonce:              decodeHexString(c, "129a705c88e4fdb167d34794f6f739b4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e12e9cc523d618ae6cb667eca7edd35458187bd19e9079b5c5e1cb971e380309"),
		expected:           decodeHexString(c, "345b3b8c011c787e9063f811d51f096a31cc1ea9faa0b8f29d916be1b925a4b71f8e6db56e0e22abfde3f035f2d5a6fcde02e5df8c0befe0c00438faa4277ca790e632318061fbabbb83dc83f719f3ceab431e3fe80695bc44d74d0935c8422521ce784a923cacc37517b9dd93c7c0608f955e5b48680b537142459a6d7b79e8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_9(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "f87e047438c6f5dc41a5e3bd0ddb386c99407bf276b57824d4366e0973ef65f2"),
		nonce:              decodeHexString(c, "73002b5ac3cdb5615a2e1792b96386e2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ca22f853f4371ed334ab94444b58a4f9cbdacfda96e4a9e46c9cf776a903990d"),
		expected:           decodeHexString(c, "5d54827fb37fd86441ab4eb3796089de39f113244158236ec1629969f9295f37836b2d7d4d6e59e0bdcefd923c2c442118c8ca3b00a258beecad7d28d7e12162a420212918937a4d0da5ea7c0b9602813266015f385ed5c69a48375e9b3738814f16c085d5cfd1d2e6267e1c5d7bad88f20b3ab0ab279fcb651020ecfc150763"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_10(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "50ebb38461d3f26c5ac2ecf53a03417842525bad577f057ed920c1c4970e5529"),
		nonce:              decodeHexString(c, "996c6b9db4a1aab9d31c754af49a5445"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ea898550cee38888c038f67b4912e48aa9e378ff3adc9cc6c5baee8c376fc708"),
		expected:           decodeHexString(c, "773771f1f3903763f4f9d6b21673d2a93f6e4d03636d381bc26864b46496e9588a064b00e846a8d91e302c47dacdab7388f5cd0093d2174e33327f9df6537124ab91cf35cbeece38f6373a8b851da2645dad5cf01a59f53180a0fbfeb928a71090d1997b055fa20f14f49c28dc065ddd84a14d9323192b2428aec6f915f90491"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_11(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "c13d6cd63bb7931174696f3e04a0c41cb0b2561134e847ce03e36326b803f8ab"),
		nonce:              decodeHexString(c, "2084ab32374392ea9f6e8a474f18e9d7"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "aec5a6a7232a52b81ce7e981a359cef1bbd2f1eff8488371468cd1f4147a89c2"),
		expected:           decodeHexString(c, "daea78881737cb26d60c36ceb9fec3d281c7aec54b4b9850937b373b2b2621fe077585a1fe88265d84f225552e5c85cbec8d00069648065ac12073aedce8c940460949b597667ecfcedabd7a86a979b904a24d32db10223eae5a98a0d1b6571b8643df2c6265a5d66cee9f4abfc5778146d6fb2b853d82636c1325b2d1ef4576"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_12(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "67f98d4d9f35a8dac03d199222b07c785f11dc517a8d8840f5fea4b6fd68448e"),
		nonce:              decodeHexString(c, "1dcd3a1bbb4f94ad78355842893de035"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f1f9caee31036a2a200a052d8a1e065920b8363fbbf1c371a23244c6835113d3"),
		expected:           decodeHexString(c, "9f24a56f985851262d0cfdf122b89b3b93a1dfd97a297fb1f6fc39d6c719942e28977bde91cb3941c035e3ec454dbf9dbb43576920dc47273d3f82ccc8a8fabc1b532f9d1c487db31e7eaac3325edd1fd80870cf30ccdc87a1fa4b88eb7a1c464d0b68efc3dd760a3259ad280d49642bebdebc1a5829f32f09fb777afb409aee"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_13(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "0f4a78c8623d303154398cb9340857ba937388f95b0197ecba487c4cf021b3ca"),
		nonce:              decodeHexString(c, "6c02e69398ab7b7dfc4ad83e7f3ca8ff"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "03020b4511b2529b2a3348078ad0318ba5f825a1bb0672dc894cb4d1dd3e294d"),
		expected:           decodeHexString(c, "f5b9a5262970b8cd94482ac6e4dedd8ffdcaca0fc37e6d0fa71ab10e5ae07487c688017dc01514f857702b28cd8e4f1b0839b9ec4d6f9e07e4551e150c91cd4f4aa22aa7e8a5e1077869b2454bb8cddaee69a067c6b0dcc178fe1da6ede5d53269372536f34bed378566cbd8986dc1ae0848be749079dd572d4d62e51fe659ca"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed44_SHA256_14(c *C) {
	s.testHMACAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "001cf2bb87ee4aa145011908ce79920700ff40ce765099292b7b7aec68eeb05e"),
		nonce:              decodeHexString(c, "b10115ccfefec7487c872412977067a9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9b5dcfa40b5c5a9dcae4e8cdf16e1458d49164b317cefce63f28c10d29229974"),
		expected:           decodeHexString(c, "e0f073c0bb4024c46cedd56f6dde44677d8dcdaf8df939e2cbfaaf0fc3810f621b29ddaa7810ee3cfc251232c4f8b01c5664e4af5ea0a7a20c768aae83921863d7e0ff12778ee1e6e4efeea6320f9c8dd439e7987e620ac2ee409652ba7f07708ca19a2e16f4d324ba1acca3a4d244302438608ba3b64cae05545ad867194951"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_0(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "22d8c62bcddf5da1dbdb093d6b1f663dde337343c56ccfd40acbe3302309eae0"),
		nonce:              decodeHexString(c, "2a4b8e66deaac38b70d9ffc20c585da5"),
		personalization:    decodeHexString(c, "0a337038f4b4573ff43a4321a586ca777c30301267d82fdf937198ac56c7062c"),
		entropyInputReseed: decodeHexString(c, "0b6fd179e44f149f062da4f66f829c3c58c4a0a4f75ac2a9e0240d43bec30e44"),
		expected:           decodeHexString(c, "046e19b4d8ab38dd08defdd0d7c30c8c75d5689ca26f2bc994ac7fca4fdbee80677dfbdd851e7722835844dca79dec4a3fa82feb884df7d474bd972e12619bd5d6cb1b951eac47eec2581195b531534ede507af6f7417fca84532be7ef5da6738dbf7aadfcd7cb888862b52ec773cf3fd00e6d4efb3071af9b70a49935a3ba38"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_1(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "6411756dc7aa3be096ad419ce8381c0910d2a2af5e944d8ff21f2fc5666acb87"),
		nonce:              decodeHexString(c, "73b68f5c749fac09f01ba565a75789f8"),
		personalization:    decodeHexString(c, "3ca3d9146e2ebff21a287d385c4224ed23596d745017f3b81148c92f3b9b27a1"),
		entropyInputReseed: decodeHexString(c, "d770128e711a8df163f4e289e775032fdb473aa38f7e1d291726121378e9a8de"),
		expected:           decodeHexString(c, "cd72f809d9cd1ae13d995d1cac368edbfff45697deb1d1b795ffcf354936f0bf61cf550d043f9d2fa46281a1393eace3847d5e4c6335182f87f465802989b255701f9daee03f591ba5c080d1f0584b027ab3b1da5735c93611d9be11a79c0fde3bd4204ea3674075ea967a244ab1dcaca6f07b48bbb0b7e27d8a1a680fa0794c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_2(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "68aea63aa5d6a83a5f71e33268d162a58d8ed12ffb26c825703ed0d100dfd1eb"),
		nonce:              decodeHexString(c, "fa799c677c361c3e3eb321b07308f2fd"),
		personalization:    decodeHexString(c, "fd4273dfd5b3bc1c6a1246f54375e9a0022864dc4008f19422ec9c0ff8a95644"),
		entropyInputReseed: decodeHexString(c, "c6733599704ab72044fd286e3f327b53e2f04c33b17544a42c39905943ce20e7"),
		expected:           decodeHexString(c, "389253f73e2ed3f9109e6f98d889b1554f3beedcf9d412aebc07ba9ac850af07913fe1c99cc824e94e55cbe99ee23066e8e0188390afd88dc3e12d41b5b27762a96b2db305bf7c12065309aab571adf35b269bfb647939794c2e7d1daef35d857455deb0fe12451c417e95553011812ead9b8138f7aceb75a55edcbf968e1f68"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_3(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "f9aabb49600fef8a9311c02880b3ab2df90abbe07f5143632c6c35b573ffdb8d"),
		nonce:              decodeHexString(c, "7c64aca5a121114f6ebf5f629b082b61"),
		personalization:    decodeHexString(c, "f55569a6dfb87769cf69b02b4043a0e9055b5aec53a31d24595566d522f76cd5"),
		entropyInputReseed: decodeHexString(c, "11dc5843c55d033b1801016bd0cf5d799d768cdc1ee3e21da61a0227b983158c"),
		expected:           decodeHexString(c, "3b6aa699d96f4f1dd29c19c558d03db300db1cc92fb1a0565279db1d055667a7844934f04db000594cc066b04be568c0dea8e4ebe5467e1ff9af2c62723b90d4f2c22a6cba2afe15f5504503c8e454dbc0e80a203315a8f459f9eafb711164539defa442b8f3520ebed4a5fc4a84461069eec4425aa3eb88ae6d83ad7a239850"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_4(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "88a76c16d3270ed3fcd176f9d793fa0c35516574c1cef425b6007628afa35e2b"),
		nonce:              decodeHexString(c, "ff16cf7cb8e49d482cfd3994abc5ef8a"),
		personalization:    decodeHexString(c, "9213c54e3d002df8741163ab9d7e0757cd512c691ad64bafef95cb72539b0ac6"),
		entropyInputReseed: decodeHexString(c, "493b647ff0b3faa2921f12f8f57b919329f2af2fc1f14576d9df2f8cc2ada7a6"),
		expected:           decodeHexString(c, "f1330a85f90037876b3749203e849287444a827f0a58c249ff868fc1adba4dce285e076a1f8ae1da8cf9fe14931e8164186c97a8feaf24583451f116e65f8e432e7ed55a36683120377e23128dca1540fefbf3af1b56d5c74187f5286d0a95fb55931770543060ce8df08f3c1959a1f4fc36b64671e0654fffe70d96d521be21"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_5(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "f8f2c3194e8c4e909e6f052795030718cdd6235303bde537ea3c7053056226e1"),
		nonce:              decodeHexString(c, "d50ef4d06d00745465ce7b08cd035176"),
		personalization:    decodeHexString(c, "ed897ec33ae3f4b0c20b128d94615fe387270f8f0d665e119b9b5ad10fd3657a"),
		entropyInputReseed: decodeHexString(c, "9178492a925112806b27802e0c9b0e70af3fd5b6db9af8704028025635c5ed27"),
		expected:           decodeHexString(c, "0e50d9db9a5eb2d0b0d5c45301707ee281866879e072e51696e32819b33a44f0d00b88ab5d6c31d91988b1757ceea8936ed5d0ad672990f4951dfaea994dc00f3265095bdbefaf1d4224da616888a806609d2805cf0f5183d5e925261e6b2490dd85242fc9fbd426d77ae8339aeac18394bbf351e061e4956138361d11b35772"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_6(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "2a65b1299d034b954007ae773403f509ec8df52b25ff577919d33e976ffd21a5"),
		nonce:              decodeHexString(c, "8080aba8c9f7a04ad41c41debc8d6b02"),
		personalization:    decodeHexString(c, "31a46617e8eec915707b75f7ba7881f9634e7b015ef2a2fb51f592fdda27fb20"),
		entropyInputReseed: decodeHexString(c, "e3c8815172ecee13e649ff624c6243afbb46602bbfc3bd28d0317bad6856c66f"),
		expected:           decodeHexString(c, "5b1c01ab1df442305daa8998728e1e99975b32327da727f162aff5ecbb01d4d6e8b8551f7abe1892625012c248178b2ec12d64d84063f87f127928ebab06cfc377fd9655aadba361b93f976e5133b6fb8745f130d8c5eae6f0d3857fe5c68904adeaa224ccb93a960ed79ecf55d6af307d287366b8a2d466b95edba142e86d12"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_7(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "85b60faa4ebfde825f0a4970c80c78e377a51dcebb09453a03b646cbdc1c2f0e"),
		nonce:              decodeHexString(c, "fb4dff7e1ad37f1d00a100de0a9d5d2b"),
		personalization:    decodeHexString(c, "4610c56563726c7baa3a2112904ad8036255c92fe748d65f1233354896fee72a"),
		entropyInputReseed: decodeHexString(c, "854056927b35053b57448a2e0b6c7cf371ce10797eab1c0a009d7abd1a067ccc"),
		expected:           decodeHexString(c, "1942a4dc08fe8d92f5fa581756ddc3f7a321cb96933cc193711a0f6440a76b6c5a5db8069c5c82fe3e1cdf3f3520deb1652a9698f9726fd4048babaf07050e937d56542899eea5ec2c16919a360de5ccf49eeed115ee02c067b72552bc4d4eefb6aa91a233dd7317959a7e80e16b17379184503cbf3931a69e902d97f820f803"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_8(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "bb7147f67454517b2f2b103790b44247efb528a77a05aa220c8fe40b323a1f0a"),
		nonce:              decodeHexString(c, "33b42b70eb65d985f2476136c949ca18"),
		personalization:    decodeHexString(c, "7eaa52f6d435298fda70ef9abae90eb54968bd2b4ce749836cb2b11e452f6768"),
		entropyInputReseed: decodeHexString(c, "4c2686e2edc7a25bc9274642b886f1510c4d0f00715b75901a40f3d1537788fc"),
		expected:           decodeHexString(c, "50dc60bf8df4b73e0c95b3e17364111ddeff81442460d6c935e1fc5d2ed295c254c5c9f39d18f6540e697a1a7fc588b37e8fc45f314c06e9eb04458f3bd18d23fb33db2a3185a0cb2b2d9ba6091538e85c2d6fbac0201fecd337d268347ad8f304213c3af945ca31edf8be847a7b56d7bdcd308399b06502794443f738f6ee55"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_9(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "d7dcdfaa81c35119a46951aed8d8899502fc21b909c8de8cf3a567c1ae81161d"),
		nonce:              decodeHexString(c, "4c2449567c0867c9f43b752860e34bde"),
		personalization:    decodeHexString(c, "09417a1912efc01465a8682ff71378706524b46a0c27220e9e40ec43073c563c"),
		entropyInputReseed: decodeHexString(c, "548a97b112ab6ccb578dd77599df0cacde332ac1a60088dc018d183875b61c51"),
		expected:           decodeHexString(c, "b200d698fc72f01e9709e53a0ca482ed3be10e277296424cefd11072c7b19bddf70ff137c956e4d11d8eb1eb29bbe4979cba9e2eb941f529ea9684cec6614a5f8c30950d9544148fc4c92bb8b7ba899e721748a1d6bf5e8bb6429ba9020e089a7c1e910c8fc708e02be75efb89f00d6f8b52054062e43343a60deed39cd8756a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_10(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "79adc5ceaef771102401acc2fcb3d01d9bf7541ed86e8aa16c938d9556829a8e"),
		nonce:              decodeHexString(c, "379d9aebe0bdbca07c774b5ef1ee732d"),
		personalization:    decodeHexString(c, "8b13326a521957ede004235cd138767b7f45f550f2fc55b1f67cdcc70923811d"),
		entropyInputReseed: decodeHexString(c, "e268cea9ddeb0cca5388e12417d90c7fab629b2b2c144ddc8054d04210586714"),
		expected:           decodeHexString(c, "008fede441e550955d759c89229359f6a06ec2c06ce2dcf42bb72f255c28ed758b38a5f7f7ea9451a1c9b7a688d379c9d36fa7c86eb11b67f4e3b983fe4b42159fa623f55eea9fb1ff3676ad547df469607a03e8f832267968c8388b2db849166a98a98aef8d9e25888b1f6aec3d66a026353259bda902df455e6d2d522cded4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_11(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "376dfb59424145420ac65967145f6fa51aacec27bea1d3f9f8b7616fcb36f73b"),
		nonce:              decodeHexString(c, "564c1cb82bef2bdc2c699955bd2b0777"),
		personalization:    decodeHexString(c, "a0839daaace6ff209fba71c6bbba0584497cff775d86507228717b576f3d5ed2"),
		entropyInputReseed: decodeHexString(c, "230da72e74367d921077b7c38c11eb9e17131f7ee4ff580ed883530dacf34199"),
		expected:           decodeHexString(c, "a7feff8c6859ff3d69543be61657c8c19be12b9f2b5348b94f237004437a20c6be8619d531005fc47fcd6a1f07380fca9075fb1148f5e3e15716998c1268bac972f94e1b3edb89e286a7b36a53c021fca60453d7fb03a4eb00960de31c458b377986af33fcfcefa7f6c938c7fc618337d4ec8bd942b23ab01bb3b3de270cc9a9"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_12(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "fdbee9baff0d021718bc0732ce5b2e0bba133bd319b4c5375cbe32da8274ef72"),
		nonce:              decodeHexString(c, "6848a78dac81743c0ac4c1d7a08b21f3"),
		personalization:    decodeHexString(c, "ebc1f9768342632f576f7af503699598d13bba5fcc8ffbe294bdd16b8c865fad"),
		entropyInputReseed: decodeHexString(c, "cc3927645f65f54660c169fd3394a36a989c760a287f23ee8be23d0bcdb2bf6c"),
		expected:           decodeHexString(c, "b458aed88a53cb5a1a157197b38079cda455bedbc0e69f7c66c1ca67adec05a411715309582c7a2d5709a4d6f27c70686627adecc68f3a2045b8e7ced5b92b5dfa4a36e555fd4212f1e033d94a523b16f1a4fb15b695d58df4a5be8ee7a2b9cba0af05f294cf0daf54caba5bfcd289c6f7d978efb41263c1ba0debb06b56f3dc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_13(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "0d1015bce0f7bac3c07420b4f3f9beca056487897ab26e8ad5c339036c87a7ce"),
		nonce:              decodeHexString(c, "ad72179444306c677bb2709d1d464efc"),
		personalization:    decodeHexString(c, "e8ce89f4b7e0cbb3a2fb7479d95e80b36eae5c62d7232f26c5a9103599a49bdd"),
		entropyInputReseed: decodeHexString(c, "15589857010468ca37cb83add59cfc733f6e97f953e2f8b8b98fabb81f608e47"),
		expected:           decodeHexString(c, "cdb7a115161c332a97caeea6eb7a6bfd299a768a8f7827df163048f4dbf1750ee1e84d521b8001ad7dbf97a867fb2b99d21f99524b8411363636e2d440e94f26f2dd93516e08964d291f49961ad2f3fa21f6ac7a00da08dbd83c520231a97e4829f676fbc18717abcedc4dee2a41440d5797ab014537a42f5953a959535b3c81"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed46_SHA256_14(c *C) {
	s.testHMACAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "9284fd4660beb7a154349d74e2ad8442a5ac0667ac4d28daf0529dac5c805a21"),
		nonce:              decodeHexString(c, "afe96e33c6d5bef1652821dedb964183"),
		personalization:    decodeHexString(c, "1b3419bec2513531fa5fafb42785eb07ec01b61a1e06452808b227f5f5c873cf"),
		entropyInputReseed: decodeHexString(c, "f4942b20a42589a22e1b3b2214336d1ba3b11753937b93f1d7c3636b346d70a1"),
		expected:           decodeHexString(c, "f0b87f8c3c67f4df3cc613c3c67999675951177c2d7d646ec03e522267ea1d39d42060d8b157774af7ad7fd7f851f9c13aafa56a64d7c0ff86c8dd9588f69c6e7a9680759bc1b602798b23959fe54ff4bd2ce2d8ede7298f68801aad61977485e0acbadeecf47b7eb30e92f406d973e326518db3af0ea06ea574ba7b0161abf2"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_0(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "096349506f3a7653d54db7ec1d09e93413edd175b6ddbeb00e56752a520ac8ff"),
		nonce:              decodeHexString(c, "fc7983b918acadaa71a67e1624f1b502"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4260a0495fdaba58aae41df82505012d480c8e4f751fd7ebc39f9becd694b2a3"),
		expected:           decodeHexString(c, "f4c7bec0c26cf3892d214549ac6f3d82f34c6966d4295099ee56166e879a70ecae130251facda351e903d877b6c5eab5153ce87ba6c7cf8bcc61cbd14cfbe34cf1ed43678aee69cd87b60e6bcb6ff48ebd44ce9e31982d8fe20aec34fa51d625f845f61056575969bf785c2ffab4dcc754f13de63423e94bad8d5e166d96a62a602d3ee4045df162028b89cac45e6207d9097f2b3ac0ab17729251985f276f1287f5c56cc9ba1a79fbdbb291f3a945fbfdbd63cf13b82ec91f7b1085b33279e3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_1(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "aece2087b713992ff49d3bf404dcda18403e015632ac03735fed29102cfea6ec"),
		nonce:              decodeHexString(c, "1b574952687c9bad0e9aedcfc1da568b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e632162a83c802ab94f32bbd87f6cf4af1f2703f4a02af7d60e22383a770b9ac"),
		expected:           decodeHexString(c, "c0344807d5e3ea29fef73afb2b83dfe0aae186047fab6b603d8608df49476be18bf1f0f4707198fefa18804404887ea3c598d887e938440e1fbb8ed0a1a330cff84d952cc6405b12e7bf51b0c67d5e4896006dedb44637e393a97925890fd5176252f69d43920043844a91d0840844d89b8715052cec31e257c121d3fc0ee807b84afabee59624a00703f464b0079f12884a6e888ae4959c5423604f8ae2e6b57f4428e10b680cb74cf20417380dd5378449a24ef95d9438b0fee386badee962"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_2(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "c39e77d579755aacd454ab7ca6528596c397f28bcd5467cc7e0fb47f398e875d"),
		nonce:              decodeHexString(c, "a83892a840381c1bc03b7a223e92904a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "714dff45759124fa33464a97d7f0d7fd2d1c6c21663d31fe80abdad59458c228"),
		expected:           decodeHexString(c, "10f8ec63a550c31ecdaf2fb1b373f71f18d146ea033dd65cec2ec0b73b55bb6f3fbb7136dd045e09c4073247f093493cf26b6683bc9ebc98025f75fa405fb8deecbffeb0236a33f0ed6c7600d992ce5a268c86085adadf68047178ed89d93d739351f892723d8d6e4f428946e4e6dad1d640a9c11de23ce9b793324e31dfacfd367d86855a28cc544f88b8a91506753fa061cefcb9d77bccc15a23a84dba644089ee03db8374fee91dc23af6672159b0d2db219ffd07390b69879910b5c336a5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_3(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "d2e8a25249ac850fd3b01f62cd1eae3dd94d38e724f8e2644b7bb510c37f2038"),
		nonce:              decodeHexString(c, "90242b11be773beb202e9ee93899b60a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "00ebf08db1648c8750b14d7b784cdf0a6d4e7cdc816469cbdc3a08d6d32503b7"),
		expected:           decodeHexString(c, "019f74eeef674ef100ba4a1835bddeb925fe6fffa97113dc00d7d8c0ed486a73e831561ae44c5bd90e189fbe2bb1bfb84f3e82ec8809699ee8c2fad80b464b6b344999c364868300c1edb065ae86109dc29516f2bdfe2a046ebc8725044c382d93990f1cba185f61f71fd22fbd076d727de32a6c1d2f430bed491c9d09eb6ee669a1dc4f8048c7be199c7cbb5aa4f14d1423c8a54763869f5dee947f776ef2543ebb88d3004739089efd86b7b22327ae952747068b35d4b3d86cac1debce3e41"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_4(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "cffc6c44279e641856c39f14ed35440ea2f149c77459106f960caf910af21c10"),
		nonce:              decodeHexString(c, "9067c0f9445320adfc0aaf0c86120a38"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "584747b4049588e5d93569fcecd358c51507bed59f96145bb8db6bfb4ade3a2e"),
		expected:           decodeHexString(c, "928d6d9f9128b0af64028d5d2e94414af9f8dddd353e4155f42a5d08f3e530930e01ec0dddf25d65de7f49de702791372c71fcaf5f20bdb24eb999752bfdfca28525b16308d46cefb0bc3b260490115778161db2faebbd687b940ba098e3d5be640565b81ed9d434b6861fbb4cf034ba77380562119aa3164dc53653d4e82ec84cf351c35b1b668343faf17f172eb4c0cc3999d7d24aaba58dedf11225336b5bd747825d2ae9100cf6da3276f26cec198e52edf9194162483aa4a45fa348d0cb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_5(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "3a1f0474c279548c086de9e12ed754c49a0322e6631f7f441c8024fea654bb6c"),
		nonce:              decodeHexString(c, "e245c357b13ae94064d1b41c23e5e049"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6199e8ac9d535f8d95fcf85fdbd31eb33c20793f35075c412ba7213194a873fb"),
		expected:           decodeHexString(c, "954b58042d028abd00f7ce3d39fdb61e0cff6c40391ef8629e87101915771b8d0c7e24292751aab1219645743c6f54306866775e28b54818c759a6bf807c4982eddd4be5e22fe35a303cd503d122cc3fc5cffe50b03117457e2efc1fd91a9768964552116811b0e65856e8f8256681c722ea2652deaa2498025e84262a3fdd78bd33bc36c057e198327a33232ecd36501a0acf997d0149b4a833153b710b90c8722b232a574d22e7026a89a4d9cc3506cc9942705a162b34db9f49301a087dfe"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_6(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "e5f4fa500982bdf8b023788f9a5532482b29b12e8ae776111adaa617a958ce89"),
		nonce:              decodeHexString(c, "77873caee6e82c5098ae77287bde1d82"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "95b8aa125923dd7f8e05df78adc29898836be76df7c5aafba6493b211cbf8b94"),
		expected:           decodeHexString(c, "5b3fc1a7ea418debe79994bc0a8c86f487ed2f320c34293db950a1a026c239b8da6226d1dea509a0fe76f5a811c9391a622343324c293a0090587c10193a2961e358d1e71c269827e0d44e93d87984f47acf5b4751c8c066156da1c44662af4826cdfb5f7cf98b1f0200d3a0d7b99fea7f1b17dee7acfa5baee8f95ae4e0bc050bee2eeea7c09baa729e6e02ed19476ba3f8f5a8c1660de0353df8723efcd98f5fcaa56f6eda77f2d15c76d26989aa998c4afdc53ffcde47dafba8fe5818e8ee"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_7(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "b9444339a8738df6cfe95b6dc28980d02799b2ec5c8dba9ca98fa8075621a041"),
		nonce:              decodeHexString(c, "72b0c9e414ea33c8bc4b3beeb536161c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "db9a2a516f3e87bcc9f92ebbf4ac1a900559756903b72c4c1b5f9082d8b341f5"),
		expected:           decodeHexString(c, "09465004f009ed378f440c10fb122a265f464d373e7f1a1719c713f6bf38d28fb5447c269c127a0c10081533a847c0e19f4b640be0b1edf84d95025d56679e5880922f29c942e7284296a9309b4fab1b5bd9957d470db28d3d36a3585fd37573e8e3355d03690241d6f7211d8c6b054a813ba25f9cda76202d3270bf12f66d2e5ba5a946c7d28dd22d55d34a30a040aa9782d1e494603143d436cbb0212fa0df6d1bbf4f19818b99a68d9cb062aaee8fa05636fc60a072ec6e5ef24566c6b96a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_8(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "2aa822efa22d4cd65359107c46309033984b8e9c3ecb1b77078a09ad9ec746ef"),
		nonce:              decodeHexString(c, "4f64b287bcc3064867b678f81ab209db"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3ee132a11f8c9246ce0a3d6deb3345f9b15e4cd048289991c64a21afc46ac98e"),
		expected:           decodeHexString(c, "7b79baf0126782bebf1794fb48633dc69ba88d63504d27a206d974854d446737da4ca1fc5bbc54368966b583dc441b105bb30b3be19f2778ed31564acf333b7c4cb1727480aa985afd80396866e10f6da31287cce07358d6308e56e3bbce8613bbf472aeaecb27e66305e34af593c8631508cf7d2c512df7c9b3ab04a4ede436b9d2e6919c03a525dceba10afbf6e8a641591d09e8a90543f1905b08537b8868337c774c20ed47df32d115a7f3306d808bb82d06bcbdc81042d0a16a3fc8d0b6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_9(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "a32ac0aaaee05d57cb3a626fd26854ef08a3ad42a3c688ec6a9f9b67bbff02f8"),
		nonce:              decodeHexString(c, "6df150db0de2e3612cf106d9f158fb57"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0901e1efb12252666e7a680513cf22bc0172c4f8c0d8b2eecfa1d471c10c9ef8"),
		expected:           decodeHexString(c, "8271bd7aaa795b58d8f741bc207332335a68feb66ac9c3bfd5dac72f20807029f555c3bcac629d228c3a77d596d99c5d545a8dcdd0a2fb2a5eed5c3492618dab4f763ecd7c6580817c6a7acca42d81831bfc13f38ed56ed42055877c7f31dfad35a73eb2052f6f9183dfc89b5926680dc2aa85995d42a0c073c881f1ed332794a784553493bfd842225030e0056d76e52810236b17f6f067d1272372395ffe9c2df3145cc65ed2c6f2f121dfc6c1eb8fa6132b44ee0373c7c027af80383d4a7f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_10(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "c586e0f5999f107281dd5c7ca1ff88d4617b4fd1bb61313895dd4bede875c27b"),
		nonce:              decodeHexString(c, "5b0e6c5ba15e8725eba8fa009406aa3d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8b8b66f13e07c8918c0f3f55262debfbedfc641329e1fcd6442c245626cfd206"),
		expected:           decodeHexString(c, "9d4f4f688406d8e57d96369553ee39267a9df9020d7fa78b39e1f246675b70a8080cac5aa6967e78c55071241e20a9446a82507a215a6c5faa3a2ea3c05c12905558d98a8eef90c8abffe6cf8b874c5ef057e365fdf179438de6a78b4dcc075b41aace875a5dd35a44f2d2b17d6ef6aa91f79354931c4d487142f7ac2120fd78caa6c7ff5298729de16c0e8285d73a3c6a95ada99f329dc9aa0924b0059a6585853296789b7e1129432baef4bbd2240a8ef7b19046fba104a85d43aee0ebf021"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_11(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "bcac6c2160455e7db38a9c94ebd329c1ac043b6ff607a9c76a86156974d30251"),
		nonce:              decodeHexString(c, "b4f4b14e6cf01d407cb426ad61608d15"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "99a6b7ba9402756bea2709cf3b162cbf040d0f5f38fc4584cb9cf4e6a7bb3984"),
		expected:           decodeHexString(c, "37d76ebbab0d4c8354086a5c5edd5aa6314a4770749d468b9e5d3454f2dbc9b25432f2d5d9f4b88bea7f9835edb22f8a7b09bd604703870abee1160369d0575bdd3847ee5fa93a9fe9aaaac0d436022f94d1b96655ab00feba1f40202425e51b084e372249fbc37f49410fc9d4d16173a9bc29181b62e342a8835f818d2647c45b6ce6c5b6f29add13d57e80513f767339575671bccdccdc9d093dbd72c91ba07d81c58ab5256b6744a94f0e75482e3848de891dabf384322d1419814cfe1590"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_12(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "4b667d35a481779ad919956ca06e07366a974738c09a5685fa23b3fcc1a54260"),
		nonce:              decodeHexString(c, "cd39d725a7f2661ea86a2d57cfcd2a91"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e08419476bdc5534df58c6c3b077d3acd27ace0472f91854c164de7f76a9b1ac"),
		expected:           decodeHexString(c, "c82e5e2fb08171c233670e9e5403b07c600be4e91ff5b57ae284c4d733139b56ece720e82d3f9ac185e37d0f44d5281224cb5f9d230dbdfcaf1756389fe752575a2764f6ae775d0a82f2eb1d901ab04b59b54b5fadb2acc9b9af3e829ef19571dc416752b1bb0935ea2f3ad69dc452285c2f08412b11794134ba3bda0a10425576e88ea7b069b74b436aca93fe9dd1dafc78da1227b13d70157f60c9bee644451f8765e4c8badddad6c779d6b42d4e8b5ba65269186b04c38db348ab5f7a4146"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_13(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "c0db9453f84c2aa74bf93ef21b9e7802bb8995f6fa5e634cd4064ca2a0075319"),
		nonce:              decodeHexString(c, "a969bad1345bb5432df63412807a646d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2008394d83989cb4a506990f59f8da80e6b3a1df3fb8d726639d59cbaed1562f"),
		expected:           decodeHexString(c, "120bc268ca0d3f55d5aff5b360ca4d29a4b8ec5cb624f9674ef0a67b90bb70c238b94b2bf804fe74ca18f8364ff8b1e50b2315f8aa0c3fea663e93c80544284136de1d162e9078e9a074a50b493bcc7e0c83a0047199164a2d32133db57abb05b751a357abd3ad5298773be21c534f98645e94f0935afa53729462acbe55993b7d801bd6b0cbc8eeb5a1c5f0c0d690702f8de0a1a78dcca8862538201fafbefee55cd5be62afa8e5111c89f1f68d0f1760cecc86bf6675cb09b20e097bace037"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed48_SHA384_14(c *C) {
	s.testHMACAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "31836d292cb46aad594171e76237a3422844f62fb14d0cdf63ba587e73501051"),
		nonce:              decodeHexString(c, "c7cbb280d4b46412e10927c9523bed1b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "eeb5163737db7f910e444e5d5221c5469655fda4ab7218e63e1451f461b4fc70"),
		expected:           decodeHexString(c, "1cf3b49f28b791e7c81706fb1a870f1af134a0fb0d2aacfcd6e446caf0a91c04dc160f080ebd5503fb7c16ad9229bf0a7bffcaad07329d5bde4576870758a4bffebb6b5c309114688db8e59a55413b4b37689df38d72bc5358291bbcc0b05af487a33934ce626efde918d0ed5f2deb75a17bd8912a31dccd783354477fa850520c3b97b56c6d2b9e4a05d49bc36e6683271f2322c9a546fca88c502187a5f4a2035bf5c527aa312f16c357c37162d722510b52ff8357490a096692572cfd8b0f"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_0(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "4d95f31b9606a5f6d04dff1d89b50becfd0882e6cf51c1c5d24ad843bc12d977"),
		nonce:              decodeHexString(c, "eba4582c39d793a63eadb63f292568c7"),
		personalization:    decodeHexString(c, "43bf6f32b3b5f580b54179e4102d063536e7c47681d6de3cfe88fd8ec66e4873"),
		entropyInputReseed: decodeHexString(c, "fc4270e6c9aec83186a20819a7d35e7f1155ea108794302d593c53ce9d25422b"),
		expected:           decodeHexString(c, "e991d000b24ebdf838ba11f9849591b0029feff33604bc4d71acd94301f8d045eeb1f81f3a101a297403a35859113c099939638680d481c86067f54762892f82146f61cce7bc2c85d395348f3ea2aba6bb3e59dbcf8e41a81918b6cab304d44ea1e32573cd6936f38cdc11d3c2f96290cc27b0dfa3bbbafa9394acdf2f4435170b428563427c4b02ed25924226edf8d5a5eca4eec4aecf98ef2e6f75caa70bdd84877df2e637b7fad621c6170ca5bd86e21d0bb01cc90fe2e76353a9d5687bea"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_1(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "1378443dfec3c03d36b16bacc480edfcb1a4a509c17cf4b35787dae3bc91ade6"),
		nonce:              decodeHexString(c, "c113a1e0df927a4449ff9e2f4f1cd9a2"),
		personalization:    decodeHexString(c, "f67cd35afbc96756499c68a5ea19991cd1ad4880fdc13afaa817608a141e9646"),
		entropyInputReseed: decodeHexString(c, "7b07f57ccd6777f6d6bbfc9655f0676d7b4f91712efd43315be7c7f30e51da89"),
		expected:           decodeHexString(c, "b32d9838b3f45e3c4b3ede1181bf0aadab96d22790d8536f5913fe95c3ec0179dd1c7ae69430bc8c68f4f30105199b785a11adf7abec007d18abcee2e65df5a211adfda35fed8b9389a61d2fad33fe020119e72c782a316f17f8a588239567315bda461f5f4518a1aece4d0ae028c153d67a8d4ce620e571faa0403c56bcaa864822e4d8ae6d14feafefccbe879ce4baeca70d436218e0eb3a62bf15c018fd4cf66a50e3d9d7cc9e4744e29e9c945eabf03a6a2c4ca57e582b60914417da57f6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_2(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "69e9396c58ed867eb52fcd046504922e2e9a9b059234cdd3f0a09eee9fdfd45d"),
		nonce:              decodeHexString(c, "edf5d3860b25115f8a3d0e2f3f543890"),
		personalization:    decodeHexString(c, "1b6e1bb613d199a5e6f1b5c2ed041cf6f6633e2ef4d50ecad89b28102bf70554"),
		entropyInputReseed: decodeHexString(c, "a23a5aa278f836577956944a098d18f05900d1b076d30ea745be745b9efc0dcc"),
		expected:           decodeHexString(c, "ee09f7b24cdc6b51a8212ca00613633c1a5f044fa921bec31baf679f5ba66bfd723721a03e0f260a44ad5cc4c580080667a781427a34c3d2fdfaceb4b040ee675491c4dd0c0d13abbe81336384806e37f2729e7fd080fd57011b54b664d58534c831c90d182d4d955676938d484087b0086d2bf2737a912afb66101575ca2bc5acf845f4970bb1ce4441eb667d5096319d6282714a8a9708ef9964cadf596ac3e7b1ba18fdec7e2e22f5e6352e825e965a494cb880aae78477aa3bcba9428107"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_3(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "d2f390fde0b50ea4afe6baf29a75e698fb0275c04c481df03910d238f4e72c6f"),
		nonce:              decodeHexString(c, "63a6231df89123c2dbecfe0cb0313db3"),
		personalization:    decodeHexString(c, "2bc38d852d1ddee2e89b7174032d96c0b97f955e16bc61716c5c64248eb6232f"),
		entropyInputReseed: decodeHexString(c, "4288f4143694ce2df2484d20884dbca097e35c3fd8ddee5273b53c1149bf5070"),
		expected:           decodeHexString(c, "e62346c72ef393a2904e982158992df4ccab03142c41d8d29c1454794926c48570eef34bd021d44cc9106401e9cbce6ddbb6c92257e89a787499d7f7a2dd527833307e02f44645ddbcb1303f1da95382c89805c76a2f12eb13d2b0205b7ec0ef21f596c98af608a2f2a2c5e3534e01a23ba25bd5fcba0481482e1ec8138fb1c86840060919d7620cb7b879d1096f64aecae1ea085a793a9f4dd665449ce73cb3036dd5f2a49138ce88c461a0a9e2f0c1fb8338f5eea53ab0a0ca8a8df9c315c4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_4(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "0cf86ffa1456c453b53305353ce43ad3ba44ebf4c6943cde8613cdc417ee9f6e"),
		nonce:              decodeHexString(c, "759c0bf4676f1ebd05c519eb84dfcd3e"),
		personalization:    decodeHexString(c, "088c917f84679641f491aaf105eea0f02d0a8ae0b7add69645d1ef304c74b417"),
		entropyInputReseed: decodeHexString(c, "379ce61016e48cccde24753878f7d8fd5da72518253b2f836f32e5b594d54ad6"),
		expected:           decodeHexString(c, "79e71d9a974cb88d9022d35997032bb5fbf8f0daff411467217837a836aa44c493f868a333d1ebf66689895b53c9e01d58019dd1da2354fb966c88d2d6adbe66ac0b8901595a24dddba609478ec36e497f6fb6b4bcaa88b1e9a9c87088f66611446e8c2873e89ee1006b6d92d2eac54714fc6481e7782b38ed4b18d5f9714ae6a544110cb6063c8a9964c52a7026f52af448783c3427092e0339efd7d1a8522848a2faa8aa19c21363a537766c05505cb979269c73ee90679feaef8df13b6506"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_5(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "7179c434bffa377d9b6821da9571667c8b962196f7d8aad062e75b6091a34a45"),
		nonce:              decodeHexString(c, "4e8f4d14a60fb5253ae373cf50edca93"),
		personalization:    decodeHexString(c, "bc1c39e646afc1bb62685b746007148494209a419b733e938c1a5d02e2350860"),
		entropyInputReseed: decodeHexString(c, "b8d2eb2075076ec8c7a42b7adbe7723a6ba8b51a55fadb16fc3a6fe9da020482"),
		expected:           decodeHexString(c, "3093a2e1f502d44d8be4f35b386774162f0e10870f9cd34e3b9d4e77c7ec7cd10cdfa0bf8228be96cb5741f069440a6b6f9ec155d88ba66b7fa84959c53d3574bf1cf9f1561006c776223b881dd396e9e9830af2c1b5f7457fc45e823b411c5c2ba3b11219aefe5508f75cbdb5e40edf6b1f61453541ac98dad9ed502bf1a8afa79604261c7a89e78cf2941d520e0c10bed18820da6c23a5ed1c0dffbb04cdcc9c3284d400644e9365c995d8c99eebf444f2cb051bb62f231301d31ea815c338"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_6(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "b063333128a6ab4f433f151ae8aec4283ab6d1cbf4a69447850fa1a25930ec0f"),
		nonce:              decodeHexString(c, "4204da52752a9bdc788c5cee6d8b92e1"),
		personalization:    decodeHexString(c, "067708b24df7a34811993d5c65d5348eea73e6c6680293afab5804b4328e7a96"),
		entropyInputReseed: decodeHexString(c, "b8530dbe0c81b1d34037ee53f20758d5750d9863ed60c762ae2a8b4c973acc22"),
		expected:           decodeHexString(c, "5f74a1d199f30fa22f2020baf036fc61b1cc2acaa80b48ddff1cf85fe5dd200a9afbd8bc51dd1829636fa335660f36d5d2a516e4c38e8ef0c3cad979e79e7e226b820634ef1d76ae81bc3e3807913eb0731b2e959c43afa83feb1d8da31dcdcb3dc3a4cf8f454c4ec41bbc822e58023f0d797c844bd8f20034b31d99579bff142cf53d2651d7a31b212d2b9d5705b048860d6c4e3f45ef1bf2d5e46433fec593b9f68be8b1e928ea04ddc4ce2fcecb737bb8f9d054c2ba5060fae5e5fc21a650"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_7(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "e23fa0c86c8a7b99ba0d3ec3ca47349a57798c07587b666cc4ae1c9eff83b8cb"),
		nonce:              decodeHexString(c, "ffb49d1910bf05db3c7d0db7e27285ae"),
		personalization:    decodeHexString(c, "7ffdef21683a75484f6ac304801c213dc8cb7e3cf0f94c358a2e1ccc9969e834"),
		entropyInputReseed: decodeHexString(c, "9f6b4411d84364b27a66398f5b0a897ee2085526d3ac4f65e70800067d57a51e"),
		expected:           decodeHexString(c, "f952956cb8c528efe2c831c67b69e8aa7e79c013161497b9c55415fd40c7fae778a6fa82109a40dd72fb2f4d92e1cbc47f52d055485c99d893fbea1cf28dab35be1f162494cb79ea45c44a63a1685217cd3733dcfa88bb6de65c68f2390e479c0fcc6b398dc5498ac93002e7e7f360535d082c8e46386611075665060845c4f8bdee38c23d2f90d2b1d78217e865ecfb6df02498db837fe581c43382cd1d3a508b6dc052ef7c4d20349679db8d8bf8dedd763da8e5df775d133970be062a9ced"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_8(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "4889013333cd1e2b3b8c4365bde690b66e06bcccbea25f04132a0962f13a7d45"),
		nonce:              decodeHexString(c, "8e823f5ec0ea091a07065593ca44fe49"),
		personalization:    decodeHexString(c, "b4761d82a93e17d8a0a461ec8205932edf218157459a25a7f26ceddb59992192"),
		entropyInputReseed: decodeHexString(c, "611602d165a35aacb352206844acdf41dc2c88b63b36912ae81875bfd3e098e3"),
		expected:           decodeHexString(c, "72aa3601986e6c970b8c2253118b8381264577e391e48bddff0cceeb5101975391a2c731f5611316b255c2a6c0554ed6cbf8acbbcd8609e3f99c3cec38aa060eedb863563442b7beb78f35221736c608a933aeb0d4a7cc050fbcca351cf780d42c5380284a6163520a80896ee7f71d2961d7629d673791f8fac10bd01d32d95e8efbd65381424c378bbf54b532a70c285d98bdbb559c9f37d6eae889b82d5006fba2892ae16acab103aff1b247711ef92dbc6e516c92e388fda4243808f95170"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_9(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "cc32ef3ea3b0db89c69312cad56b1ddea73ba4c302b85ff3c6605d1899a96f49"),
		nonce:              decodeHexString(c, "909c6a54d98baf096ea5bd46abc25353"),
		personalization:    decodeHexString(c, "cb80942bfbcd8f112ed601cb12a5ca52cc0f280522db11da92ac6c76be3932fd"),
		entropyInputReseed: decodeHexString(c, "09676d9d6bb9917271bf8c86c8852e29bf3ff5b2fe56ac094fa35dcc51547f62"),
		expected:           decodeHexString(c, "2c972cfe1537bae42ecc46b1b41a691350f6e63c202245347e91602b93a4cbd5c8829e5a4f63f7ee0e29adb69386e8b659dca2e6000aa03beab132db6dada8dc35ab68433671cf621fe4593018b1eafd3a2191507fe015e2a5694fdfe2c3182fada71d18c5fdeed065089862249c5508f055ebeceb9fcfe5d16e4479dc17e2b59b5a0aa31cf21fc6b5925569b0ca63d1a5cd268a4d409f1039d902556236fb06e61c1c054ed3798cbe4d8c2a7b2d18206212591174cec9da519fb876c583a20f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_10(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "142bff9332c48103221359040cda6632baa92cfbd1ae7f8b3d0e33d6a8193939"),
		nonce:              decodeHexString(c, "d9d20d17fdf6edd1b3ca9ff600fe9657"),
		personalization:    decodeHexString(c, "8dbbcf0c190783122aa6da6e05ec9d82ee29f8e74e59f8fe6eb9492fe410df6a"),
		entropyInputReseed: decodeHexString(c, "46b0ba1b61e9aa5141edb77ade0f191b87f0b33c0f3620801a755dca02698883"),
		expected:           decodeHexString(c, "2537a8638d5759201cbc225e844208c1d08443b055fafe23329aed5eb2d814703b0fdbd0a89c2d62f8f4ea7746905b9bd90706b734060c96e4e406675576bae84317bf36d8523babab72236b71fc6087dfcfcbe765de13cd1ed316f495e3bd08d780cd6a58849c929ef24b41e9561868158046ffe8d2a89d169ba31331611f0872c6d075b9938e5170a3b8612f9ecff4743c0db5ae365fdc2678ec262eed3b7c337e65dd1ff24a867574ee460bec7c374fc6b3fe9b0eb7bd9f5507ec5988d313"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_11(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "821ed44bd793a4af223aebf52413ba5e0e231b2029b3d71475ac028d8c10f86d"),
		nonce:              decodeHexString(c, "2382eb9c62bab540be847e22344704d3"),
		personalization:    decodeHexString(c, "8d2c8cdb2ddd6934271941f071ea47dfab869a5671dff9d424b916c1ccabb02d"),
		entropyInputReseed: decodeHexString(c, "39b798248d0bf2990c0621316e3c98ec07f05bba8887783adaebe8fcecc48fed"),
		expected:           decodeHexString(c, "a5fcf13e4a6b9829ac30171920478a7878aeda658803f2e314f9ef8cf42c9c1933cbd8dfe5053abd30df644ca062070662f4b7e7851d28ff801cc4b878523b4610891abb29c095a70665de1199182fa193439665cb19cbdb00aaf3fd0fefaa2278194e79ebf652713a28c36f2cdb83f96c8eb1e85c9969381b52bc3444e8ad5d82c94964544b3e6649ae3f532d25a2e370e9fc8c77753239f130091c43720ffcd2bbcdb70a75223cfd9346091e8c056227f66648941552efaa5a0a369291e9ee"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_12(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "977bad4c5d1d16a2439863af8bb6fdbc206ad0bf20c4036c044645962c36e2e8"),
		nonce:              decodeHexString(c, "53f0d702a54b70421a509c25de124f27"),
		personalization:    decodeHexString(c, "51cb91cb7ff1b39e18aacc0baad20443522bf869f26d9d7182005b5cb1d018de"),
		entropyInputReseed: decodeHexString(c, "e330eba581fc82efca522e43956187c9ee4f58f971e4b91ed51cc8aeea26fdc3"),
		expected:           decodeHexString(c, "df4acafbe4f28ee47acc5134ef665a50deb68de9b3c7e075b26d5731049f13ffd00cda05f612f20fd901ff127277f269c069607442ed9f7b41892711a72b83ac592048bfb28ab2c64c6b9f5eb4427450f4475b1c04dd4665998b638d06fe8f463e2f07ff46073003132b66a5d4d19a65bd08230d1db0234fbd09a98864f8ca824e7a0ca9f1d1662027a60c7e95382122674d88224fb192cfc129952ed6515912aded9c72a49a39a00f9f9a16abbd361b20a12b5f3c4de54012aeb1b42f6fa3bc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_13(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "3116ef07685eafff1c77f185fa840bb5627fb9a5d79f72f8007cdcdfbfefc56b"),
		nonce:              decodeHexString(c, "b1769991d78e9e48fca4c97b01d720d1"),
		personalization:    decodeHexString(c, "f138ca3ec867cb7ed7d5fdb0868d7470de5f802fdb941dc400ad524d9032e23a"),
		entropyInputReseed: decodeHexString(c, "d3ea6fa6ffbe2569da94b6bb36cd34d72c37d0218b3d02c391e0653e286b24b8"),
		expected:           decodeHexString(c, "59f01ec06c97a49cc5de469cc2b39c28db7612029e0e24e3c2b24f92c0af2383bfb9a0dccbeefdaec4bbd2607dc582ee7eaae6a4ffab251404e3c59c95e5460ccc8d8dea4db73e924ccd7528708e1b6a9d62d485c93764686f93df6fb8a9ae86bbda1e038697b5485e27e0bac9a18126bff1e7b104401306cc424e783f55ebe9940176d7123ef58c9460e5fb8311f745fdccd39ce552547adccdcd853bfba87aeb87dfe8ae72080fb7b3e5c4718e743c9f576d7752e3db1fdb29f160bde115f3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed50_SHA384_14(c *C) {
	s.testHMACAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f5ba27c487a40dfe342fe18e7f9c72bebc1ea229c7634cce87defd7aa11448e3"),
		nonce:              decodeHexString(c, "f584d1769f3e76a017430e6e9bae6bb6"),
		personalization:    decodeHexString(c, "34fd124aad5a10b852b2fe8481cd0ec46dc2d02ed9583f6e282a4c908e319024"),
		entropyInputReseed: decodeHexString(c, "c79170925e1156275311d86d4a03cfe3dfbf85f80bbd70ea98af76220833a0be"),
		expected:           decodeHexString(c, "977fa5b70f4ca3c04b6f495de3bfdb4b8aef93bd14c82653e30a00a4678c602aa889766ab7caa434d9c15bd68bd14e66cdc609289a691dbcb391611be66c2056f8e675de5db9b2e2f15e5a330d00a8886eb8b8eed4076306d443ca292d783fb056186aa86e1dc9f18a113e015e535dffea954319cd26e5572f4173766207ed7d9b8b2c42a741340c1850a07139c0b358cab942bec51b159e50f5aa9d8fbe7ca9d1d2127a98fbf0f8c3094bea4e3039f7f7ab083fc9d050e29e7d4cc2d3d44caf"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_0(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "dc46e317bede8ff5b45120eefa6de78031b08ca7876d62d10ec82f66a48eba3f"),
		nonce:              decodeHexString(c, "6024e13963ed404229acb796ba0b2d0b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0455c3a1aee20ccd66a3dd9689683f5cae3a7c37d09ad6ce746db6692102c289"),
		expected:           decodeHexString(c, "b3b541ca462a72a2ccb925f58f40fcb1d5385138b095f771575e628518d694b9ed47b12634063d9e9fb64ddb20decd20e57fac665eec168a18f7aaf8c8f925fe2c34fa9f766d5a172459f32bcf243199aac7139b2c1aa7982ffb2424a4765a9dd1dd462f08a280350f0cea0c4b9cd87324b0f40c68f1a877e699187f5c40610d38e71591e98564018ed2e3090009e49e1be36f862bfd01f38d9537daa34d7565bb1761b5727df7554fdaf7f0980de7c2033c1dbbeaa298df1c7f34051629fd4f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_1(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "b5a423d3ba2cf4c34ab37cfd91fadc305a95fd8cd88a26ca483f7d0d7cc1c7ad"),
		nonce:              decodeHexString(c, "5a8f2382125cb1fa8eac3ea9b72bf981"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b93679eb91361927cb8722eeed04a79a2be1a90d2c12f7c0a453d2f67a6e0801"),
		expected:           decodeHexString(c, "1f9b27acc76c0f249cd179ff8be8737ddea8d4a3d569c19e45ae587b1243178db429430ac8aad6dee5d7a107078de976ebff10f83a34e310e35c5e5acaf38fa0b769abd0d13e23443616a6514558da04a1a135fcf2924cfbf31c7853e2ecef2b9c5ad9c7c5f52c876800d9646fd9a687757f44c9ea3ccf6d69d799a72252677c526210a9886e930bd94e9cc1aac8fb0fe587ac35fd525982ac90a0b17ba420b54fd9901580c2a8581c8365bc10bc9252ccfca955fb974fca73b91eec7abcd16c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_2(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "764e213a53c53e0f6624b61a5436a2ad54e872091b0904a88f43f42f59722208"),
		nonce:              decodeHexString(c, "7429e52e2b26e5d390f169e2c98cfbda"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "28c0ed0835077d33ee455628ce435de9d8fa8d32fd2b1465e1ac8d8c1f94758d"),
		expected:           decodeHexString(c, "25f707ac6c892886e93ba64ea8918cf9ca8c6bbd70d428051804125b8a829ac8799911b2c5c968f519c4a21c0470cb2f5ac315da7703ccdbff252309d411e776841654bd458b1d90a6d5cea16ae73e5453ec202e47a4ca31008db9382c26dc9ba06c1e7cdd5880abd76844da5bcfbd065eb7bba680e73ea3552223100b538e69ac47834ba61081ac628abfea8905f380554d5a10164772c90aecc7d5627dd8a90b2fe81e2cd88263182cf868ff4c472759591708be7acd52634268516faf249a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_3(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "64b7c896db7dab4a4a844c3c004707aa244f51747b6961e13c6eab01106be78b"),
		nonce:              decodeHexString(c, "abd0751020ecded4fe196f8869ca8ffa"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5437ad60b37b1a50797286d0ffec5e914f991950e31d334a781cff0303c0bd88"),
		expected:           decodeHexString(c, "7a892e2198075a1b77d6ad607149c2e21ea26cd455f8d431ae733958b25d36cd330774c85fd0041419a252d1b0db2d46c843602501083907ccb1a3afc09479b63b882292727aafbd00408fcbdb0590e54b29c8285a75b06d70007631eb9284bc7c632422408889966652dc2f7b21dfd227a3e819a70519cbce711d7fd23466f92a2394cc8517a549220673c4a1e81a8a09ef90635eb6542cff2be201f9406422d0eb45e6570c93e52fbe70ef2a8ad41b203795f9fb47a50ba28e2bcb0e6f62b5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_4(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "10ca4986883f0ab8ab6b7714d271dc65a51cf76f1e4cd49cf50b881c1863d727"),
		nonce:              decodeHexString(c, "9d90fb4f74142fc665d18b8f89028f84"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a780264bce1a2dfbda9e6216093423a53f89d111a0c3701ab3c18c92cbb2cf86"),
		expected:           decodeHexString(c, "ca1ffe01e18c9ef2df00f5ef4c3265646e4d428f77b951f7bb59c810d96d1f46ff4f7e7ef51d1d637615a3b503699c28611efafe9f914603f418ccd767dd7753a250b40272567df48b312f871fdc0d9bda33cb413a7aa920b3a846360dab9380069607f483d9830c24125e5b0e70538ec9627cdd819be8acf17b05f4fb2a4ca29913e1b88d38b011450f5b127c243650ba5d33bfc34d78dea9f388384304b9551be74ab4c3c79f606a9a5eb3b76c5fda0e2d44ca414cc0493ba0fd0a6b4e5655"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_5(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "fe9b23fa2a501373cfb4720b8a060cc2acf6b7945aedeb3dbd8d2b616ff0d774"),
		nonce:              decodeHexString(c, "a8b0d50ebc980575a8b39d47c9a718df"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c98f3c1232682a8c6a8f6699e6c666ca096b31f9cbfb672d2af26c7c1ecf93c5"),
		expected:           decodeHexString(c, "8e292c0c9bdd41f035ace929e4f34c8aee8821838e63253523cb2628b92b83db42405ee9db2731d8995387485af9736e7977a6e6cfbfdd5dd2cbc2fa0b7c8ab62c9b2231c91f61fa16bcfaa5ab6ce5f0612176f257212a704875d3d0083c613e781bccb3383282ebc70d827bb14cd4ee409f2e66e01f9a0f306d380a41035a528df6d2fd33004c6c5d9cfa3f8cae422ef6e188cd168a890425a1fdcbee25633cb43160b184679f97ae3e931af2c59c5b14ae2875f7287667fc0a99fde76d83dc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_6(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "75d0e3e132e9faf3ff39c417be978868f4e4a11b79dc9a4f582a5d75da144e1f"),
		nonce:              decodeHexString(c, "6c48b18d5ab14f0dccb163186942dc86"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "12b829f2dd340431165600b10c3813d139cb11217d33f5e485170509e237a6c2"),
		expected:           decodeHexString(c, "6ede681d9ebe06e6063421bb70c8753d7952e28412fb3af264e7bdc3166215e6f19190a21012521bb1bb338d1af288baf5e294cac85a207623a724cb7ad5c8518abaa6bd2415a4af7153208569cbf9afe6999a61003cf5814a3a179dcc0a6304a4667563050d573466fc0fc232188633440c16dcfc987db6bb64457a23664fab6733de332494c81d22d2b50cda1fe36192ffa70b109c574a80e26a0d66cd7758cc7a99fae6dbb55f0edba0b723d796040676dd07a8741f7d1f3636343ce65ce2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_7(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "c5d55591ddf011305da88dbea5ce521bc59460065b7734f4380a7f059c88a55e"),
		nonce:              decodeHexString(c, "7ab714202bd9ea360b89432b135b51fb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f89346dbbfe86a8df9ebb4ac6efc7507a64a11ae3b15c773c589035d382c28e0"),
		expected:           decodeHexString(c, "afa85bc3b81ccdb49f6e87bdb9bc06b5f80d51cf06791f1e0efcfadef7d12117f0bcfc2b45a88e18b6782e852601f55c833cec7ebb096464509d44bda3d6c3d6e9182f37a87c3ca0fde306ae8964167e5ff2a0a0362a8db9171cb367076a4772c53899ea0962112311b952c9d835430ba2713e055ca08a0e5b7e2fad6a01594e73591520831d8a4e107caab2eea1a8ebdbc5680c119f990849ad449b6faa3b72c0c6e60d14c117ae047355a2db2108e7603b31de26bd6772f4576de9b7f9481a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_8(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "9af8eb83463fcb58ff538dbda6d1ebe64260347e9c1153d3babf84511f370e71"),
		nonce:              decodeHexString(c, "9c13dcd943f5b8ea615aed924c9bee44"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "765373a3e7baa3378d6320a8713829ce8ad3a3aa2705fc6ef44fc15be6129757"),
		expected:           decodeHexString(c, "6035ae3d958db36a4aad5836d15bc4921af8673a4a9c60ff6e303d84858da1bff83fe822e41f471089b3305fc28be4b1e3cdb45fbc89bfbac68f64f5184c17664edf224a79ecbbef0652b70b4bb3b818ed897143e9a5c64da3f105ea726675d2fe971af5edb37d8b5dbde739ce97ae176077abb2c49d21fceabfbceb911533638eb14b45f731d5a938dd4a516b296b400582b1e79a3825c585cd45120990ef9f9299efc03a6c05507263a568e0028790c5a9bb0b235c27059c798f94d2a87d62"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_9(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "9319148fb7c2389793e9f53cd3b4ad8f1bb75710088f1c9a18434ce13b190da2"),
		nonce:              decodeHexString(c, "11fdc53c13aea33985ba2678e8d86d09"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8619290e975f1c50f6606c7027efe9c8438d3209db71edd023af0eb024a282d2"),
		expected:           decodeHexString(c, "30c2327eddb5c3942d90006eadccfc26d27b149f195389abba507c0746e41d7fb8cf30c15f2cdff73ff3d77b4ca0d289f0660073f2c73f83ce819a6a7d8fe911fd109778b501357eca73079d86bed0916deede54e2e86eca2c04f3d0706e2a55ff84942cbfee22b5a92d309b84b8dd3decb9f3f2c4b24efb4f382833ffb867b5fe054b21d47db6c52ff52faa13ce2abdf7996e23a8c96bac48c02980d96234e478370027d55ba8752c17c7a1bf6253084654e79c13bacc51c1815c8b647e36cb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_10(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "dcfdbb37350473a86ec8e8d976bba3c97595053e66ff933605378c5891b0060a"),
		nonce:              decodeHexString(c, "229e0bd81eb5a9f22705a0bfebce3cae"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f607ff51d79ace8279b119077b67ce6648d198200ef4ec0093fe69dfbf412369"),
		expected:           decodeHexString(c, "74be40bb52916a0c85e910d4930d79c248ca4a56724283aae65ee9531cfdd188d03bff22c02c688be7cbb9483fd15f156c14dfb5132b47d2a0a6df40b4d3d3ba2b30d0c48a6f4c1a0bd88971f669fb6b94eb84fb945c7e964bdf3ff96fead121d08b70f65a27d5b0b8e84c685df063777b4fa2b94b9fe2eeee305a48ca3f282080d3b40ecd3da3d565c5214702b4b0281582e6b528ecfc37a54f2a6446ef6227b5529a2724431020878237c91e6e8f64e13c2ac63761ae5da4af7ded14f1bcc9"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_11(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "92f260278d7f30b362632602ee0206d66c87b76ef0f9f2f489cee6a3f8450827"),
		nonce:              decodeHexString(c, "6df12bd1d7ce6e96de428118f4892dbd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "008a9d2a57ed532c5c891cd7534973cd8af9d22c68de40df9583ed565cfde5ed"),
		expected:           decodeHexString(c, "c8c190c21c903df929036e682ad05daa95a58cd1fef05d7f82a0dc451269b0a5335587c48a5139414027dbdc6b0fde324c9fae6039f1ecc097a56e6fbed4dada506c34f5d41d2f073c3b2ee9f279beea29334ca3aefb196597d6e54414dfd524eb59278502ef3d395715ddc54851a38c0352ef3305330ad29973c20dd3f8c746f71e4c885c85140d4deee72c3b0a20319f5c6ae3f6296991d4d6c456d35b50c62d500802c17870985f8b0db2b89147a088af05daef98fbad8dc612d4691d40f4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_12(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "ccf295dfbe0605758e65290ce34102bc8238f82ea51d566cf49c5b4936c85f64"),
		nonce:              decodeHexString(c, "cd884cacdecb227c72b3819214697490"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "06951619eef139f29c47fb033a6d5b4839ea8f684dac80f87912147a5581f433"),
		expected:           decodeHexString(c, "68122fd290e05e778e7ddee396dc4adcf42f04fa8f7ba6f90b7e9250285e10285827b2271f765e32d752b097084e61144b9d7b8957b2958b9d25d17389a351d31c9c2b8c5a5773055a16b48df99935ada5f368686aa07d6ca092d0aea92b5898960abd2d76a9909e6519ffdd1a1d242ce72928bec32dd6d13b439879167c9b0c85132a9bea19d8101710351aa4285fd95b3eadc37a86a924fbbe24e39d0a83a1296d3f123e69040f7832801767073b2ff4c13fabf6bfd7bfec34721d5624a5e8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_13(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "90db460ce6ad1280019cfad5dd0c3ccae52f4df1f5903b765414cd9e6c014d6a"),
		nonce:              decodeHexString(c, "37ae8378976602ffa52e7b5cc6aaa3b9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f810e6140989d0f5bff5a7fb02016a876952c014eda181911650c0a45a384bdc"),
		expected:           decodeHexString(c, "25f5890a25f9e27114ef5728918526f3841ded241b0540d181bda74b6a1aa11edf4f6822d3f9369a5c0bb75560f4fc9c5fdaf70bfc3d4b2d92ed2dfa33fa3e2912124bda2d02ba3b1776ea8f1c0f07a124f0bd7b6654a20743e5d40cb8505c296f1b00d0d08ea39fbae361d91a12a986e912230aa7191ad8a587189e8b3117ac57df4666b27eb798cd0c96b86561fc688e4622a2a5e0456988d61f80be808cf38c8bddad18f310d39ea610d9274978e166205df05d790c7b99fc18e07ee1a0d4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed52_SHA384_14(c *C) {
	s.testHMACAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "878893d8396ec7296e54542e0cf128ae54586f881c0006018dc091305b53f28e"),
		nonce:              decodeHexString(c, "1d01041c8846174e37ba76f12ab177aa"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bb38d54d31eebe9e33123a824dec35a5a9b3c5d31f23ac07741aa1aafd0a9046"),
		expected:           decodeHexString(c, "250473b14a26085caca408ad919627f95e4b0abf61491e21f98583e23178d4e3f78f27fadf86a318ad45391b4f45073bbbf070f47a9fc0f51f7077473280661d57ef68cb7c0a84585e1993d1f2714b0ee8c6758bb85ca35145ac34daa8c1a016025f02b8ef91908d22ed070c985150d5597f9cd942d955f46bfbc7701088ecf5a489b37468e6cdc356ddbf3bf17ce70969b8a73e95c296fbda9862591886dd26637834fcbceeeb96d81d133da49cfcf7b2a380c3e29ad3892caf6375df741a19"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_0(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "79be91a22486cfd621248aed9cd820278f1abac82de377c3664d83ce2ff3d175"),
		nonce:              decodeHexString(c, "24ca63074bd67b2effc620bdef617b6f"),
		personalization:    decodeHexString(c, "8af79ced4b2777f44eb3f9781bab243585b82711dc1b362ee98c8e6577891c7d"),
		entropyInputReseed: decodeHexString(c, "643a86919e5e984d6281de715040b6f521866edfaaead616e1d1bd83c2210f5e"),
		expected:           decodeHexString(c, "5b6a4ab360fb851bbaa035ac55a5853c4f06fd8041f282dee10827b561ee038a3d3c537d55430b013b9725c011a27b3349214388b4232dd31a3660e5b6ad1fab5082041aa34fc804bf2be368ac6dea0b3ebcaa5b54dba51682eca19f9a5d595633ffacdd746e1089ea3d67b156eaa2e9f9b79cc17874555616792af37085ad3ffaa28bec60d5db6eb0c2bcd6f870543d8eca7eebfd63dacdb7f3d389d0e0b2a9ab92e7a78d11f8a3f06402a9ae7510dd9648ac8cc33deee49bc6fee97bc86dcf"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_1(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "86088eca9344486b7773d0b6546e679d421257362364b50db1a310c796b384b7"),
		nonce:              decodeHexString(c, "db8f416d5106b9e0d85b04d9e344f760"),
		personalization:    decodeHexString(c, "b1d2cc9fa0a7d15fac68dd2a1e16e9f933dff3a04c1c22592859ea94bef55fb5"),
		entropyInputReseed: decodeHexString(c, "8fc81eb7de2a5d1b23f1444b6bf79bf258d1cd6152178524159cfba06c483706"),
		expected:           decodeHexString(c, "d05cd64034169fa68dc2ab897c2ec28c23095c1f9ba42c2da29c210d0ea211e43727bdec19900ca3a8f4fbfe184d0bca42a912638957bdcfa419c896ad664ae1c8f987499791a5b894cbad717016cdf09342e8ee6ea430e5deda462899f0f32bd45712285637ae5bbbb9a5452dddd60e1885c19fd903891886bf64028734fae26942089e3309c284951675f4ef147e9dd26be1c8d30bb8d112c6a44d4ae4c18673dac228d9e62ff54c0821b032a4d53ba8c4d6d97b2d39753eaca23111c974cf"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_2(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f81d76fdbc3f4d23e148c69552afc2a018677411e7e196e0ab4405f91045ff03"),
		nonce:              decodeHexString(c, "ed527dc5f9b7ffe6e2da26b64281ea9a"),
		personalization:    decodeHexString(c, "2df2ddfb3724172fbbd23f1bc5fb89a02a764721962f741aaf7897167bf7760c"),
		entropyInputReseed: decodeHexString(c, "ad6c7aaa806884fed9a7a44dd51ddf57ec57e5c036608115986a17cb52bd12af"),
		expected:           decodeHexString(c, "94875d0b380ed72321a7c7fe8060c8efeb8bafde59d4f06ba787ee246ab75e390286ef5cb0dc871c18864f59dceeb48167dcc8fb1872385d093be47fa80abf6f3b7a6d09b70160e01ce2c21389cbc4286fd55d600ca5912a64266a6a43140ed31511cbecd4fe2ef6a3c6f6891aefa9d1d33138e373680aecd7fc42e00fa9bdccabf2e5fa808683d2f344b752605064bcbfa5363270facf9ce9af0b6a1f6b9033c0578e3b2ff54fd27d699917c0c9cd2739c662bbb166f036ed4a4f9b7e18997b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_3(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "a08e9747f30753ce2459e9fffc52978b8cb81c8ae7a48b910893a9f3f9337832"),
		nonce:              decodeHexString(c, "f6b6820e2645c96a65ad9c7eceaebede"),
		personalization:    decodeHexString(c, "587333f1fb2d98fab07ec6213f9a4f9932b2019edb8c07fc2e99e09c87ab2d7b"),
		entropyInputReseed: decodeHexString(c, "f36422c0f5842b689972d470d7aa7d77159610e8a7c0687503ec5f07f7ca33dd"),
		expected:           decodeHexString(c, "b9d4d8ed69924b0ce448b5c7de1dc16d033f7d93a1f68b91c7cd175e2e2a128e50a60c9005dbee8a292604ac5aa7c39ed83ef2bf7c8bc3f907b33a2b2cacb7240b7c6805cf161b9a6aa440291629987c7339f6d16edd46988138907bf6d90e8a78758b89af6a70f6155db077d17be457d371e8a04afd1ff274b101dd3b3d19244a72615a987fe5ebb261740cdc46a498a7c357ea96e6b4962bbf188eb679c8480cfcd38c9a65428706f40b1aa2682b0899c8c734e61321523876be5e6641196b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_4(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "2afee35a11953678442ea4c528f129ae13e07bc0183149698bb3537224f1268f"),
		nonce:              decodeHexString(c, "dbd847cd0c990e7a646138407368bab6"),
		personalization:    decodeHexString(c, "cfad6695f0f75a981bb35327f63976f90c84ed26e9180a812e2d74e1b7e9721c"),
		entropyInputReseed: decodeHexString(c, "91522ec5a1806789209c92da4377f780d83983e2ee6eb9b98de759cc4f9b8a4f"),
		expected:           decodeHexString(c, "80e494a7b66765be7daca86765716284a5aa126df183fd4e12d85135f7c9f5f1d11c1ecfcdbb3fe8e5da5f05e539290d5af91db2c48d0ea265eee6a66777d6d6a61f8625e6c88f863e020fedcc8af1de545b73524cac82ada239e200c5c3e06870adce428837ef17c04310ffb8c50fc0e50525c1bde984a8043141fbf37856e0a374c542bd9fbf9e84656d29b671ea5fc999ce0a4472274344712237a0df2148b4b3408da5bd5bf6cba86800a3628c4b86cbf50e78898cc170c8b71310ce9439"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_5(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "9221e4ad654005ddcb32c1b444bafa7111a3c3dd762f0c4b550560800c3daef3"),
		nonce:              decodeHexString(c, "2c40cb619efd154baa4af8c387dbc2b1"),
		personalization:    decodeHexString(c, "3d9c9e0734b20d0a0a6b97113925be2b256e10e24703479820070c72353e2a43"),
		entropyInputReseed: decodeHexString(c, "988a5eb902dc72a20cf2370005ddf2883439ca248f090255879dfa8b6585248f"),
		expected:           decodeHexString(c, "be691e04b2e79fc2e500c9312c00c9df519d00be589282aadd341a3579d5f84a9e4063f54e685fb1c0f8b771385266c8cfe318d5599d827c4bd8d90515f601148d376f6e364a87e20b941aed1d2f126146fb454c7639dc1b3f811caf4e1bc314ff6e8cb942fb1e7ba72d67c15dd31b8f05dbeb454ffbb533951f991768dbf750607d0d0c2138cb3de16535313729819cf0e93defbaff6f4123e3bb0c6f643d4652695e3d17ea85ffaea1efbcf7a4d923da1d42e431bed79da1e27969fd2900fb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_6(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "41ae462e94507d144302272405691be2c82b876e52437553d8508f3a084f0dec"),
		nonce:              decodeHexString(c, "896530f116c235d6e669453f8478276d"),
		personalization:    decodeHexString(c, "f0f9400913c91f0ae49428344c27907211b9b795e941b22c3901d73f032384bf"),
		entropyInputReseed: decodeHexString(c, "3c79c8e9c04805c59243a1829fcf82fe3aebb6d4ddf1379b6340be976dc11ee1"),
		expected:           decodeHexString(c, "58e2adbd6a2b3a969eee1a9e126281a7252dcb4e245f40fe749134ee8426331022173137a701dc2448dddc251e11c915aab7b60e7dc0de474cd1f258776a6020eb375dc1e039f20ced6f6ebd04ed8d5d5860ea5e6022c2a4b3d09606abd650adde21327b02b593d3998f3b578e8810f326ed6ca48ae9bb59513b188052a6a3cec1934545ac59d18d58978638dca8f7bce40e083054e7ee4179389128668e67a6d7ea78f79463aed5c4390f43fa55fb71207e4c75ed97c951634555bf13cd0992"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_7(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "c93798cd05e74db38bda9a3be8df7027e23d7769810b95e53d8eff8877fcc052"),
		nonce:              decodeHexString(c, "02287711d4a54b81fcea542f1d71e894"),
		personalization:    decodeHexString(c, "5671c4db1ba7d61894b4ca2654951504c002cafcb2c75e1df10ba142f8ed0c96"),
		entropyInputReseed: decodeHexString(c, "868831402113439529375fb9131e34fbf026a9bc36b3e1dbe42c77dbcf1d2c43"),
		expected:           decodeHexString(c, "0699ac5f7b69bcfd461bf026006ef2c013583f523061db4d2189730ab12a3e5f9dbeb3be14a787598384a24ae6569a827f3c7e11a6adad5b8767bbec6e92aff08ea1ac033f58b51eb3b2577d59184f5b3db0fbc2fa1d25f8e9c37cdbfc6229f203a6d88938390fd0e8e523a8e59c0562e5e19be03e47d0163231fb0024cad1ffe72b602c7d515279359675d7ddb52ef589334dd7947c964fc5c61c368147609b09942f9c179d8d490b911e735358252cb3466f2abf0aaa3d1144b46ddc132a14"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_8(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "60e0b49bd01bc4c5fd330ee6183c9f26eeba1d05cbfdbbf37d8707403f6cee58"),
		nonce:              decodeHexString(c, "06197e3bed2f7a47c67e55b6df5cb9a1"),
		personalization:    decodeHexString(c, "cf3a4cbbdaf2e639db8760609e07e4eb54d20065c69ae1497c1edcbfcc98f008"),
		entropyInputReseed: decodeHexString(c, "8cc0e3f90eaffdbf85802cff871c4a1610d072f2335f1328c3d5d0ccafc334e2"),
		expected:           decodeHexString(c, "af99ea4cda797bfde0dc1663e365fa3d6f1a5a4b829fe0773775b35ed9a133215eda76cd1f041ae171556df3a54abc95b5b1daa4edb7e5269456a80f7242e033f09f46a785f14b9c6da175cd429f0cd0bab99f978ad993ffa5ae27c6ec01cd5c4b370059b6b4ebe6c87cd9163f5ef7be11e5d565711bdb7994208fad9a468c10ac33c68416a8ea8f0de850e286a2ab0340407ded4325b5ec5a19c33a7873ed10883be88ee00ebb89445a58ce761e022e59488da5a5bbdeae101676930fbd1bc5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_9(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "882791b637d6bc6012659803742cb7b45e11b7d3d31dba97674e4822be47c37a"),
		nonce:              decodeHexString(c, "354c1017cb46a6bda606fc81e30aaf82"),
		personalization:    decodeHexString(c, "3527e15881133d283f1a9060380fc91d61cb85408f4748b38e5bf554e58f3bb0"),
		entropyInputReseed: decodeHexString(c, "6de68ad518f8f4a693917dac2e7c843320e7091784c5a355f6370befc034f883"),
		expected:           decodeHexString(c, "c92c003ad40a6522419d31620c201a0fdfac61ad7c3a903b4e8e7ee1375e519c714e640560b31be8aa2a9a5ce44bdbdec3510c06ec8d3a1379c40a36b3bce05c9a016bb830bf4424092008a63b43963ee5ef63c6e8e11a4cc432bbc679391e69dba570661c903886a443e33d005ed2901c1f537037681aafbc11a16b7690c3299d6fa2c3e06e6ad49593a222c0840f10f21a983999ee6e343da5f056c866eedded8a27a8470877d53933ab032033170cacba3dbbb0c726dc3fcc9fd8f301850c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_10(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "d85c485d0295c56208ff69769631be5746593c9e12fb19bbb3abb9147a5077bb"),
		nonce:              decodeHexString(c, "9220464b84d17310ccdc6dfebb1b549e"),
		personalization:    decodeHexString(c, "4f50c2208e65edb2a0b0ba48d66224b8d5f37760a298e612bda29b82dbe41abe"),
		entropyInputReseed: decodeHexString(c, "31191a54ee68d1a9cf7ad06c850e9b15e6985bfb060de283c8050130972f370e"),
		expected:           decodeHexString(c, "568dbc61f98cde98ba1587bb4fecc4e6c88aa013ceb2f65bb409796616dbddbff2bb6a69638ea835c4051c264e22a8179e4b20730fb07e871d2b1d61705dd5919ef04385fcbcab5f4cf16aaf12bc11f5f1644d75341c69dc504f227d51a66606c1de739a36f7c7f720e0d42662952d8b7a3dedb89db78b74dc03732a47c63e475aad3bb4fdddfda9c635bfd1de3cb5dd34442de11105d1c9deb03f852b474f8a474feb192383edb566c96a2978b205b15ca5650eb731c4a8c18ef98f049ecdbc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_11(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "b1074d17bcb101298c96353354660de04f225cb931d495b1d6b834d8003e5231"),
		nonce:              decodeHexString(c, "5ed4ee81b422fb088c9737134de4e9c1"),
		personalization:    decodeHexString(c, "43df2624a3739075e179f2cdcf4694924554461cf758791a68fef77e6cc5bea3"),
		entropyInputReseed: decodeHexString(c, "4504014b8dd6457dd4ef551ba9467a070a69bf06c27e22dc19d9d5442b383a2b"),
		expected:           decodeHexString(c, "9768f3f89e4aab5ab0625e93c7cd1e3b3e6346635239d9bfb60ea09c32c54b8b72e17a78b007b5d7d55e7a8a7da5c22f9590cf608c9c1246c8e4e4b9eab3f2e3cc35c55899a102ad463ac6090a77414224a0cd78aa99f338b5260ceecb255d82cbb2d39c6398a0d631af1c4bc16349b6ee0029365220dfc7b3ec91ef4da60d5f3c5b4f5a6c11244da61d1f7838a4182eac06366308b1c0bd58e2ececbf987be4b063c31bedebc7d8e8d4a2af2819c87fa8bdf97be836b2c7f810104298cc4f62"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_12(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "486bc8ca09d5b34f05decff440bf43fec81eeb09c9c89dd227288926aa723307"),
		nonce:              decodeHexString(c, "7c441e405897e0fa84893ebf35da1f7a"),
		personalization:    decodeHexString(c, "9a4a5a092a887301d64d908d458eb15b48d7f9c7b8d93b413b39d6e4a40f8652"),
		entropyInputReseed: decodeHexString(c, "22ee37c6fd340905111c55c970b7db913f985c21bcfbfb688bf1867b0045135c"),
		expected:           decodeHexString(c, "e6b3444d17dc5d184f995a08c9b3b9b4ffb8696185feb8d126cf34e234b4d9ef0d397ee2d66658a927d22e51eb5192f1e1695f38efe95baa6d893b07fc7ac27a5ec0a826118974a0a497e49dac98bdaa25f95333d5889b6f9957a9ffd36b195dc4e110ed4e3746a79092a68f51bf370551a0bc73674e7dbe64b4c5f15e9ea56215296b320fc8d27e63e4ae0c25ed267bb3e9e41e9c1ae12031ba7116b7bd9825280a2b3348ad958294b407c5efce71cf1569dbf7a2fba77d6a158b35552282bb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_13(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "405212f01a1d87d3cf80ec38f5cfb43b98bef677bbb9604a82b34dcf5695bcfd"),
		nonce:              decodeHexString(c, "0e9d6a64c50c5e7422979d37af298625"),
		personalization:    decodeHexString(c, "7ca3ffef0f02a17eb4c647ada70e4a6222aa05dda4ad399ada807a2d246226be"),
		entropyInputReseed: decodeHexString(c, "67a1195b28dfd62ffe96ff71e1bb644bb2fce98f5f9fa0210ea0fa4767d5a7aa"),
		expected:           decodeHexString(c, "b39344e101b833d40b37d3d36440cefd9e9319a3aea6c419f393e6f012adf6307c1662dc57c136b150e4a013b3ea03c0ceb9be2439b595f165aa7ed47b7d1167707b77f779ce34091ea0823378bf4d4880d487610c0ed3d6fe234c1df7ba4c0e5f800788f8f8cd6a19c4550318a21b280604d035140ce6894e92a33c80c689a430c4e32040557987274df700590b592d2d5b95113434585566028774693df424b2e16f7df7cb3b27290e10f0bcf5e65b6018ee8dab16b9583099ba2b099cf3fa"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed54_SHA384_14(c *C) {
	s.testHMACAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "fe81e81d004293758ef6c3c90a3cb3a6bb16e11342e1eefb6f2e7e1aa0735378"),
		nonce:              decodeHexString(c, "050e2f17e21ae1d63b6fc8e96291c132"),
		personalization:    decodeHexString(c, "7e63805c0285dda53934ed1f777651383766f7597023d684db11c9a4abc76f3e"),
		entropyInputReseed: decodeHexString(c, "915209ccdad7aa0d8a2cfad167635fc5fd406890461d424d12e617c521bf534c"),
		expected:           decodeHexString(c, "5379f0346c73dc0807da659d3cd96f7abf427d2d6763aa6f2c4b2356bdbbd540639a80df034818839a3f3d72d7d1025290743a66619cf9ab1d01aaf8d798037a9db3edb7d88169b6b3cb0b2b7dfa5ca9c1dbe1d84016ecfa9114ed7eea135e8ff45452c946168ce91df7496353a897525deccab5454a4ab2fa5bc3c447abee706ebf109d7ac7c7f21fc6e00b761239ec13097d67bf6f685406a8d6b239b2c500e10e0f8fa0d20f3a714b298d0a477de7097392e60808a688fe2111c59027d278"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_0(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "54964538ca40aee8efa7bf336a23787d9506406964c32743df9cce28e892c2a6"),
		nonce:              decodeHexString(c, "9e7bdf08e85e8de7e049e7fc3a138885"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c9c84df81f73196ba5088fe28543a81bb52c1db47fefad85511f8d42a9842367"),
		expected:           decodeHexString(c, "919f9590973fbb06eaf8e97c8b202ec3bf6ad4eb50b9e3d6638b66220179eb8c3ef187dd50270fde903d5c7013552e4518ad9c69fa5e6dd7095dbd3c6803f29d8bcf9d65cde750b17c79737e96d7ecc230402e226e00c7252917e95499705523f3e15c2c59054aba3a40fa106c85d2fcb1ff9c115e19acc579ef1a190ef76b7529fe796230fd7c678ac9d2294013ee37331e45e072f2c8b5a9275ee9813d51006f80343cb6a21681bc5ce0ee6ee3f49710aa23c925ec8b018249f0e6f00b85d6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_1(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "ab56e7bbbcc069c176a9b604b0894a30e46a521f0870092d9818cc489785702a"),
		nonce:              decodeHexString(c, "4e9b183a9b016862b2c9b13a4623bdc5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2d0165a50e00e59b6bb91f5b2cb3dd40b2f87c561d71f08b7e8d1d52e1fa0219"),
		expected:           decodeHexString(c, "ed8b255670ab79f75ca1c9cc9d1a4e251834075407ea234f6f3abd8c2de4d4b7d2b3e4ac5f15421bbc1941e1ec2df7783a731c3fcc10eb0c6f409d90c499c42e20dda117cd8d7082a69b85da03d50fb9ad995e2675c065723ef849076da85ef01f23983d0c291fb63b670396bd9268279a811fc36337a3d348f8e3c1a7a014e5c5431dd1ee7f5cff7c2f0f3c8187795be3b1dab36562017a36e8b808fa3f9f223f5702f634ca619f0b653e03b3d5eadc2177bb3e93a6fab5446cce9ca1b9d19a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_2(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "892a2c896b651326025690cd9af53311f12d71972ca9e4c94aee9ea0c01f755f"),
		nonce:              decodeHexString(c, "10f95980ba91ef6eea9e431c8fba2e4e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "32b8d7e87cee31eaec17f76844ff5c7ae9060bab096d23b7969c12d15df1af1a"),
		expected:           decodeHexString(c, "944c7ca7babba582b3fce5884575650244017a285059c8fecc124154bc9888e2d864941dbf2a1d77c13f3c757d6a8578e949ce35353ccafc86291f0d191e4a12c1f11d9fddb5b1187e317ed60ff9cd4ab6ebe254d2a2cc22fdf39c0f2f16e564749ebf55f459a37b2d47f192f22bfcd7d8eedd5b24bbc778d76c0d78b9896fa5c0c0e049119e672de430bc97055b07f910002f888a4b1abd61b018b21108e19c9ea599d747f2af5fe6e874816ddb97e85172b575a8a8422b83a8b9639d75c354"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_3(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "7a8e279250a125706a0d1e92a97094fe54648728c723a3be1a45c7dd02411bcd"),
		nonce:              decodeHexString(c, "4035ec54805fd8059227520ebc9f9514"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bd7d34b927eb3da0348cf441835251aeaa894b703b13e9dc8298998a5cc402b0"),
		expected:           decodeHexString(c, "8f05fddd03cdcefd3dce2efe60a5da9b485178961bdb3a3aaca1a7a6f4ffd24418906242d0e4d33c3176fea4619ae4ac7719fe136389682d011f26489c7ab2c72705e1c1b88d49c62c86caafefabc68afd5ab0aa1c83a5f4b9de0c7594f975b454252bcfa3fdeee6375af00e0b61953a2ec5074ab637981184a4f34e899469fb119caa83202cd6f42ea5969be7eadc7e32ca9d3236aa300f9c5a9ab85fb00720dd2b6a80b4cb8054a6ada951a6f87341fa4a1064c9fbf6788d35d5a90bad4a77"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_4(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "505de7c59b059fb016559ce6f99171e22c6f6636910919b78d794fd3514366f2"),
		nonce:              decodeHexString(c, "d6f8cf141f1efc9215c8202145c47275"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0bc4ea2565723367bbd3e80f36f069424f2fe87f40f5b35565f41e2d3cb2f742"),
		expected:           decodeHexString(c, "aa3a0d33e280af75d8e170136ca86dd1cf8d37b9bca22057b45c4fbadc0633979be7fec5297177e9aec50369950d1349afb3ac0b36657da4948b67bc578594791bb6e1cfff21d43e94a8fd65b1eebcd785b1d6b105d6a30ce018f6f37a39ee07df6c0ed646a18c17f35e9419e195df39dc5606f3ecb6d0e15511397121cf71f30524b1a63778b3fbe3a67a51ec7a19414ceda953d977a1a16534c8e41973f66548c7ae8bf68ab49b58bd5ef8c3ceebc8349f8e0e2a539720ce9df39145f9d086"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_5(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "4d35a6ec6a5633f68f4f56675654cb350d3f146c8d857172a799bf2a6b3c0dbb"),
		nonce:              decodeHexString(c, "ad19c3f7ae073102772f3a76c162f5a4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fd78b50db3a0d172a4dbdf15a32ad7bfd700327716d91fd453fa40c6c85eb9ae"),
		expected:           decodeHexString(c, "bb8ff41f1236dcb659dd00b7c52f4c3ca18cc6f7a6a926de1b21fdd711684f51bb8ac74da99d56d4073b7d0ec913bf960731e08295dc7df8e1ef549470271c62ec06ec3d87c1bda9d34d69a0c2987e7ca690dc9859e07b73106f2074f5e8f20de801b7bc091c3f1cc5320e4e88bf7592c296c500d83db9ebdfa2fce53e6fa598647d91fe3ceb732e3793bf9bef7b926c37d094b16f451df29a238b7fbc66e267fc9f2361c2070f71719299458dfce48deb5ceac17be9b7b29af9a8ce3d59b071"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_6(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "7e57da83c7b270b432259e8dcd7152c3b3573d8962682de73c6a5f85e2caabce"),
		nonce:              decodeHexString(c, "922c9c8a78e9f06720b4d7a971700e28"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "92a0737fb1c80898e60e8b10f362364739f8cec09aa8dfd517f7409f1e1bfd7f"),
		expected:           decodeHexString(c, "35c086763136e2044a635bf0ecd0a91d99a4de651681bc2257baf0cfc75ab1f6370054cda77eb1bff24f12e9ca0a72b9bbe052d8372b9a9360d4091eae6e63d71194103f3d7ed68599cdb7a0da789cd69c838aa2dda57ba5ee76d7137a735f60510ac1e50b601ef92508fde7ffb2e3479c75dc05949d2d1bbcd64599d51fd6bed7c67c9460957616f5abe1b18e19ca9fbf83797079370ebf38d795f0655ab20f24e12c03571107bfe685c2c098af9278b9ad8ea6425505efa639c2c7029f0411"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_7(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "9f2b8224e424706bbfbc54efe7517412310a28df9d7bd3a66cff01a8afa65d31"),
		nonce:              decodeHexString(c, "70f91e40833346890d6470d0834ea070"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "964a8188290921476ccfa6be41125c992b0cbc95e81ed98d181b14dd87b9874d"),
		expected:           decodeHexString(c, "ee3dd2763f47a4ecdc32161cd979f646ab0f6746c1bd629f8194f710d005f9416e838eb95e0b417b0d2518386f6a4ea85d9c7e14268b2b517c95f3585928e3fc5d36fac602bee64b98e4229ae7e26ac3fd1bf5c343666324005257fceee1d789b9041faf87790fa2ed3c5a6fc660021c97dba119f7660f6cfa96f20ef93c0451b8ca6c006d9bb2b299fd6247eedfe23ee92f310f397dca9690b13f22b5f40b6df4bb593c59b10df59c91b9bedef73fff58e5012e1b6d16dc747b283c3c4838a7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_8(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "fb07bf1c10d609bd74bc78df5a4632222d9f4d4cd9a43ada96e47048c441907a"),
		nonce:              decodeHexString(c, "5736e1be7638d07a10c570d69cfac201"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a66c3be7f2e5052b3dd83886b465383304f2409f72abcc8583935ac3d41d7b04"),
		expected:           decodeHexString(c, "8f7ed755756d077e6907eeafb47a6f55f23e0f515a2565cf0543accb2c1bea7ed7a96a98a711f024ac4a5b149095069497d6ced09f340e558b12b064024e01eaefe9baaae45e16c31fbea8e46bd21977724f05e869f1ef2dcda8a19ed4734fa0c62b7cab32541c355d9d3bdb9402d6588cf9e2563eb4fe022d1bb163a3061290586ec5baa66f6a932d016413d67a6dd6cd10f49899909bfb757ac474240d4ca580f8bcf350abe31bbc7bb772bff1e1cc0fca23d9ee33f04f66a5feecf9f2ba20"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_9(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f8cafe20cada6427411b748c7f93738bb0fc6c9d8dd6e608ea4ab711a1797deb"),
		nonce:              decodeHexString(c, "c87fb9233d6083cf89e7e910d22a27e1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b5d161a63b29f7e4529b57dd47eaab85f1dc420626a6a03778a83f97a2d54e06"),
		expected:           decodeHexString(c, "589be310d3ecbaa5c2e555bc6a4df40132436ae966cf0729f6227ed47f12b8b5fd3fbc70dda16473d4f7bd6b46b3aff11f4dc63b308c4ee39d12ce5f9d677003a1a76f7095c499e2a108ff82ed34ee7e1ac3faa195fc84cd9ccde3ffcd70af0208f02623155bb3c7314ec4dd750f17161b24bdbae5686539aadb3668f57499d19ee2daf6a5e75312c1df652ded06273c90749432974fdcb9348a7bcbe791de77651c1de6f441470bcd2d074f22c9dd01397c385dad689bdd7f20359cf83e684e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_10(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "cb126527972cd1a3d8c67d4a05fae293b798dd379e03012d7a9f460311509381"),
		nonce:              decodeHexString(c, "24f77f5efc344cd5f2171b59525ffba1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6f95256cf622704512212560a1a384059a0d08fea6076db5079348a53510214c"),
		expected:           decodeHexString(c, "8a34a865ce007a8bab429f1abba270dd56cfcf87b942f5ffadee0941107b45cbb3ceadab7b429ff5c9a514a842bfcc0e04decd64074948a2ad1c438e65dea6b48031e2349897fb0b22f6a57df0e6d2ce204a459e383d363e793f67a11889629e338ef9798423bbeae82dc7459cd16db04fc32da0edc2aa934137ae91a12339dd26ea84d0af60eb62f468d5dda846f0fe55f0ee01d3b339b7b9016ae554f3617e87c631ad4720553c88c05721b20061edc2c00c7549d0969fc777a48353fc5d53"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_11(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "ca3a1cf9c596b8d449451ae09bb49b0898a0d123a0c99ad3280bf85245396ab1"),
		nonce:              decodeHexString(c, "f0160e24b7dcce83464dc3b9879cb922"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e287eb98763fd692944384f2ed6f93257ad6030b15832486f820672ae33fef59"),
		expected:           decodeHexString(c, "6b4d46836d0b98a01dfd2c4cf8c08cabd315438bceb76e6968a0eb0e346cd95e5c7e47bbc8a25f157a8acc7f7514b21e9319da480514b83efc04d27145fe3a188110209da69cd69af2b17a4f0096409879601a47e919fc4dfdb4df1578f028bbf600bd3c234ea51dade0435eb1ab471b6b58e1fa7c6d33a284f694a8ef5251bc7283131321d3bd5f1567918c7437c0c30955532747bab886eb3696bb2467297c740906200babd117857f1408a8181022cb7cbd6d42371c59abdb3ee05b116fba"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_12(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "d24d18408d5882a6f1547ba78cffae78472ea017759f260f324b2c509a27c5b1"),
		nonce:              decodeHexString(c, "096b80d7c93c53812138327ee0c67cec"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fa5f33900b4682d7a37c8d595df37987e130be9f432fbc9d47c8d1b6e6e883fb"),
		expected:           decodeHexString(c, "1eb1115a93e46475106ff3a4b0e361802e9120f13fbaacac7baaaf73122459d3fdd956708c415a3f9223140d5e66fb44cc402edbe3ee10b5fa01824213abac87e043501d5cb8c354a7f88aff6ff4c1524d12f8ad8d98127ffab709f3e634ae1933a1eebb3bba94b013fd1701657b3ffceeab5e01416f0db1921174ef4e1c46236784bf858d8b9ecd6f42d1c11fcedf73cacbc1b2b598d04b654e57d73381ea2410296e12a028f8c44bdbc7f59b0948f6d1d3a53b47a714639899c414b1d7a887"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_13(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "8409187206b5793f675900b4342216563152a6425d93bdacb9facf873b2a9544"),
		nonce:              decodeHexString(c, "86d22458dc89068c8f89d3a57292e973"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "caf8706b1013a8a8f9fe264dab6fa0162a2d8b79a86513ef45d9b4924dd47610"),
		expected:           decodeHexString(c, "aca70fdd55e10e390cb5a181b3e51dd18babdb4af0839302096c8d60d4f53595e3eec35d734b01e8c93303c44561b6d654125976fa79a6811642d975ae0ee86dcb5ed5e850fe55e06488053a13cb7446cdc53d9e78079792699c3c37fd4e66eaed0ac4892f604a01ed02281f6749e73866ee9da70e085d0a95d3f475152f2bed88207538c7d2736f8faa7ea658dff5d656909d99eca2fb07273e4cc157ee992bbac1362357366203b0bdd60071bbf627d74a453962eb16fdccffc3fd25978b79"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed56_SHA384_14(c *C) {
	s.testHMACAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "594986d76381473aa0470f1e89a70cf84f5dcc4a465d98877c58acc47a12270d"),
		nonce:              decodeHexString(c, "584c6b8b62f91b8988e4fa25c74c29e1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f1901bde967034c78f5e219b93c087a8500c1aa74ca3db72abb401b021fca578"),
		expected:           decodeHexString(c, "11eab1d2e4e52e5ebb04577997ccf866f0903c77443a9bfff2440f7eef8a9aa00976f6ee82be13c20dccdbd0d29172b80dfa3a75d9c5a7d550cd3ce995bc6f2d7c8d7161a56af828979f43a38847067dafe2ad9ef0f487b58c840420c99a6c2acd674b1097e2e093e08a8755d7db81dc81e2b92addaf02470bae3ba7335c785710028efca5e1ff3f5da0d3ec13c8751086ce5856b75b509532aa0524fcb2acfc17116addeaf50adbbd84839fb51ee662f84a26ba28a05602d9983e9f954c5035"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_0(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "e9fe33f3d1568b146b7a86fc0fe80e11e7d3e08ca39cc5dd38676f8acfdb75bb"),
		nonce:              decodeHexString(c, "9aa091a027fc5b3c394c7f17c816c3cf"),
		personalization:    decodeHexString(c, "c9b45f1214b7fe12d5fa54b579e055022c25d23d8af63e3926c0ecbd92ab8d01"),
		entropyInputReseed: decodeHexString(c, "f6270e5ba1819e482e42197896b924f66300a0d425153d551eb000eae809c15a"),
		expected:           decodeHexString(c, "c7d0b27b36bc2948319540055df229ad3d43b5086ae345c1c3a517012c247d5edf25ccdf83b6fdf4ec104149652b1d26ed70367b246dfe9f5890f726cad677744f6408d243d986ef768aac65617c06204d35e31a98a02ed3235b0f98998669caaa3fb5eb94db64c2dfb3cef231eda1fd59b4377b0b002a8c0b5310b96f49e0fe3c46944514e5f5aeb4f644d4385f0e2109bfb9cfffa9962e26ab2c7649a27efa3309e72cd15116a5787c130cadcb4e42ba6e9d0bd14eed1c6a019b5be13be0c4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_1(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "183c2b6966472f86260b6c1dbd1c9560d9170c3ba74c7ada8a7138b4baf2a7ae"),
		nonce:              decodeHexString(c, "6c91b300528b7e1feb780786839f1859"),
		personalization:    decodeHexString(c, "7f5ecf75fbe172bd8fac81204151f395e5b5eedc8fb24fd7521cee39ba98439c"),
		entropyInputReseed: decodeHexString(c, "0137a531af7201acb07f760c88b4431c62cf11e84471547aaaa861d7dcfcc179"),
		expected:           decodeHexString(c, "fa4511c920d1614b068dc3a76b6dcbcb3a72de5a6fd073f8cb732acf09b5847337219c7d226d221e4130b3f100c36037e56f064d49accc21eefcb69c030e44da36a2c0a220000b0ef1f730a1c243d7cc683b70c95bd1dcaa2120ad2a20a9dc2dd89a2650d8c31f0e1d723ef9ae0e9b404716332bb86acfd8f31be8fb6d14fd6d31316701975d4f5504ecf4d1280902bf0f43c3f348ee60de262995ae986e1073ed5e5d5dad483f2448cf414a2d21452b1725ce457a9cb614f10ba3e83f56b163"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_2(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "5338db2488db1dada8626cc7e911e095ed46fe607b9ec5ac908b11c17cf12387"),
		nonce:              decodeHexString(c, "91370784e59c97fe5ba145bf3c58980f"),
		personalization:    decodeHexString(c, "d7d439f9f80141062c166dc456aac9c0b545b6f345d82146555285a448bedf62"),
		entropyInputReseed: decodeHexString(c, "d61b50c21db441768cbc440126c01fbe2e4144b406cf3e62b663752cac4eed14"),
		expected:           decodeHexString(c, "5b159ee4e4a39d23bca4f69d657725f35725143b89268a8c92031dc67cb43eb9e1fdc152249b71526e9fa3f834007b56cc341a339de19c39a1fa914a30ef6b004c67e056af8a3ef7a696060b74a96036abd17f2110a31e1bd3935f6519caf91765e119b8f4dffde6734fb47a5f513d46284e5472be68f5e6c7daf92dead6b4e8507dd8e6dc47d6b5802d56fe45b086488511b7784209d162fa6ccf090473e1eb8fef2158bfec2f05b8e2fb574033d24e4493b1192c4772cb326588f75cc86940"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_3(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "6eb57649aa8654643510aa360e0d25f3a09ee4ad74978f88a6edd4eebefa6948"),
		nonce:              decodeHexString(c, "279d47d41e06d865ee9b0870b5e52b96"),
		personalization:    decodeHexString(c, "983efc40876527d09e803e3f908c9636d71499e88291a35e00907a69e280a096"),
		entropyInputReseed: decodeHexString(c, "9a616ba1f53fb41a094b549d17f887281d0c06cc89aaa80b24a81af14e0c7b2a"),
		expected:           decodeHexString(c, "f0b54d6afa82485a9ce9acf61f3ce3593e852145e0ffcb364db0e71d46464620232532580dcc586c5b16dc8c0a62c0fb918bd979917ed6e8be595c4d0291ed707d064efd9a866066f6484aad4a5a4aa4d2c3475c4466f25d50aedd479378488a6219e57ad6952a0715e3f8467cfbedc5b8216db859fd54907f9d332a6944d6683ebe49084077eaf8cd2f1fd8c26cf308fdeaeaad9fccf7a8f6947a484e562e668ec2f834878f0d62158441561b199fa8c61ac8d98147c30208818d99deed968a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_4(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "c055fa655031d122e6f6e237fbd017a494b5b3efac9fb149e5f2f9134bb1396f"),
		nonce:              decodeHexString(c, "eb7f271592d181102cdfd1f6705895a7"),
		personalization:    decodeHexString(c, "53cbc55b9b845d44c96924c0f1876997cd52158e1e0e55ac3817ca90c32e2dc8"),
		entropyInputReseed: decodeHexString(c, "d1545f5740943c40ade36b4af9734fbc15d478638a236dcfa2ff83e49abfee06"),
		expected:           decodeHexString(c, "978297634cac67b7804570761c52bef44cebeb17965a03b1b57aa68e6dfe4cd88f253dffdff36d4143aba689e531dc129a6b4a50d9c0e629d5c4a544cea8b4e47e75228586453d23ad0a8024b416c858ca5976753852e9f2000ed1b05d428a7dab5b5d81b251e71b2d5e94957c8d61c3768822304b0ccda74b1a296d4a9f5951adf71138727c19ecb8b1c7c6b784b2043a8d752da3613f50dd2c85723881ac44b5473dfb6f03ec3bd63eac4460486af5dc7bef2e0e1b744923dedcef37d8786b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_5(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "945f4abe52d6ae3776754b04c94380b80fb500ab44cf1591fceaf047df081091"),
		nonce:              decodeHexString(c, "673c74025180706c1d6b45c44a23af9f"),
		personalization:    decodeHexString(c, "5e7b277fdbcbaa581ff17856616e6c88ef03620b1d3e24eba487ccbe8ef15a40"),
		entropyInputReseed: decodeHexString(c, "e0a280f9cc4f70403f4270304640de69dbf286e2b8ad87532275d75f76617cb1"),
		expected:           decodeHexString(c, "17c22e1ef2cb3fc4687541be3a5fe00d061f5af595c294851c1320bf029906c22712b26a014a472bc9e9beb8a8aa353ed228ee2e98c1b9aef32f3c442a18a70f11966a1eb886a7867520b57b71da397f5ef9c870d0dbf08e9f15a3ef8bc00ddd9a5fbaa0a9ec687dfb6c2742bf6cbfb6c7745c0f93a85f1ab0b69ce15eaa528ca2caf67350f498da97bcbcac35fdbe05c046098b60b1096d5a134ddffcf4a2e80d8353e31ba0f6849840b6a20fcb879ba60cd4c8ea80d9d6bd548ce53aa42676"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_6(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "63eeb912252670ff58e0660702d635d2ca616c877ccfd4a381afffba300e0cae"),
		nonce:              decodeHexString(c, "6237234f1463817587eb8b0343fc85c7"),
		personalization:    decodeHexString(c, "1b771ea1255bbbcc43cac4821677464071034dbd3a1ec8d2491621afbb0de8a3"),
		entropyInputReseed: decodeHexString(c, "6b7b85052b05ab5f31f21b2f698823b7a28532a196fb32e35e125c9d0ef112ed"),
		expected:           decodeHexString(c, "88ac116cf48a2f5784543e92a6907fcaaa4c2935cd9537f38899698d979c587bfc03a22ad05cb2ac09ddcf242df1b1138cec1ebe5fe6cb0e08d986cd255a2fa82a7da9f55b696970aceeedbaf30f9b4b470b1d4acba821cee865999e8ee45f97ef21dd3987947e353c1f421b30c13061554d606705e8400e95acfa72e7ae13a701f495af161289cd8cb63d36e808f31f8eb92ff145cfddbfb16b9c3a645cee37e2b97cd33869c1e258568880f81ce69ef183fafd7de45b5102f878df77c63037"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_7(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "ceb10a8fe1da31ced236abd502c8c7afd3cac11dccff0e676881c7149b671186"),
		nonce:              decodeHexString(c, "5194eeefd9bef21cc5ed6ecb0a7ec423"),
		personalization:    decodeHexString(c, "b2d9a3c22a0495bc78e40551a23545606ec13f8d749c409af481291a93cf5d00"),
		entropyInputReseed: decodeHexString(c, "d0a03171d8d80cb2cf690a693b0d3636b885d0a9605132b159af1db7bc2e6b2c"),
		expected:           decodeHexString(c, "82e588bc332914e9a914cddba9bd9cb3d5f8d075d5d37df6b50e0c55f5fa0b8b5e0877f69c38653dd56737ca03e2b30089162b8fcdb91bee058d7913b6ff59faa3a22c11f9299767bfe6b8c187381ad1463d7ee3780e389ef648343541822a43235adf10719d48973c7b34a3f6d79db034ffd097fdc85d230ebce5c4a4f95dd4c37ef65244d35feae1d85308dd17594d70a9ea1a17ad987192a7a35646e9b1da0adf49d1af3c5f8c7445cd2e9fe4f8883256e7433785de5e8d878ad9c8996576"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_8(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "716064b357bda6bcae2c7ac37ddcd5e3642fd83d7be235766583dc7275e924ca"),
		nonce:              decodeHexString(c, "9dc0d1636f5289e687a80f41496dd213"),
		personalization:    decodeHexString(c, "67c24b6f8c0bdc67361b7d010f8a815c4f61d6ee3b264fca39e1e16b2b2f05f5"),
		entropyInputReseed: decodeHexString(c, "5b70765b2c06bc2caac01fbb10059da98db97b279ab76ed44c659e15af499082"),
		expected:           decodeHexString(c, "21560444beb31677848623467f52ca5e5cda1cc405dd82d977ddef932e67c4f4b89ccbca2f8049f670d81f258beab95cf1d52b2b69daafe94c52e66a8dd770982883bbe3fa87fb7da4514636926ac8ca9984e6880403ec38ffd4f6d42a7f98650a610d63a37e8a6a0dc60fc42134e88b7cb02d5ebbf8f54d7e410e21326290b063566808ccd3b2af06c5b09c89d355145675a32fa381ab959e81fc8d94be803a0942b84e86e163c3c6a535071aef321de9e8a9d0ddd244e042b149d0709ada51"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_9(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "96f8d3c86041ac46803f0ff7214049e467099c15864b4ae6ccba6ef8b504c6f2"),
		nonce:              decodeHexString(c, "165ab9db42daea63bf0b935633a9ae23"),
		personalization:    decodeHexString(c, "48d26b9c5a414825bbb606fdd60fad22a4a2eb80215f03847bfa975ab9db7fff"),
		entropyInputReseed: decodeHexString(c, "b11e634a73ed96d6c62b054a680f361f8e059725a81bf2843556e3eb63c3005f"),
		expected:           decodeHexString(c, "fbeec630b78acae74260e854f92bfcabde3e58f4e5e8a25c426d76748d2f0fb97f06085e11c268bef6604d9b7cc2424c4bbecc701e2a0f730ed2ef2a244914f2a927eeda9bb62060ba762306cf428cdb3c4f18deed4d7d195c4fda38322a7f5dc771b063b78a3ad0ff28d78be1595e78966ef7ed510253456e30a157c977169b5ac302d9f4a05122bcda6bbf10b5ab7d3383b3370e75dcdaf4af7b4c7e4e34edd7bbf0b4fba8963b14545cbdd0d232e81a89616876c74af85d12a57b0578dc76"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_10(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "69980481f405f3db91703d675f3b31a833fcda7aa074c6362645ab0e61cd59f7"),
		nonce:              decodeHexString(c, "b515584abf16de082b633e6cb0700ab7"),
		personalization:    decodeHexString(c, "d3908b6f719c5195f52d65141aeaeaebed7506731f4c4d3c9988fccb2d6673e0"),
		entropyInputReseed: decodeHexString(c, "0717a57c287acf8537ffc9933ce695ec84f88b0ae6203f9c0b7ab2f7decf97af"),
		expected:           decodeHexString(c, "9647db6b4de8e80925f66b10df9c19b77a94dda9fbcdb9e64a13d751ba2304e569c871b2439e48346c7b100f7e2905a6d4f37cf023bf2f7621fd0cf61b42d5cafa86cf40d33457a912baa5a6042185f793a3952fd29b51d6a66e73ef1832a23eb42f8174c25eac11ad97dca615c988c06293e67865adadaaf10bc9410b4b4fa4784043a9f7f162ad98eaa49f5fd9682ec03421da2d67e9ee8b82579347560085e6b74e385033756702974a1a95edf7338755f860f3e553a297a5657a5fb81169"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_11(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "fc465c7869bbbc201905b238d5d24238c1ea1606f08e4dc3158664dc57c6e394"),
		nonce:              decodeHexString(c, "4c3de31e1ac0814a15679511c018e6c2"),
		personalization:    decodeHexString(c, "03bf0a6ba3916142adfbcd0b5e9542c4172ca5763abbc07b65df7e1c2be360ce"),
		entropyInputReseed: decodeHexString(c, "ac7e60548b32b65fb1f98c48d8d1bf194e7912a6224c9b94a2dfddbab882063a"),
		expected:           decodeHexString(c, "df68c4a77ffcc76aedb7f28ecdb28324d07975f61cec64b3825036108f65a791885f70a67149c0f4da2c65e821621600961925c882ea0b251187486ecbe60051fbcf7d91b34e3e7e4f328cb827a2df0626d80c13dc0e4f4bc6fad4bd961bef7a08678cb147415e181a927c7a256d8899d0741b1fbe6fd90891d862355add178469fa72987bccc319f80a1360944c1eb4ef5bbda4e91845c9fdd319e6f541ce7aee67307ef3ff8f592dec9067296f34251513a29aa489a16ef91797448ea26b91"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_12(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "0a3fe7c48d17d69dd8a7882626cc44e38f5ab07fae04e99ba616eda03715954e"),
		nonce:              decodeHexString(c, "dd789702cbb2cfe2a8a751646dd97f18"),
		personalization:    decodeHexString(c, "f5eb1c3456641409426e15a5bfb64e61db80112a157d6ff8fceae64b3e066852"),
		entropyInputReseed: decodeHexString(c, "16ff1d6f28c93bf290aa1c561bdcdb3d6c31115dc623fa7bcfedbefc459e425e"),
		expected:           decodeHexString(c, "4b41eb927e90ef0771f95ddc9025d2bbb7c22f40a9d95881e3cdbc361a1643c60a6ef5a5ca2b73fcad75121351e1ff0233f579ff8b5bda5c7befc06f8f8088f7c9ae167724193d90c91ea4fe759b00b96c7019193adc2768b9be333bfb1b81864064a8b291efa1bb129034ee0cf760493cc38c2d8252df497cecfd273088d9f2a63e39b7f979e0e82efd54002b4589b16948233a3723b0e667ef214733a970106bbc9abda95fd40a1d6f366852012b3a89e1dbfe0b9150edc12ab917f7b40dd5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_13(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "e2923545abfbd68ee8d172b534f68c643c4eeb09705b50bc981d435bdf552d8c"),
		nonce:              decodeHexString(c, "c5b16c09bca337de9e9b059e28e24385"),
		personalization:    decodeHexString(c, "4bb9a0052a275bcded3eaf8ce25c87f863c97097a6592ff31aabb5560f72f3a9"),
		entropyInputReseed: decodeHexString(c, "dcf1cfba089760c51194567f67bf3c45c44cc949a507125d80adb8d98b6b66f6"),
		expected:           decodeHexString(c, "86b5b43dcd94fac15c5e20de9627310909ec778e815dd13b7050d50051974757fab934546cbfd56ca07c3fb038efe6503c8aa93a5febdbf79e7c9eca10e7a14278bac7d0b653941f00bf6ad4518e20fc25ac6eef82f6830e84ab0147e4d2c9ce303325e02a5c22dc8f791e780c3346a481c6a1a9ae84a9cf06a18ec6fe4db0eba9741128c5c04e62f5374ea271d1d86a9e248dbedb839af0cdd7abaa959a41375c809d5e721c7859cbd1c3885a38c3eba19013de15e8bc70d2e51059c1e936ea"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed58_SHA384_14(c *C) {
	s.testHMACAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "bc98062c88eebaca74e3faff5389e92f14d7ce6ad5a72a7e31ea1094349ce6af"),
		nonce:              decodeHexString(c, "8ceefd3313e5ea15b41615358fc65730"),
		personalization:    decodeHexString(c, "8cdf01537ef4c1aa6164eca9f56850569b2cd333c7ffe73a0f5d21d8fc0895e5"),
		entropyInputReseed: decodeHexString(c, "9e42627baf4a9d2ffa76b4af6837fa71b6b8a83ee07d3f356c12322a745f35f0"),
		expected:           decodeHexString(c, "46803c0ed67ca292352369f340af7ccdcf0e7e98f43ed4da4b8f88b0c241527b2673c53b941a9a452d3aa7041cae0cac6d18e2c3187ffeedff25f27d08cb7035bdfb78b19d66f27b55d541d536230727483539268ccf3cca82b8ba66d1e4dd9d7128c81c1a445f56281d133e7b97cf920a194fdb27946e7ec7e1efe5973101b98e06ad08eff3b5889faa07dee6dd2d69139be610c21c5f47add75368161c6fda6d13c0a5604c1ec7fccb77782b15d944856b8523187b1a67e36c7acef5afddde"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_0(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "c33ab8358fa16a06eb04344b7aa06089b7f2f97b9419e0a0334afc2a87ca0a91"),
		nonce:              decodeHexString(c, "696b03c9494d996e5e7d53613799d2fc"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6f84eaf1b366ed8c87e12fc4977ee89e6935608e22c9460e45848351b807c016"),
		expected:           decodeHexString(c, "1a3b0e806feb6637b13729a98a73d0e90f7fbcd8a71c6096b9a21bf2205c615c7ad2d389e8a5a20240ea69fc67c732bdc4864462c966c255077c98ec4f34b6cf2802a8e11c78e1639821efcb5e7eda6d9406396ef8d9d36675c09a9bd0e79ae55a5ed3d9a7319204bc42cd2bd116a6dcb90a21b95e6113e7b499a86a7bc990aa6f73ab8494a66cc84769c5b40a304240ceead2e1b5b299ff8d7657fdb5dc78ee442f92b2fc2e9fdeff58a7b42704a2dee64f938a8406e249cb29368c67533781"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_1(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "605c14a31962cf0c872db9507fb98799374ecfcf82fb142844289c22d015c214"),
		nonce:              decodeHexString(c, "4fb161652e349892a949edadf4008346"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8c2043e2825291ae3aae4483a74c208c7401115b8f65d07cdc45279519b8e08c"),
		expected:           decodeHexString(c, "3c700e3c037ef03b002a2fa2f2ffcd22fbe176e111df5e72ac6017ce72010e3406bf2c000943625710039d45c2ed734bda37530b0d61fb87d4c52481aeaf314bf151abb4e9c6a8059770cb98523d9074d7e7524db93207898f014c084e4e8d2dc661f4e5b5ca872b817e2ecf35b9c221b3cc5641aca5e57c03001643cec2bd7beaca5b0a4bad7fda60b5c853e1cd78d3b7c92044bebe688745a2ceba7173eceb8901103a94bcad9f2b9b9db6a9f4d8187b98fdc4987b9d959f9fa9562d7fd3a2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_2(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "1528fe54c075c921979c63f3a360ab7f57072739597bc058dba8d106e9323de0"),
		nonce:              decodeHexString(c, "a81ee7c2210cc43fccd4fb7087f6aaee"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0ca31f1bb59eb8e6f21ad5e6d1d9e992d100e732463a12104d709c60b49cebd2"),
		expected:           decodeHexString(c, "e3f3ecb70a760bbbe3a3297999756888fb879400fe4cbd4b7cf844f360e0598a78c23f599f4307c65d79fad6c6118884f362ed80b0b84de5479dcca0b674fa77ce318596439813ab81e53a21e9d0299bb2ccf64dad6cc3310fb90d9398697578c416ce1d3ff93e076257ffe47946205fa4374d3ad16a2138e7baea1da0d13b5206856e4a29f019ca29c9bbd9cf6abecddca6c0487e8d0bcb32d444b55830ea68a90dff13808ed32ddb32d1e4e32969929574ca7145db366736794f4194725b76"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_3(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "9d48016832e9db4c74b235b91209407d8ba6a78e84ed7c24907bc8fc79fb13fd"),
		nonce:              decodeHexString(c, "097363f076365479697bd942de0b2b9c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cb6c7abfd944d1f479dff5b17178251c5f5cfe034381e12844fe25090cf897f4"),
		expected:           decodeHexString(c, "308f798f7d86a3988962f8efd782f0bc4bc5758e719a080849120e97db4c525fa81a7218e9cc3262af0c2e0842931547496be8ca56c9af9b3ca92954eeafc8c0520a7312265ca5e329ac005d21896808285400b3612c9bf53151177f7e450172391fb5929267ecd725688ad996fa1c626151303c2d64b37f62f055e0f22383d9c000e665e1e94cb21a57db42e10ee3343762cc970586f481e7fc427b03292912b72456a7e678b33505ecfa80182e5a1ff30d57ec0512620abc7ef0b11ce4157a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_4(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "4fc7afebbbf7f4be0b82ab26b6cd6c75fd532fd6c8dd62b26d5dd7ed92ecab97"),
		nonce:              decodeHexString(c, "3491ddfa6dbb47d5284c0700fcb8fb86"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3ec53f261e119e3b6e2c8dc417787216097b0add08f1fcbc9538707265f42b89"),
		expected:           decodeHexString(c, "82f4fba26cfeb3c444847ed71f7b46548e8c844d1ec67468dae2d88be883e8e00b94f297ff1db8f1a05a8a607619cad3030641909abee4be29e540562d7ec7eef043261e729c444d5f586ea5a5e9abc0b1adcc54fd148ae5f1f1c04649bbcebe2542442039e40661a798a55fd43c9ba2d1d62bfd0bab216ce105d6330de9192159f66e5e282abdc30262958422c707a805b72b306b61f463e30380d2ba7a93f44548f7372a54f833f491372904f30985d0968e989deac48388286654b847b0ba"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_5(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "4b0b0e242f3e8f9ed9fd11d5cf132ef9f86e48f984b40d5691a9514425e900fc"),
		nonce:              decodeHexString(c, "fd5030e74df72b1eadba12b0c5116db0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d6de93cb74b1c3821c6929337d56b16b03def6fe5d5ac945677176e698f67ecd"),
		expected:           decodeHexString(c, "064dfb9ac6368b3134f3f95a2284dc2e13c81dbbb574ef6892f0480d2fe1d00e22d3128eb00ebec8da4725357c838b87fa3305e18b679d2e4fb4a8e5a7bffd4f44067f7e3e6b91d222508cbe188821aa0fdf81c4ba11ec886f0928b494cbb79210b03893b3cfd66371330887dd43c84f100178b23b4db032d9ce8a39be492ab70adcef6ce6f0fc8345b859556dd2cfeb2c65236920f6e7bd6fa343bd6ae6e89fb2c03322e8e82177cc2116920807e8abcc69efe230a3469b3a59eb2c1fd64a3c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_6(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "8c7e635fd9bbcc0c36b03fdbec48f65ffa73a89af9be386194dea3eaafb864bb"),
		nonce:              decodeHexString(c, "68f57620a466177a2ef0b54c6fbd9cd2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0ba84007c4283a3aeb8bd178920d22bb2d12af03ed8352b69e0a4441b449355e"),
		expected:           decodeHexString(c, "f404a700fc8e804904cc3dd27cac7fbf3db78aa405481b9cfa77145b0fa02337e809ad1b0ea5994630eb349de822f25c5e42dd1e8dd7e28000f9295715628f2e69444963c81cc06ee7ca0e9be2685f3abc60442a057065408b614628530a810dd8b81e7d3eed48e093511a7fae8fd3943d0f7bc6bb0daf666b4126843a61baef8595564932243689558a17ddcda25fa9fa680e536aceffb1c847266f6d555603e01ac3776050b95da939c6a6387b8d83195d721ba724a6c39e3a0a784eecd7fa"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_7(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "783c870738dbd96d3e2e6825666b9ac1851269994ff1bcacab099a0be567f6ea"),
		nonce:              decodeHexString(c, "5940980f7ca2f30fe98bbdcf3523d658"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9d9290392c10d2ce9a17a24416c903108cfcc88b28d69678bc54f37f3d9acac9"),
		expected:           decodeHexString(c, "307e462511842e9fe6ffdb9891e5cc1cae7dfe6094a636e1a6bef83f43e04e83c6e8dc6f4b8ab7b684f8958fc11dba6863c1d2c8ed89e1142381fe246d828771a2acf4250fdd762e3509e0647b38e7007f14f42d728145220f6784d4d76d2c9c84bd26f7f2c41643c6962dd375aafcdcf9d13a7eb01c855ee99901f217268c35c190e71fd1ec75ce4c0dc5ab428fd4a19306f03268be66137fc4db8bb34fba5d3615f510089be881af426de68dbd328bda6bb0f1794b172122e6ff853bdd0673"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_8(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f58b054fd30d99ffa61ea9526421094e9e8c220176e7ccbe20b66b236b635b73"),
		nonce:              decodeHexString(c, "736eab0bf62eb65ce3f429be9cdad957"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c0b6846649c9263cf3611f60daeec342d42817decdd32cad657bf526dac170f9"),
		expected:           decodeHexString(c, "33fdff33e938831f63fff072936af723e3018600baea6a63bd84c02d06587a80c4481f9d620c6f171d2774566de67e6d5c44b72119b9272cd47a60c52034aed50f538a902f016e56a319760c90fdc8301fb53221be2eaa2655e3c1e2a1b3e851d1d335a2184f808a809e9272b664d19645fd52f63edcd5adc289392151526d2de8a6769a287bff60c53f27400658445386ff4c86b57386f3483275c1f9e8bde87da8f6b3fb1d9175f477dfad712823a498bade582e2fa88bfa54c24ba9372634"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_9(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "7377011c3a56df2281f3db56ba87745a5f0af4ae7dfbc8795e665d89c82c0ba4"),
		nonce:              decodeHexString(c, "4013ad809e8a9ff093aaf98731073622"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a9759a65b68dd573bf678f1cfbf826ee8e4002ca7494f4cb4d4c6d1b39dfa7d9"),
		expected:           decodeHexString(c, "f8b95143826c3cae235ba5a08312a398ee963b3cbdd4bb8385f06eb350aae9d981b84c5f72705f024c2a9a10bbb54fdedf734170f7f57519dfc096054540e65a12cfa64d21a4117c8ca60668fd200f9bf4cf914558352f7c78296473eb5314aa5c3ef41138454b0595163a6eb016070c38bc34fc7871441a3e637c8d2177b3f3cc0e2b677fec886a46914d3d8e7dfe182404aab66b88b2c0f1645ee299efdab3368d8f6ce471bd17eec5dcdbf7b0e00a0b5b1b024e9d9002addc284df8e0fd71"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_10(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "2140a01687535a8723cbbefd90938d6b20dec281427e812dcb275fc6a2ce3217"),
		nonce:              decodeHexString(c, "641d9ad98ec3bd352ac63268262bab2d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fdf41b2d55aa760acec8f10f608ca1dd337d91f4081d702bfbecfcbfb71a8830"),
		expected:           decodeHexString(c, "9aa21acf4974954022e3e381eedabf4017c66a04ac5b80224bbecd0908739fe1e2b370d4aa9b9a7d5d6aceae36283dc4cd18391cc9ae7ec5e283eddfebf30cd380edfb562e974dcd39dde4cc99ccf6182ab1b14da6d935ded03c8bc3413c0dc75f6751e246883747a48bcb4ddc4084399edadc6cf7cd6b3e907d5f0f72d4ddc51b7e26cca53ad54257f16d142d7c18e296c558986537f292b1cf4d58c37a6f5525d2db83177c0ba8b453e826d2e5530a81f51eac307ca8457a2878fa1d132093"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_11(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "85ee6e9aaeac38c54fe6ddb662c6e6688e13d81b192953290f03d0158a560d1c"),
		nonce:              decodeHexString(c, "9b20ed194a7c5a1cec35fdec02fe1c71"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "664ea9e1cde623c70377c60dbd5537093e3740c9cd8a6e21b4321f626f658d33"),
		expected:           decodeHexString(c, "216bb8aacd59cd7d4406d9cf3e7d07a3d0a43a320f1c09800e455e3fb83dacbfb617ba105c3658871535c834335dffe2cd1337c4a64b16645badfcb9166e4a36978d16be72a44d5f2aa035631cbf22ad4bd7852b32b6b0bfc9a3c1ef87468e2dade59e7de5ebb35524fc9f05bc79fc4218954dcc4502279abdd45e24a3dd07cf61aff68605bbcd0363f9559d6409fd5d7b490ad4556df0b913824d8dee92b1ccddbd1ea3624e877c00a20618dc49beae5574738b209e7902764a8668dfbd085f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_12(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f585579464d39fab1538ce514da9b17443e7158e943fb34aece3853406b8d940"),
		nonce:              decodeHexString(c, "fcf66ccbe483e2bc02d1634919e39ad3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "40d09a2211e18115c49bb9001caefe72311c6321871b920d641b54afb4cd9dae"),
		expected:           decodeHexString(c, "2ad6f8ae76677ce1a264617f62b57b0bb1c58305a38b9edd5a7666d480b16cd929c2bd83a7aaac2fb13441e6865bcea468fe0993c338028ddb52f478d2d5338c41219bd02636e5407f05f255dda148fc7662f99e601e759181ac12a5d57dcfa15553f486ded28c1a9e6f9c473a198751c7c35a46f772a5c1f89ad6e1e53a6184039d108a41cf197bb1106aee34a3983075e8e5561306dafd4984f51cbf8833cc83421b0cef0b85bf1236149380a4c461968963dc95f7297613c53d430b9bc0c2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_13(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "9f7dae4854a00657c038918eea6f1d10d6d7afaca6a7e00ab6356039c3a09dcb"),
		nonce:              decodeHexString(c, "65bf1d8a311c50fbf92e68f6392fd3f4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5d76a31b1f654dc460514f95f494f79113c6a5cb06d007340f627f4eb023e5cd"),
		expected:           decodeHexString(c, "dbbee262269510322cdabd6633a070a92925d13c1c82ea98c95c6449160625bbe0b74ae08d2ef1573e64ab0353e3a1353b26dbd9f0144be993e6bca82411e9de8c74d75f0cc6a573eae88cf26a36b42092d608220bb6891204c69dc558a57b14de9d7671cdd75767c1c62833940b69c093b75f940b1514575cc1fe5ad3a622c1d116af67501e4c4a9cd30412e9aadd6fdf7f58f6a631d883fb394a1a6bc6e87b8d19f47ab83c6f683a2ef4e1ded81aa9ff1fcd0017826d97c0ce0ad1b7fbabd2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed60_SHA384_14(c *C) {
	s.testHMACAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "0cb47a66b5873a2cdcd19b528dbec03818386f3475c998347fe5f7dab55672d1"),
		nonce:              decodeHexString(c, "05b64e67d2f32cae08f7fee213a33326"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8ab6f6f194e807b419ae5d253f2ee0527220b0cf86021d232c07230c98beea31"),
		expected:           decodeHexString(c, "5af3db5149028dd53e8644f1d8fa2cf63d3a15933ed576ae30b197614a18eed9ccdb5f53b1b5669b87fa906b64d8cd54afd691d863d4e5abe0aa0a94959d5776e53bc6881f87c4e4965277a1021ce64e49afa0d54935380f90dcd284b1af2eba13771358d38306146201ea764ea4f92540e6858d8bafb18fdf60b69d0643f6fa3f875b31e3c06d645bf00683f9eb1bf9fbd113fc83cc0ddf2bea42cab2beb51dbc23231e35b7e1698ec210a46f3a326fe61ba363fbee780e6d585461ae6cddb0"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_0(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "12ae99fef2cfd193bbb984b869bcb7a64f795d29654e13dc7640800eb1d766c5"),
		nonce:              decodeHexString(c, "6a6a8fef78f6da0cb87717851f8da78a"),
		personalization:    decodeHexString(c, "acc23bff66068372dc1b93c5776fe70710ca4a35bad1c8d9137264fa5b8e402a"),
		entropyInputReseed: decodeHexString(c, "4c1f1988c37f2a1b997c4998b93c47a99ceb4d39fd0427c8965f8beb4b0e76c1"),
		expected:           decodeHexString(c, "b3d8d31241b3809d82e5da9fd50cf584ff590b3222c84b67d9bb0f0cd22550d800dccfe22d5b329dc85ccc4654fddc71d0402a8befda3557c2bf71b628ba1603b17732cc35db144f5284497d51f8dd000bb5e4b227371c1d7f1e20e417744c64630f1e408e290cba15c9ddd074e440d8545c08ef61d9fdf8bc031247b6c942c89de4471273d040da9c347735e1d020880bcdbe3fc7f95acbfacf896c7ceb4470c8ae9479b3f9f57c26a4eb18f5139dca19000d8b7d4c9342f7b4394ffcb4053b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_1(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "3e1c0ed92d018693b9709699c32e2701da9e5721a51810fb286f330c84dd9095"),
		nonce:              decodeHexString(c, "c729619ea0116917346801e034123fb6"),
		personalization:    decodeHexString(c, "7df11b36e30191e28d86f39a4b3bb6827d91364c167aaf0b74665fe1d8a93f36"),
		entropyInputReseed: decodeHexString(c, "c8e3d41794234a0a6ede9809a3a35e1c703af608222e6e54921ce4e53caa2e0a"),
		expected:           decodeHexString(c, "81114d837a82a24321969117bd011eccdb634d0603ad563f8a051ff0312b265f32fc2cae8074d5000adc22fde14bd5ee5d19a28568bc847158833d76a89189ba36fe2c0091509b2460bc5d9c1762cca189fd9c5a717f40e722a82a6491cc507d297030ad2771e5a83c83e3dabf19cc9d38c1a3980d2f835e9e553e6b43a26415f33bbb39a68ee1f8d0d85593cd1dbe966fe4fde8dce8b768692e45e154a145db81c9a89379a899c667a44c33bca1ee634670401b4532f26c63aa63e1cbfac926"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_2(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "17b4687975b4dd4682ea98eb00e35a58c0741ac0ae1d1478f9b896e8a2a1137d"),
		nonce:              decodeHexString(c, "86d01577e741f30518bb3d0dc9a99c57"),
		personalization:    decodeHexString(c, "cfa9f0bb0da6cfb33dd25e709bc0613b64b5d3e284d11069bb831d43e6f3f248"),
		entropyInputReseed: decodeHexString(c, "1ca0757f21747213a455a149251f1d448a378a6749f56790a7db65ce847abb09"),
		expected:           decodeHexString(c, "c49d530b0f3e44ff16c5f43b993266f489225c4b03c7a51b4f8bb2bf44fff8afcced999e5c9c09623e59c29ccfd05dcb9c8062d886a8c8d00349f43c3c498f67027bc106c16dc82bbd5bbb4cf9d880ca0e067ce85b49dcc55b43054e8219a7bd9d1e871af20cac8623af5ad317c962d98ab55f6ef1616f20ac76f2b4107e7ded29d2278daab73b3e2734754318d6383fc0dfdc7a0fc9381ebf24806bed659dc2d643d2cbeefd23a8c51efe1da0a434fb9487d9353ebe2c1ac91ba993c37a812d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_3(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "1197dab1d2f0b5194838d67c756a2477acf8e45a7d0d38e6e472a539fad43061"),
		nonce:              decodeHexString(c, "7be58fc7fc9288d5a5024154ab657e44"),
		personalization:    decodeHexString(c, "3ce513bb67a365ba3c127d7d9caf41fa60f348f7b040775560f3b32395fb5f11"),
		entropyInputReseed: decodeHexString(c, "5edf42c4f35a017de8560a7fab4144ff7d0929118c90828a316d99247d34a6d4"),
		expected:           decodeHexString(c, "2b200cf2888d68c513dd372235956bd245d3130e037f03df4be6fdd69b72c0a27d22d81479c204bcc47c36d74b5c2ecfbaee1dbd8b442576576d4ffedaf919d7bb561c8094d6ea855c583ef55fe9ecc610314c050273acd0d6ee56c5337136ed57f8be1f3a897b4a595a7f8c0de9b5d34108367a74bc3336a276955cb32e2983def6b9e1dc4670658baa4d7609f90f78a79afd3d63dd735d382a6e0a382d02be6d099bd4f8280d183ea34cbe1762f841bfa36ced3b1cd35b3ac9eab38c59fd55"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_4(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "8a783b9ae5adb3e1d049db4200fdb78712e512727e73f1b2a6749132bea2f320"),
		nonce:              decodeHexString(c, "bb65867820601a1e0f47f921e727f8f2"),
		personalization:    decodeHexString(c, "e45be063a9d4a582db7334594e73eab545388dceb1221e9e4afc1d0a766c8e18"),
		entropyInputReseed: decodeHexString(c, "46df7f2f4a78cda588758d692864779c5f8ecadb8f356e31f48ddbf5478fbe4e"),
		expected:           decodeHexString(c, "8057ddd85cfa68d2f676b58e0ebd6f47f2b782599ac554a868afef5ef9facfaaad233ed63771b4a8cc26610085b617fc8e3810197b1f072af39a7b6bd495091ff27196a30304ca2df769dafd2dad295568aea98b144e97bec1b972e023dec779e19d9c9d0e59e5e291fc6ae2269bc49d9caefbc267859e713304a2b6dcb6450f758323db30b6fa0176873168360b51c425832a6b50848b343842fc64da603a26787e34745b3fe11144335e9a83d3fbf16844e8fdc71ed9955872e36088e2c757"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_5(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "bac8043db8017ab9e29497198d2aef8dd9b48d594216271acdb78c2520e0b4a2"),
		nonce:              decodeHexString(c, "109be67410132dce355a17aafdec8657"),
		personalization:    decodeHexString(c, "afcc6e2bdb560b4264463e9ebbcdfbc9e05ef0d5ada30cb86689dcbda4d29d01"),
		entropyInputReseed: decodeHexString(c, "be932c4beb1d48ba3b92c4646f959cdb846fb7d06e8b92116f7626acb9f3afbd"),
		expected:           decodeHexString(c, "cb2d07a7a7f17e5796cc00c3cc269289ca0617115307f27ae5d5687c050c67ae232b40b0e515115f236a2d1fb5b42a48d08e3ee5cb351bb40c91055ab8c81cfda8d6dcf1672231754c6e8fec37c6a4d201b524d890223d13dcd36d4b039a30d6b5376517eaf32471964887b6cc36b6c75cb0794240db7464592be688eac2fb64a7ba36d9a318009e02d9968caec61faaaea6aabc6cef7b5a9fbdc12a806d353ff821efb24c97799601257d20c53033c0193e6dc8fc13fc638fd3bc6c51ec17ea"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_6(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "e6fe191baecc26d1ae13bb0946f2cb2f6a98e91a069804fb3d9c6b6959849ec1"),
		nonce:              decodeHexString(c, "a4a38d486bbba707319c339e3e2b7ee0"),
		personalization:    decodeHexString(c, "eb1aa6239a39a5efd1249715834cf1bccf9bb170214dc4abd2d5ece1c1c34227"),
		entropyInputReseed: decodeHexString(c, "ddb1bc0e396a7a7bade7a01965c0e252b9ddbe2e8664857b3a6fcdf665205e9f"),
		expected:           decodeHexString(c, "e60ad0d64a8f0d1d9707b0f9c354cbf6e2bc7f38d9f4b95c9d0649b00a273fdbb1acdde56d6aff30d9cd1cca38dd5cdb1f5b5ed4b42807b1daa4bfbe9377fc659cbdf26cda2b3b730bd643a05f1b5fc3a5b468d259d74d3a72bed102f28a962dafbd42a64a86249d04cde4e91e080a1b143b6e42585773856c1eae30601a768a8ded03a6801630bacd5cb44dddebe7bd4b0ba3cfb09c37572ff9c5946d746cc82ced212cd0b954c3539d60f893767ed07fdfbb946d768b374c8a67d2bba537e3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_7(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "6864e3357be93e2d67e9ef978f12631c25e2490e2cc66052f85cd5a86b07bf9d"),
		nonce:              decodeHexString(c, "3a9967235225c2704b910c4615eda5d3"),
		personalization:    decodeHexString(c, "a911f2be3198670c7e6a395f8cf17600f389ee9bdef1f2677ea808b391368e29"),
		entropyInputReseed: decodeHexString(c, "5b7d62a8387ec6c0e46688682fcb7e75043299d20284b7546a429599b847a7d2"),
		expected:           decodeHexString(c, "0d796346931a20b45c517fde1b097c42acd7848585d811d4bc39db3224d066f5f8ee732495764fa30e557eee81dbed190399d35bd0de96b6e9ed47f9c24e0515c2b80518f29f88f6b9ed37b9f0a70003ef1663f0d2b330274b0e66f3bdc1620837bb718b6247309ae8355748209f8d44d158eda17f34179cf66a8a1fb2d3ebaaac41a9ec788cfcc76d53eb2ede037c04bb3b5a2f90078e49a6dbe96e916db908f525befbac22ceb26f2a47b710b84711cf0fa4107bfed8ecc2849bc073f1e867"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_8(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "261e565b21d0c6bab57ac87510f4cc62af8e0d4926795d8ffe9a32ebaa03d87e"),
		nonce:              decodeHexString(c, "8cd31e78f5afaf3557e470f8962518c7"),
		personalization:    decodeHexString(c, "af05e0b9c8b1f6aa3542da53f32aeb66526cfc7d8f08c098d2b0e620f9f0d898"),
		entropyInputReseed: decodeHexString(c, "c9bae97b50d95cf9ff79ae976ee812650ba1d7009012596f400dd42d2080f3b0"),
		expected:           decodeHexString(c, "ea2b1ba22cd3d7628a2a884e501212cb88241da2aecf2f73365451a550e9ab7132246199017ebeee3b2ff993400500442cfd7dbd3ad99f1ebc952f51ad0577ab494d4d1b7d4ecdcdb61331cac064f12a6c0df4cca2c1137edb9d4151fa6555545053407ba84f02b947cd8d9b0a57df32c55cf0fece1254fe88e45d06f845f30a665fe4c6f9b158cec31ebfb8f5ecf14e094daad89ca5bf5d35cabf237b0feafd275f5911491da1d7c30bea46cde672f3e6948b4a14e1152d8a7cdec9ee3f90dc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_9(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "12ec506a4cb92c15a7c3bef1b7206cb8c4d9d1077aa9075ad64ea08534b7cd52"),
		nonce:              decodeHexString(c, "f6e59ba6cee388f5da7dad606c84df09"),
		personalization:    decodeHexString(c, "99f754a426be869e6f53bf602e2bbca04b83fe89355ecdd4e6a8e46d82340067"),
		entropyInputReseed: decodeHexString(c, "ca5997482f404157c390bc5758b0a110579b9233ec236b42c6f655cd04b0b2f4"),
		expected:           decodeHexString(c, "bbd63d6ac1c7021bcd53bc7a4ec94fcca11315135225fafa9eb28e1b5b35e9951357f980d12ff15ec7d5724566bc1b23d59cbd7f6fe6e7d7e9376b56a1012eb6cfa077ecedc01e978143996ae51f55da4a589e2ab7de79b59abd8babfaa03e1207760bc154c6b48a2c669ef334dab20b47d7bd8457ef3ff9256a11d245388102159d80be21494c4a2dfd7820f9fd62d2492c1affd2f5f939221388ae936805eb070c250b7f4e78dc6729c757327f3fd2b7f75159941bd4ffe64fcc7b195ffeb4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_10(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "e600174f49f2a2d39569b23e507bdb34a0c841a1e6b2a68a304af02b7194dfbf"),
		nonce:              decodeHexString(c, "b8708c6266e0665e5bb28795071dab3a"),
		personalization:    decodeHexString(c, "dbf4dfb226612e343ea20b66378935fbfc726fd08764070d4f7288cc42c20672"),
		entropyInputReseed: decodeHexString(c, "f47a00a287b61992d38f77bca92b9abe7e3a11599e100fae573243a5f0b15ea8"),
		expected:           decodeHexString(c, "1506206a7e7a5a7bb9185280abc102f47fa5a4b9a4cb897a76e327d3ffa07c852279d9da79dc623d201dc4e270dbce3396bc9c94aeb6a02d6e280c03056610a2f67cbee5f25dc7fabb77796c3923aff1a35af12c6155331a4bab27c8c8779a203758ed6c5471f174caa332e6e2f530373d3c210973a3fbc74eb06e926d0f26957ebff68e38823d8fd6fa81ca8d27d836f140e57907ca5d7ee3e8ff3f4c3eb435751d0119443d165c9a9b2b497e20586fe188073bac6dd4c18bdceb8b24eee754"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_11(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "10ba7017c84dc62544a932155501c10396419e4ba104871c81fb442b0a719c7b"),
		nonce:              decodeHexString(c, "d283cf806d7e6263a3e6f975711b9bd7"),
		personalization:    decodeHexString(c, "ad512ccec77b6729b0e20551dbb4e01912271d22625a8e63b2dfcbd1884f0998"),
		entropyInputReseed: decodeHexString(c, "d9c5bfca1db6ed0e62cdbfb209895092dbd350b3bbe8ead1aaf0eabae44a85f8"),
		expected:           decodeHexString(c, "2c1c62f7a0666d96c086df3bb70f40243f926a2d6f47e24d3886db8aabe351f3c7626b708f2f89f84f67cf34b553d656367aaaf8fcd74448f7524ccc663c326238f5ebc3dd6db1474a0ded6d6311ffd5860453ae1ac73fd76ecaf219686dfe58d908c74b0a2bc7ad187bbe6ddecb72d3c54b68e5eb5dbc9582739847fc07cf6e1e1fd6daf5b71b1412c125322096c4dc2842b89d1f43aba9b485594cd260e1d267d74af96798a6249be623d5ecf2f9c6d816d7ccc596c2ab1313a020e3aeec3d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_12(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "e13fd026aacd9c37d771c6be869b2fb98d5b32ed63b1fe93fa59cea3255dc74d"),
		nonce:              decodeHexString(c, "73d591cd860854b6a06727f1ec041169"),
		personalization:    decodeHexString(c, "429775755087d933edd967d4ff03926e9b761616e7ff99a3dd97ef1f610651d9"),
		entropyInputReseed: decodeHexString(c, "92e474d5e2beb240677b4eaac78446f3f48cb21ceda8120d13fd5ddd6a4d8a34"),
		expected:           decodeHexString(c, "d06d8e99830407bcc57ca3432e75acbf3dbbcceb54102cb619bee3f9b085e8daeafa657e12e17709c9518b147f6572c3869d7e336054ea3560518db9055b7e37e45da62032d5b4a535e5e3b8dba3db4c10b58b227267193d775c34df22159c3446ba15f768e03a64b64d4c39a3cfd48f3d916b4adceab1ac6968546dc85c3d6543808d97e67a16d99ec23bf5db0709376473792c7794d1eecfeb0bb092024562833a2ac65b815b167ea93d89cf24213ce25883b9d06f0c01b9b4eb89ddc8efc6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_13(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "37e7f0fd4109d7ac355fa6a3b8df6372d706d637eaae8c1cea569a17f2fc4450"),
		nonce:              decodeHexString(c, "4bd179ee4a711678c1a0c244c003b1f7"),
		personalization:    decodeHexString(c, "022df5a086614796da69bdd8b06895816e049189d1f08f4e620c036e9371bf3b"),
		entropyInputReseed: decodeHexString(c, "96d979cd9a32ee85bd97199ca35df590c36444c8b1ad900ab4e0442d5b288cf5"),
		expected:           decodeHexString(c, "68109368d80bd0a7379d525d7c6fe9e7efc02f4f9dcb62774e4866cd0e8279512fc97dfbd6fb602526688b32f837596531cd675086daef8686a6d064214ca2be7f1d54bd97bb54ef1578cecf3887dfabe246fc737a9e8592e30de8b69e613ef7724806fae960faa39b29cad75dd005d6d09dfd241c43e88e54debb43cbf498580927cf6a3cf652c45ac94f81743ad86a8e5c3ae1cd6835ab4261968be78d4eb55f9c760fcf04413ee414246defaba6b1911d06dcea9acf7e87aa0b0c52bdcdff"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed62_SHA384_14(c *C) {
	s.testHMACAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "7b9cc17409a64de98171684205df0177a8b75bc81103004288ebcf1b8cd646b2"),
		nonce:              decodeHexString(c, "b0d9d1582fedd2f9365e95b6c4ca9845"),
		personalization:    decodeHexString(c, "76b2f8a30b94f0c462196e3f0ad8820303a35d0304e46268a7afa5aba7c1e6ec"),
		entropyInputReseed: decodeHexString(c, "97f5006ff023f3fbb48452dcb8e3f4efd8580303730407411f3a53d44d4b13cb"),
		expected:           decodeHexString(c, "8c457791b5e79a32c1a5bdb023a51fe82de8217d12cc45a91ac15c11bc81bbd7f545a587422191c361f10e44fafdf576d33a580f34682b9ba132cf5154f0fa3bb221cee52b3c7227823858b487867d326d1d139c0dbd88be8720346aa6ad9ddd8d7c55844b4fcb75c7b79f1091320b8df9cefd837a45ce9071013e74d67615fac3e64189152296f0bb695a2c0de27df23a1cb2728f35259404a656e7b238812045301520584ad9e3a39d19f16a0ed6c64b5544e9aa4750a2f44445c4ac9e9a3c"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_0(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "48c121b18733af15c27e1dd9ba66a9a81a5579cdba0f5b657ec53c2b9e90bbf6"),
		nonce:              decodeHexString(c, "bbb7c777428068fad9970891f879b1af"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e0ffefdadb9ccf990504d568bdb4d862cbe17ccce6e22dfcab8b4804fd21421a"),
		expected:           decodeHexString(c, "05da6aac7d980da038f65f392841476d37fe70fbd3e369d1f80196e66e54b8fadb1d60e1a0f3d4dc173769d75fc3410549d7a843270a54a068b4fe767d7d9a59604510a875ad1e9731c8afd0fd50b825e2c50d062576175106a9981be37e02ec7c5cd0a69aa0ca65bddaee1b0de532e10cfa1f5bf6a026e47379736a099d6750ab121dbe3622b841baf8bdcbe875c85ba4b586b8b5b57b0fecbec08c12ff2a9453c47c6e32a52103d972c62ab9affb8e728a31fcefbbccc556c0f0a35f4b10ace2d96b906e36cbb72233201e536d3e13b045187b417d2449cad1edd192e061f12d22147b0a176ea8d9c4c35404395b6502ef333a813b6586037479e0fa3c6a23"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_1(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "8802d43f70294f532d2af0be0852b7a9ef6584e8b1631845306b583ab059111c"),
		nonce:              decodeHexString(c, "0a88cc670b8a827e5057b902563840b6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ba6f6919295f2206bc8738eee2b4e7b4d3d492b945150c76edf466cdfede4868"),
		expected:           decodeHexString(c, "caa3a5f9822f497fc3335c3a4262294846cd4a6842cdb290a011a94b6c3c27a83622dfc7e5c9954e91feae5ca8034083e2fcb493e210e5caf31ceb63a7f3d59dcfc3a859dac5c250981f7b663e4ef7222eded353c7f42923c6c6db006e927b4b5f44b73e986ddc4176ac03a5ec619b3ebc923d4a6d9430e5b9adf75a5298e76a110d0a2a4e2f7841f900c4067cf7ee68c356c4f5d13be8885801d1e578ca4d2cc32d48b5e6303a0bc417afac033758f3e812693c49128e0db1bc9ea2fa2f2c45cb35792123af63f42dda3abc7cf8bf5dac17987178cc0a64b0fde5c9ff2012bcf57e93103f08db1e3a9f727e1cf753ea44d62ead2aa5410b9e37812c43d60eb1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_2(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "a53adcd8c8ea16ba80a57d9a55955197ce0d957bc92d8a0b548bedca149d78ff"),
		nonce:              decodeHexString(c, "a9dddb64710d5dee89f1edd37d8b55dc"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2f50bd67e4a6ad0f3a01947e3673b10688178710ba2e7bb5f3dbd826c792c9d8"),
		expected:           decodeHexString(c, "7f89db3d0d6cf7c5557b4599d7f4c8b5235c00c9cc393f734ad7ba98cb8e767ceaa529892dc30d2885f161f47b9c81dc2811baf12f120bb9458096c183ae35e198e1a50fb91f863c5d82b27ed10864dd6fd601f4a1fcb07bc839bda185a9b18ce45d800049bd2f41fd909a12eb2fe8ab3e1d2f0f1187109d61e2af6df0c5cb9fb801ceb319d0aa9fea918ae9991720e4d9d79ced8285774382a4d89001fcfb899a7c3fb864f1ad2debf5f5c39ab04496ffe383e9efda0eaba48325514b09a253640f386fe12fd1b25da3b2373ee14ee9f2ff06fe063f771624f538c0e5620029b9490f33e5e4ff1a9bcaba76005c829e0117d345b73f986d7c8276cb54fd87e4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_3(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "edcddc13604e036f16687e36bb576cecd71b20dc78f070033d8b6f1f8125ba2d"),
		nonce:              decodeHexString(c, "2d3efdd9f01a93910ec29fc4718420a2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1385f8798218e1aebb810379a0871b534e067b04d6ec9d523f7cdc8d45bed4d2"),
		expected:           decodeHexString(c, "df02ec9bccc25feb7aa4787f5f63a92ec05b2cc13fb92c20924aba9e1723436469c87673b8987ef19be99ebafde91d293ca6ec7c1fa4cc8902a57417338538fbf897772cb96085768e893c5a09327354006074992cd6a517d6c57c7af5495a3d645798eb1962c0b56ff0c8c98e18c0963e5a581230909981b301797d779703f31b264f90d6483eabd8a41fec8ea69a57befe1f53d470fc82bc35029a4d089eec7ca3986485a51ad1e56cdf2dea5fc3d39aa997a53a9924777eb6f3bf1056a578fd32aca125a74c8d24acb7b99c37f34081850712edf1b6851f0a5e640ae7193d3f49f3654aad3cd106e41e78f1e93a8a2d01acde0e6ceb3f19e0ab49f4bcbe40"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_4(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "7ee0378eb594bd2ef129f35c9c1d87727c71ae472363a596467a2d71871863d8"),
		nonce:              decodeHexString(c, "476b636e2ffdc0db70be5f7792ae8a8c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d40d3f03347700d3ca515880cfd7962f8ce1dcdfc5ff134daf552f8c2a911758"),
		expected:           decodeHexString(c, "cc14c0e72f186392e461f65a0c0711e32e4b33a407953215941fc5d06279d08770b3d165d568b2fddb94299de2e7a6df0820a64e8779893390ac173801ef85170a52b9c0334b4fde55fe08e90b79cff1366bc43c0fa8f5f8206cc468987a38123bbe0d27e7ea2d21e6a1f02619b8c270a5e416ed50ff7e42d9faa2f8d383eda55899d85302590622ada9ccf5d144313e5df95688fd1a9c48ddcaf7af03068e11729aadd626761f3be1cd36188c89d08e3d8a090e7ecd7394077bbbd2c7e1766662ec882901941e09be9943a72a34817141611ef84c0f1848efdbcf245215f290427a6247174cf3a08e4110d3eea05bb85484f75e156e2fe5ea0c6723d3f8f047"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_5(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "fb35f3ad6b7618735ddd273d95b442a362b6822502a217e893be3e36fd7be455"),
		nonce:              decodeHexString(c, "3cfde0edf5d9b5f15be9288ff78fd0c0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9ebac49e71484169170f343f4b21e244d1391f963112dc061075d9b7d26cd171"),
		expected:           decodeHexString(c, "6f6814f55c7e226adb7687d73eb4e9b909d47f4b57693ce2c543436318faea92371e951d5d338c06bd95f0e7debd915e2179beeca9878faf3dbeafeabe3c9bc8d6445f863649c66e9c3609b8a3d54080b68ce145b2fd4ecb3c93801c307c554513a210e49dee13828b20dff092de2f312fd60b2aa0af4ed7e564f06adea6b3dfa74636e7ad16deb19e95df71d2860aeee7532aa9ff2a08c768f1086abefb60d860657c8bd7972ec7be3740293b6471cc55262cc120f97c0c08de78b705068dcbb2d0c656ccb8e2c6e3fed199efc888492ec641d4a54152366dee96008a80794cb3b4f5a36a34d832446d03991e4374315c67c336aad317920b99f9c35a493582"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_6(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "a8db61234723da2f0883224563a1bc04c7b4d040a7de3b659dea0086bab7f454"),
		nonce:              decodeHexString(c, "c73d1f918ff29e2f98cee562e05f5ad6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f2781f5786228cf0cbb50d2c8d94a1307383d41229a90c0dcf142b94b704c56a"),
		expected:           decodeHexString(c, "0fa5fc008c56ca47024692ff55f500e312423818d1eeb77b1a3442058718885479b405767b879943e73fb16956ee2293b23dcb93cfda420a4f37ca5eba1aafcb8700cf6f38f2acac88698f1c0abea975270dd4436292c8ca60576690dfd9137080db2b3a42107ecea5a631ac413384a9329d60a358d2c58647eedcac164df50820e879374bc2e08d971bf5dc65afa33ecd472e5fe9677635a79ad58b489933fe9c1f992429e5d16dc954d2de059b70b8f170decd1f22c36b034e5f175138846901f6fd7fcea1491846984ced8b595c411a9f6d21f3f15fa5a073efb5f829f3b34d601aa91ed8cc433458692f44ec1930f3ac5781ea001a3b79df7c3e82ae5365"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_7(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "95d7851bcd43fc71cd9656737a0b05b5f83e55451c4672061230b9b34bff71c0"),
		nonce:              decodeHexString(c, "25bd51ccc3f4c2a14407d5d569d250b8"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "40e24828c319c1b7fe093e5551f8acd20167b2839c8d5ce9710532d69812b8a6"),
		expected:           decodeHexString(c, "358b36b4b7f119fafcbfdd619adbf9593048ed7364377752def3419b85eabd444e87d1e952c45f7c9bea3d29f845f297dbb48c2336cf44216fdd2e5c164c81ac688feebcf460910ecb8b8f6c3b0150195b2c7f1fb9988eb60c0564f0e089e4c269cd19414f6718120ad3742f96730233dadd3fb7d9e898ce38b5b8244b0af62ddb1e2689e9aaf27017ea28699d08b933f9219676a98f817421c363a526798833f9e763dd19341f56599cb594f274051151b87bf219d4b87b72eee5bf4bc78053a59aa5040ad334e08283e060b7b528a9089f24b287334070853c180021b50595e0fbbde18422127b0ef7efe92b98788d6e85683d97b679861154863fb0d4f9a1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_8(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "ee7a62efc8403a0f988711436efacc44b5098f9a3526dac49ad9343c80c98eec"),
		nonce:              decodeHexString(c, "51f064968eb37d1a8bc8604e3324e5a6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4a99315401a2df8d8935e94fea3fc5990107bae19af886415edd6eccc95ee942"),
		expected:           decodeHexString(c, "7e3a0a32d6954bad579d54f136594add6cd30628bdd53dcb09baa98884547bcf3c8e84e4c01b0660d62dd8b44ae6ce830447c5480f30942e742bde5009fa769ea8662a8bd26135bb45e5a380439d5b1b0114969f42bafe4d1d7b7c9a7b765573538a7f5917af85bfa1fc57710e10eb4a00062c176b93f4b02255606a110840bfbb9131aa290635fac52b260190e9172cfef947f152113ff3cb3de73e22eedfc44f143b9c23c1670a057cdedaec28b145ac2e699f366d5d695d1cbd258b59d4c88bd8d1062ea578c758d5823c43a85b5fe1aaa8f3e4b68092d4107d6b11eeb613ed058747259ff0eb685bdd42b9dee54c1be9b613a4ef672c4d31ff84a73f553b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_9(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "bf02755e4c3db98cd26c0abededb5ce360495c1a2ecf194e922d87decef41735"),
		nonce:              decodeHexString(c, "84a3788dad5b308c50e7c0a0a10c7a42"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f3c7b2a52df2230cb8dc7bd71c35d448fc5b1eb4f903ec6342cde118ac284c2f"),
		expected:           decodeHexString(c, "ce2806594da7a6f27385593b14669b5c63b6a5b0240d150abf0ea4daf32574604fcdf10c4965a9220c285885ae2d2cc1de8a86796357741645964f102e65150d1106cb5b8c5bebf5fdcd5e64dced9e489c188b619c2ecf96e7f96861dadcf0e7381b4d628165da0ec5b7c90d369afb705c39986e4884adbe05fb7b74a9ba3b354e858697a1db531ae32ae8184658688012aaeaa4f69b85b802f5adae64f049857d1314c7532bd40043e61af47cdc7ec8e85fe61827de39c2f1825fb0253ee73ca2423544bb64f8d2afe84db5cc8ad7694e177468dcb29092b4c85d069ad7b1c41e139642076b8075ab0228f542fcd2a7a6340917f82b7e356e5652eca24b3031"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_10(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "a188065c9ee936384c5572b0910360ecd984cd0ea926c86b269f38f1040d4167"),
		nonce:              decodeHexString(c, "9bf9a91bd4e986f500036cfafc583edf"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ff1170cea9f22a3140e7f4d198630fa353626518062340fd2f5b0f6b4fe7e217"),
		expected:           decodeHexString(c, "ea19cc91d80d37b8f16388fa62fe8e1f114f32f2a6108140b60c1994432b18445cdc131b21c884c74d155aea2aa7f62c7ffdf128886cdeebb395e5b8819dddc8c7834475d19162cd6a9c037995e3f9381cd582eada424ea6b67ad734c216f8380bfc8f5dc0e7a1d93c406870bd64a190a670a8ca94dfc0c02b61365a1d908a6b980627af6bce02a42dd9dee90dba722cf6bd7ab86cc4200af93ed226cdae14f28e242c6f96db866631b258be010d47c2eb95f01fcba4fd71646e6db54947a0d4dff86a107e226b1e4343d8a1d233369f8b560f78c865426d341f5f0713748b3ac4031d3d84bb057cded60b11de44cb221869e42bb054127388740e52535a11ac"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_11(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "58ebcec4539f4af1b32a854181dd0f512b8c704fa47537096a769eff28c59165"),
		nonce:              decodeHexString(c, "a18226cfc779efc9550f7be02006d83c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "230cd6e6909e301d1e99ecd1fff2b2cd00a56c7a684c8907bbb13ce3e9a0cbce"),
		expected:           decodeHexString(c, "6f4e86f309f69144603961c5366e4f9b16d10c10593ea689a8e7435a327d2524f4468813ea7f3248d8d4bbe17b175cfc40617149983928b267dc0c4db46d2c17fe8bc0764386758af1a824e12eb897feafc1c7ef66f80ffcd993aa016e139991cde8435ee6bb0de45a7fb61eb1a6beb76e012b848ea003f687537e4bd00ced37efdda66333b53a8dd5220c281fbf68bfd9e72285e78197881efc540da4c1ba80a226013a2d7098d34af4112e7b8c865af15409f6901b952fee4a474e4027051e1dce879ddf5e84f3947dc9b94119d67e6b48ed6fd6b1f813c13d3ff30e121efce7918533925f50c8e381e87ea685f993619bacc9efc0aebc884b450646eeaa5e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_12(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "acad606154f6ae06738d67f517cef4c8dd8dbb2ea333bac9e69bc0a4cb98877b"),
		nonce:              decodeHexString(c, "fca3d906739d442608bfe66ca48c3d7d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "01f7d410f46764bf2ba4268713ba76bf7026203e35313ee75add608509de867c"),
		expected:           decodeHexString(c, "f6621bb82d8830707fdcc6f58a7cecc7501a56f44c6ba783f6f8187b21f5f3eafd1f38ae780584ba4aca59466f6f5fdee1e82b28b5f8db4c4dcaa28f030437de407b5fac632c96e43a12d13b54901fb7c112daee2699d8256c6ee26d60bb267dfda2c6d6b61c9c67cd5a5b055a283fa02d06cbb8b9b1c3131d7decce4db61243738af4f6652bf2be23d4b49a1a7bfc711092cdf655527ee785a85e90b58fe478a462b65fd9868f821ffba56080064d74724d8c2f98cebd9eb8fc5bf13399b04cf1586334913e8e9232e13ba10f9f2c365e50154ee91a00d981d4fd7a4d49c3a2cc0988d4d712074918f11c378c40e762b610c9f4df3ef58d728a23dff3e035dd"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_13(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "d2715947b420ca136a4cd5c921b8fae20900679d87ffde5bdadc7b0fb532f35e"),
		nonce:              decodeHexString(c, "100d8d0b59810bf3222b07fac3a3c334"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e4ffd96983e51ad04c2c5bb7fea15e8a03e36b92f487b314a191b5ae4862cfe9"),
		expected:           decodeHexString(c, "75751dd3463cc20d3f27e3ec085ab6fcc37285030fabb2a6e43c0d438c7d213346d218d34e3fdbabb3411be233707257290599bbc69512ad971cec2431518f38022816b9f794e2328b39a8cf6afeafc4d1f408f6e05863b654369dac0867feee0c17034d6d07ef22dd217f5ad0f1ef25ac82fce018573d0a2b0d5a924aebc5fd9c3eb9cbe38ae3d60e0e92ff800c9b108fbd85b2cde1b651e080e6625ecaeec9be684f1f7d98caeec9aa5e1445e5c3de6afb590fb3be3058b403df6c556963e98cdb30460a3c688485bfae28703b38a5c42454d91935fc7519e1e3b311ba117b1bcfd480c015cf8e535af66521cb35833621bf1026139164052aff6aa4e51fdc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed64_SHA512_14(c *C) {
	s.testHMACAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "e1d2d72e7907e7214cb266f1ef641395e54b39e8365304661b0bee371f324652"),
		nonce:              decodeHexString(c, "8417ffd58420e48ec063de5df4462e39"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e6cae1b5f3a3a12faaaf39b98ee592c8d4f56b9d4534add5104b357d788c23ab"),
		expected:           decodeHexString(c, "626a0863321ac75e0b6240ea6a619458634a978245c1533819c97114e63914009c9cab732f1310f60f64f033b00729424228671f33425099820ab108412d460f32c0015b73987e937b9bbdd29e5bfb8dbb6c95d2b69fccbc26b060cf0a5dc0992fb0e76b38bcd64fd7a726714e8c8542d44b2f9c5d2f2f8cb370b95e086b07e88f492f51fe6c288d78b76d0c3a6146c9dfce53e76cdbbd158d2944dd10197247004954d92f6b1df4badeb4bb1c98d7d3da2054e3300f6d8dda8863422e6a042c2d84b2bbed6be88f0704763410771b3786d2f6d968b6c224e0cf535e8d02c178b2e0b90e8a7fca0c431b7f3cf41b0a7c17778fe8c2eeb442c910ba88c7c364cd"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_0(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "97aef935ea33717e8e8644bb8c4789f375c48a945ded08771149e828a22dc866"),
		nonce:              decodeHexString(c, "82580f51070ba1e991d9803f51fd9a6f"),
		personalization:    decodeHexString(c, "212300f93899ff7cb144f20426028b976380a348253bcc3ff42b528cd1972549"),
		entropyInputReseed: decodeHexString(c, "63cd91c1ebb2caa15f2837df8f35cbb6fe96df2674a136990a5976cbbab63bc1"),
		expected:           decodeHexString(c, "0e8533f64b60c23a2655827037db218c2fe9ce430fa4ed6ed9be349c4bdc6f40018b42f486fa04288b3b0c62a12812e76e08c76062a510cc60841f165869efaceef90805bdde2fd66c36c38a2ac9c3cb86bfd30406569e0afd245102f2ea2d49e4ee5f69187227a3f0edfbc1259cb6564a2d4e829b3fc3b6996e37546f1d8a16fcd8201d1ad28661bbb0012daad55d5403e833d8a0068d216c879bcebc054df0c9cba14dad4863ee1f75b78bc488662cb0c91ca4fdfce7df5916b4e62580902c601be706dcc7903858e6b9920735bdaa635add5c06080d82265345b49037a32fcf0a7c9ea6069e3369f9b4aa45493efd7318da2ae9b4fc300498248afaad8d49"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_1(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "549ada8de63982fcbec1d27162a51764dbd770f1da46d87759b2ced52d0ab2e8"),
		nonce:              decodeHexString(c, "d1e8b2883fdeb221380e17ea387b3a06"),
		personalization:    decodeHexString(c, "0e7f0664ee95e3de9ef4f9d8faada0851bd1de3a3a767f85a74ba26f7fe8201d"),
		entropyInputReseed: decodeHexString(c, "5cd6dbb671f1caeb7b5a4bab5b901088f081afcdde5ecea10acd810735b95532"),
		expected:           decodeHexString(c, "c876001855484b73dc46babd570013993413215f6617ce71be7c77a418494f77adc56f5c26b393de340a514b40bf9a0a9e2629b768ed329ca083dd4af5ecd6f45f878a55d5b02fb9bf3fe043ee9e7058acb83d3aaf39ead7e11d82725bdff8272d7a22cdd6efcfbdd60458235e523ba0ec1b490994fc394123fdf65d72ada39215ea6c7f8bd6c8aa4ce947988442c66cf53f196db401e275098d9260e2162f5726f0c73b201b61fe9f7b586057780a87861d31ca5b21ba62eeca6f5387c5f42147d55a61e1c7d39398a82ebbcbf4f153962f6a6bb5461d58476b4811051ccabb00cd9a78debed345c7e854fa064f990a6d0dc827c39c38237bdc5e9b1b44b6a3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_2(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "d3f2af83ed1071e6895b1d57d0969ec7fba3d6316df5031e452c26daababdabb"),
		nonce:              decodeHexString(c, "58107846a2a6921ce3502614ae6cc94b"),
		personalization:    decodeHexString(c, "0d4223285e53c9e7d743dfafd08fa75c81582d0c507c38cdaa6fa1b398e342e8"),
		entropyInputReseed: decodeHexString(c, "9d246a8ceeece6a9cead94cd297838ca96b74a88dcbe24000f8eb719f939a3bc"),
		expected:           decodeHexString(c, "9b83018fb5a4b2d2b76cf5e8258e7d3f6943a494a9cf7dfe16f9c51beb6d9b849cddabfd597fba42d6fca4096e458c8c0e353da4fd6af9297583e97a910bcbf1258a83da465d34ad13eeacc0e57f145a8cbe09ad9129302e64a4d6cc9166e3576d256b7b3c64540100ea4b0c6f7f92ff13af732f6fce6516f2ffeccaaa0af906d4efb8b7625cc91c5358e5fd292de159dbac1cc9f0afba62ba7d5733491538d14467f9f242fa66e79b444f38ca9a6e7472e41cbe8a63967b2e9ad0d8fab4dc173a3bb45e3654ad49d8d8d5345146b33fc55c52e201fd404f7ba64c331d92c3109dd8fdb70116d0e84304772217ad8fe65bb0215eca5c842cb10d591c9b887f0f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_3(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "43de428b90ddf2dda3280fc3628c289ea7e623b63a0ad5f568c459eb7d62f739"),
		nonce:              decodeHexString(c, "c106327c0f3a8f59e5bed661224e4335"),
		personalization:    decodeHexString(c, "e9cf65c1c1d8d1fb07a0a66821b810fe8893339949b50909fb9b72883a530ffd"),
		entropyInputReseed: decodeHexString(c, "94f78b3604b10fa048e04181eed885db9665c4eb92d0cb82969a1e5dbdf11fbf"),
		expected:           decodeHexString(c, "2698a29124c6ac40f2416778a54ea080014a3258211d2136cc82e83e199243e7b6483f363ffb637e3a498ecda6926e91cfc19e61f66f33d3c830f2ce9a9379f3ab5eab90001a06b7713a5ab5c5ed461d1c99824e1a506482fc04b6ff0129847fe84b0e36ec7284dc028f2ae326f39e7b2b17b6cbc21a29f1f0c8ea069be5a2defa5794880fb37ed129849cb4e7bc998a80e6bdbf6ee7d7bd78edd6a7ad415e571da42481f00a857c57308cb7e24efaf3993587d3991ae41aba97439f5e0feb5250013d84619fada910ecbc186e976026b1451b602d20e60679e78c8940b3c8946454cb0409a83c2aa7e2d1f92f548fca8d089e15c47a2c803e7e1e78429fd01d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_4(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "af0abf3d221f4af4a4571eae06287c994beeffcd8f5df5da72eab03cf108d67f"),
		nonce:              decodeHexString(c, "71b91ff2d70698a8578d058c181bfe71"),
		personalization:    decodeHexString(c, "7ee295c84488c3f5d3b2798777f92afcfcfac175a937cb50444831ca60a58650"),
		entropyInputReseed: decodeHexString(c, "5d244f5321660dcec025897d9e9b037bdb406bd97fa9c3ce5e6d01d0840cfbfd"),
		expected:           decodeHexString(c, "e570a328f4aa705f4060f9a6ff38e16007e59533e1d94d039c274d105d7bc8c2ff77920748579de5c33c1465d4441332ba51d30bd8eefa90ae8a421ca662551957e1875d6515adba50a0d297640248e0a83c032b515520220ed880701650c97727d6b5e5f9980f0eafa4d709bcbca76d31c291750f52b75a165023ae40ddf4ad66f395d4cfb1f5a5873743031d2ea2a093b2da4ea175bae45cdabe00687524a3814f153c514e1c3d50abaa96159516bde73878a021b2e9b889c130cb3d016560aa9ac1ef2e4fedb67abbd2edcab3d2d74de3f8e9fb1120473687902fabb46eb183d74f22e5b3bfcb9dc1d1edd95360ebc1310651efbacd0e603b37845f2a9068"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_5(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "54c0128113a4f3e76311736c83581e6c3fa45659c20bc622132ce4f9dcc348e7"),
		nonce:              decodeHexString(c, "6575da4b0142beddbdcf51904d1febb2"),
		personalization:    decodeHexString(c, "b147253bc1d28e988f99a53a73f5b86868b43c6ca73ec7d559f40f572f2bb74e"),
		entropyInputReseed: decodeHexString(c, "48a116378bc69acf6d1b4b25d94e9d76145fea73f8bee448964486c39e88034c"),
		expected:           decodeHexString(c, "2963b2932e86680bf0eb6907777e88f6cb51c38b36794a0254e984431ec1295aaa26f91d5bbd3874c7733466e04fa4180fdb922b10604280a1e34ba50b4f5867a9fd069028303364566ffa6f7410ae2194ee51bc951b19d7be1cce358e002a4b94085ca34f845bc7598ed5036c23a1a1097809c7421fe0b6bd10e90d1f8ffd1cdcfaf3755bdfdde695b032173861ff3baef7a194b5e46c3b0a3888f4e4696ee5dd2414a10c16eb372f67a7538782d61be0f7574646c7c05f6f3d81eae13b2f5327b8ab94d2c2172ea168a0f2c6b79494b497da375606c7d04bc2d8d41618d925140b835b90ee224ffce041697af669b0a944d342524fb133e193a54f4b528fbb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_6(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "20f4687b717a31f5e818c872952385cd9ac2137abd2e49b9849f01cc2551dcd7"),
		nonce:              decodeHexString(c, "f53dddb2449c1a9e793fb8a0447b303d"),
		personalization:    decodeHexString(c, "0516d63709deee72cc6751191ea05d6aae7ef016dee1ad62159af167a785b353"),
		entropyInputReseed: decodeHexString(c, "d6da6110768f5d32766e3e3f171305fc68c4948dc6762d3c4d27c66fdf962cef"),
		expected:           decodeHexString(c, "82ef3110200f4f322764f91fe5b119492b8627ece211e79e2ed69044e612f60553e5e50abdb1a1144e4a7afe05276c80b7d1e3992b609c4966f61beb02ff8ec889ff94889b69e4e6544be9ec760b260ede7e4b5e96b333fc460392efb1833a6467b175aa7d6602abe175ba16d94151fefa0fd1396960aa8c72a6b778f3f0674c86cbedff250b5a609d30e0b40ebeab2a524ceee7aa861b274bc55541dcbce77361acb8dd39fdfcaa02820950932245bd37986d5c1407098e13b5793666d079969b054589e70712d50be04bba484cb651c07971be722e13b82600358dec86c7f04c0c4e256ba12542f80ae7de745f50bfb07aa28e3857bcb1f371f01d93b12a2a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_7(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "ef41067a7ca9b6946155247ce8dbb619795f028d678ccf8f5f5b40e33e8cd156"),
		nonce:              decodeHexString(c, "34db8c9141bc2cb0590a545ccd02cef6"),
		personalization:    decodeHexString(c, "7b90a2baa4c139e29c48db6c5b51ccf088fda54e4187611dab44409ce1c36f4b"),
		entropyInputReseed: decodeHexString(c, "e1e96fea14fb8a55411d9ebf03633dae0ad449a2121d1c78fbc0e9cd8a78a34b"),
		expected:           decodeHexString(c, "2a13126e8947278cfce11cb02ec31acccee5319d478a4937e8fb5e6483f5874fb20a17e9d4599d256b4d87318fff393f999e7f3d8612fc1b6063175a5d070805d53f7506632f03d37aa43b4e77e323ac0d5c241d9581d7e110fad21dec83d1dc9d119d1a0686636acd0846f58b42bc12a4e7e9d5ddbdc051515e8636fd3470a3b4c2efaf9774d78f3d32991f9ca50585f939d21a15c5cae6defb1702f9b606ebfd7308e55e6690310e35dadc48f9aa873f142397f36de90fcfc1dd0b8747496548b4688899df4d9d13857274741290a39c86d5b92d375b79efceb7f6cf2ac0c8c41e6d3c05f7e980628f330b5aad1328fb4b0621278b190758fafc93da359a3b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_8(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "4d1a72a7a7efab609c6ea16e4a1150a8c1f8bcf19ec3225ad2eb10c761268d6d"),
		nonce:              decodeHexString(c, "2c9b09f982710768aaff9d5e3337b028"),
		personalization:    decodeHexString(c, "e5c9712ec583b2dbbfe76d5eea90b9e3b6815c2e38782192983c6a02efd91afa"),
		entropyInputReseed: decodeHexString(c, "596f31842fd23e75a668063bdb03cf1d7e1ff419252d44335712f16720aff52b"),
		expected:           decodeHexString(c, "f4d994662acb2644e389b41c71122053b2a9bc68303f4c77870e426ac38c1b20d12cbd8adaffb611e3a3365defad82cc8c2a27d40f57e8035e16476442ce4c4beee9d8212d230f796fd92b02d7975790120bbf7a6af8115c06457d767c5543a6c1742ff745999f8e815f5caefc92b9540a6fd19ae973c52b321e7d4d7d9b6ab4900d13b7f633a7b8f1abe3e1a0540b5803b89d71b3c4d3a5dc7c4c0751e088f27b748440df9df14fe25096fdcafa1c3e16d49235defba82ed6ddd1fc8a5fe9f5d360bd72e0d19b21cbece29737037832b9ef18b96580ba50c344695d93d07b105f39c17cd91ebc291618c8862cd47459946f735fa7fc778b4489b574d6e77ee0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_9(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "5c9f5de1e3bbb5193bbdabc6211e797dd89eac092995a5539ede5ee3f769c4c3"),
		nonce:              decodeHexString(c, "e221e65efd6daebaf2b68e4353c23d08"),
		personalization:    decodeHexString(c, "17f703c54499fe53e688c6d48b4a0604ed9f6c71b1cb4fb9cde37eb8fd2a2ee0"),
		entropyInputReseed: decodeHexString(c, "bbfe26b69abd8dbda8e41f4f9057ad7148541cca28ab0c3ea512aadcc65eef28"),
		expected:           decodeHexString(c, "11c40f20930a9ae087d5ae4cd93c6d8defc073888f4f8e153b163e7ded25a3313a55b341d40315d78527ae87c932c9071ad6416823d266fe23000e1e33463d2f67c73c6883aa301e5f12820640ffb50b680c3aded1f6b93d21c3c1a9ea01ecc9642f1e653551d6e8fa8af6a8ef626def69c65571f4a26a7d8b7bad126d945961797c8147c3ecad4637f915f8a3a73b3ff235aa3c71273f0cc0e023fa26b8a567db56a456d58536807817d5f9b04fbbb99dca16164652526b4e84781f08f1501364a1e3b709894f010693523facd0ec9c61c41ad9847a9ae47f3b5ee57cdd63aa179caf1cc4957b59461aff01f08180a53334ed436697688c55608a12fddf7239"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_10(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "c5de35ca4848615697693d839616a4272900db5c894bb13fa3a43afb9e2a714c"),
		nonce:              decodeHexString(c, "47a61871bed42c6c2a9d190b946f7201"),
		personalization:    decodeHexString(c, "0678789f954ea314dabfce48d090bf93acaa2f89f7e1a92e6ee0f7afb19788fd"),
		entropyInputReseed: decodeHexString(c, "b671991c43e5da4325666b140bf96f0548a7220edf2dbd9bf0bde719061c11e6"),
		expected:           decodeHexString(c, "7d4f29fe94ba8748d534f3fbfdd6dd8ca00f362eed4a84b2ea4c0ea83267246343271bc9d48d6e5c0265da7c11ea0a40ba8cef9ea76c649426d9089f0fd81b69a328ec511cf96e7ca79e7cf51b9fce4a62a8fdc568a4ff19604541ba2ea428eb28ae49645dc0451708fd53ee7e6e6cb8ef7607777f959a1efdc172c10e290f2f7f3b2cee2ce5e9a83c3928c55cee180bfa18359dfd9cfad1377cc0fed321ec9d13e4babc23e4efc89754648e9c6ebe7d7f69acda85a56501b8aa8887f9b809b29c7d3b02a8afc8c1ea9bdf26179b4547b480100c9e6f7d05edd620599d3ba85c96549a20dec8084dae4c98dca554a2cff094afed966a1b3109dbbd8ac5c52304"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_11(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "cf72dc871545003348cb2e458c6f4fd6df5220ce389a792f854498cabff1b5c8"),
		nonce:              decodeHexString(c, "8e3732f6aa95eaca2b318a4d29d2d33f"),
		personalization:    decodeHexString(c, "d8df317e505af016e86297f02fba94059b4cd31529d8c1ee1b33107df753d89d"),
		entropyInputReseed: decodeHexString(c, "3a289ceb1bd858e3c86c7404825c0c0a812064a05325e09d34553a691a601866"),
		expected:           decodeHexString(c, "181851eb38a67d9552c87902d25c67afd377aee587da12386a46148c4cab44ed5b61777c2247d0d39e0991fa6462475da9763d30f1adc9a1d2f90ee3733cf335648706bc7ba06c862ec9969a0ae38b7b1e14817e0d1dd06bba77a7371f60e0867fd7744b0b4b7e36cc1e280236fcb5193c73a2d00cd0c256b44eb6497ecd69d1669ad3eec8a4e4c8b730d85e12d1d9c40070e645020d7ae2360cd0d39d559713b4f010a318dfa91e44549fd85e5ae87bff1547305be5b788b5750ebaf11a60b0ce6d26dd69d219aef1a9a038ddaee0e8135a4428062837af5e0aa1be821af0246c6076ba9ada4e0aa7f74202e10802879142cd109cd27a292d04e6c53e33db0d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_12(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "c89dc15467ae09d5c514a0941f3945b1f4a1670a4df9910d14c68aa6d3c36e8f"),
		nonce:              decodeHexString(c, "5bae0abaefd8fe5300b56a7bc38083b5"),
		personalization:    decodeHexString(c, "8109ddb29d8395e938aa210852da6bf1f1a3d00be9df74b372e081d538983174"),
		entropyInputReseed: decodeHexString(c, "5602025c221e1f0d1671f2ae92bb0c86fde571ccfe8b8b5be8a94f3f1d027ee2"),
		expected:           decodeHexString(c, "e1c5d2b4ef29b2bfa498541be087f21075b0b7449ac7fd234d8e6af45680920bbe1dae35850cf27469209162d4175ec42c3d5cd6b7965f95948d9c49eea2db9dca83d1bd8bb49093ea0af12497bddd8cada20bdc94a453792800cc66d01cdf5e0afdfbdef3cead291e5b88b116fb47b82b4b18d6fb363d733718496ea20ca2614caed61d823ca9923fcd2f570a9c03827187b0cfed19bcd2c2e87f58508da8e1096eb9eb4c2ba223cded5064a6a9b5eed8cef6fabe3aaacb88b58fab570a56e80cade1be8c82f3b6918a7e574c91dc4fddac497f1cf26a801d6cf24ce49ed5e8bafbee09eceb39e1f81821ef5477fa0394992c848fd2cedd8f86c4c4a396eb3e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_13(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "1a100ec0da9544326286b38705523ac970b896ef6e6306b2124e283a8851e46d"),
		nonce:              decodeHexString(c, "3a4b2bc6a8152ec9b0f88d0e2bd1528b"),
		personalization:    decodeHexString(c, "005612d87b6df0204c3d879b5ca30bfc49df4e189285307e2926b367ebac30ff"),
		entropyInputReseed: decodeHexString(c, "13ea307a3384c10d1fead60b90bf25c305a91558c1537e2a7ac74a85240208f4"),
		expected:           decodeHexString(c, "01f56c3a325a39a2bc85e6e077b7a2864921a4b223c7fe998ae255d724a759a66971084047b44fc1b8ad013e976ab8b255930337eda87612364d605f241095200f8a8513a612bd847aea116b73078349b7cf60cd2588a8f7431671c3b3c6ab2e4dba9796b1ddeb2e1edd4cb3c4dd67cf722679cf64c5b20c64e28be1ac87f8cd9f17b59ed696f61a4a472fdf37aa90a2f16edd3d54c5abe7dcb0e964bbfbc113e66b1887e0daa2151635b803c0340ba55e3e5817cde2662ad45133c277502400b78272786c7aa40c54219a06b5a32e088baf0613fc535dbef66241befa09722f3730bc85c0434c733ab17dcc7c473d8b9f31651921407d85369b6f6fb609d53f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed66_SHA512_14(c *C) {
	s.testHMACAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "47c42df62b4dd570efd3c2722ad39a2df5f969a13f645fd27b5290877ba70916"),
		nonce:              decodeHexString(c, "c591934d4f66000ebf8c508fafc44f75"),
		personalization:    decodeHexString(c, "94822903cb5c2003c31c6d072ab0dda435add0de7d8f9d5f08b5cba410d888fd"),
		entropyInputReseed: decodeHexString(c, "d16a2c72c63580b9bcf156862214533a47b1686c871a0165604fdd00a412a484"),
		expected:           decodeHexString(c, "f78e61b443b5a97b7e493a8ce35a43545290dd33d15ba4bf0ff78f34a25c46c4ff4cd485964cc96e90fe847d9fc9e42d96e4f5aaccf976a84e3e12100c28b0f7addb1c76f89663e11890f09e4beefe928a1e0b304f1d9dd0414cd115a01b641fd69c7071f2ca7c7f2e53560f4e91010ba11948195bc5deb556686feb0bb92fe61b3171e639ef47418f02be37796efdb6920952f3a8c766b52fccfa757e923e38028a84f9be1b802c1fbbbb4aef825f4c5e4fc1bf6e96f33ab90ea486710718c9e4f3247b2a55ccef5a5d342cac757f0b9f90bcdcc8c2ec3a43149bbd3924c85f0b5b7ae42151f4ded826ee6d47849ef4e8af64adf6863982503c23c4a0514ce0"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_0(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "54daf8ead3accb382cdf251cfbc8644ab8bf4f99693711102c02b2b6920c25c8"),
		nonce:              decodeHexString(c, "4bcf3b02dc3e130f50e89bdf2cf752e2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4530e0b8955190ecd3ca117d2620a0f5823a2c7c6f108a72aec69ad59151c8ec"),
		expected:           decodeHexString(c, "c9444a9366764f89ef3226ee70f618492fa9fa9a1c96e53ec817dec9c4c83fb6ef7fcb2cae9973293eaaa596cbbfda4c3fbf2dd91253be2ce6648c31e2aa92315ab4adb911aaac15b56a273da74c114e1f58b37b4705171c4cf7c74523f52e721f11bd8c37519995e0d13c190d7e586cd3e3e9fc2da948c5a52aa69cdcc842da17b494cb330fca9d8724965fe7bbc45ccd877214ed4d91711a4eccf9328f7a2e393cf59e69bba68716ab930d546274a9d7a63fb275c20712dd6b631b693373295311871921c52e2ec546159d92eb15133bdb453ba54aef09c4790a1b3428b44475ee8fab6db2d5a8aaafc046355eb6421dbce2f9283a03b4c373975131aeca69"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_1(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "ff39f17eb0bdcea244b3b5bc1cf197751430ee97d66f0ff1a919080089a1146c"),
		nonce:              decodeHexString(c, "9f8cfb8ab26801407f1c49c0ca757fe2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "71bc8a2a1777bb9b01ece0965f262e4b4de41ec462dfcb8f679f7cc491f79a6d"),
		expected:           decodeHexString(c, "ad2cd7ad68e21b34d2643a804652ead4058a3aaba9146afb305411e085c8ce22b207dab0a3215b3535433a916205f5750dc9deec19402bbd73cdd3fe8f8e0ce50d89612f886abea8003766a00045cf105382a450bdfc9baced9c8a5039b2edcf8eda96feab60e417809f5747e261990d7c0e122ec31db5078865bf8c338ca57e0563065c1a5a448d43bb2aee50b1c8c6f3c25e71c13bca5f739d1e9f8be540c298185a93f2ba8f5acadfd5218ba3078de68538212496597b47d6440992fa67f8d618aae20bd8049255f7c95252a752984e56c9d92646c0b45aa2bb435b63e4b8b1956b6dd8632a135e35ced73f59566bcc60114357fa61bec7aa371bca048077"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_2(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "c96c30fb0044649de8597d4e9f3a03b10b65405b03d63b86a2d6891936cb5362"),
		nonce:              decodeHexString(c, "772774068a769c23c8e57b3ac232a6cf"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ead2d35b7a86abf21f785a9377e2489399343233f36228d0e3e16cdcc25c5c08"),
		expected:           decodeHexString(c, "9d947979d75536d82ff72916176a4ff592f453927298391ceff9fbcd593b0c857a456006af4c90ab2d8362f47346d00cc423e0403a7e87a992097da7c632a17c2ae0b6d5dd202f27422ec2f44bab14f44c317dd4822b65320b97c78c8e354f97f372749cc80642664b4218ce333ae2b68cb6b2f799ea74dc323f8d32622bd599a540ed4a37bf90fdec9c3be4a4785e48fcb9c086df06223b6c730dbed6e45c3614ac44da663815f0e15fa2c0e55480f6c5cae265af4f986b0deabc898fd5f2d3c6e481d79230852f42e8dadcdcb904beaf74f407d11b4eb950a3573a10f15b3e6de00f7cf5277040e35298328a43a912c25fc6827ef650949dd4dc4c8af19d3d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_3(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "0f2bac45b04937fb27544f0b74c62c4db6c52fa2304d44645638cd71ffbec97c"),
		nonce:              decodeHexString(c, "d217f0a4b1155db8074ea70c4d9e3796"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b97ec12b54d6cf13ae48eb94fec897c9b91cb7a7234e2b11af8b2a508b092268"),
		expected:           decodeHexString(c, "f242f1ea71abaee0d6d8f063897c710fed9e1acca11ce122b1033c8d1427d0c9d1ffcdfc5e6c3d28dcedae45f116c173f613bead98a3cc291812796287db0eb17d35e3dbff83d22214a40bb089ed91409695ddf21a9a8bce5ca7d489fcd6dcbd7da788692e8fd5774cdd04f1e827b02c0bb8993be2d95869a4a4b93f65c9c315ebf3268d39502b99b3b3cf3df6f8db24f2e131e73a38bf266849516f0a6c8ee83d8898b0642a58db2a0f03b5247b12e27a596b8ff6b1b4e653c315e84c872508c748390f155197f1ae9b6cd4c9761b8e793ae9a39a2cf85277f2d149e8c8845fce5e4e58a022556f99f684c2236cba585af83675e775e5e0e6071f0f7d31573b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_4(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "1267f77731a651991b3dedeb5ad9921e86c3a8b36eb5610d3928656eb3162cba"),
		nonce:              decodeHexString(c, "2426ff2a9759c7079dd53f4a10daa3d4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3afe331efc902642751108adfeebdd814a1e484fda8c370554da529c738c504c"),
		expected:           decodeHexString(c, "5c2dfec7d8e444533c1d3316d0a937e59bb479f217c270c329a62a21dc793c44145516e2a1b3fe83a2ddd73612b5d66d2b2ba62f303b6ae666d3e93ba06de7be7be7244730c0123f93fdccd33cd3c05be954ee9c070d97e63f0a4facfbd2812df09a5ee628174785cefb781c6dd4595d00de5b52e364f10c15f33d8ea8ef20e049f95af60c4a61da829aa7200e55346c3ab02f6a17f2362e5c205790be7224fe67eba8cc325e20e93fdb98e00088016a7205fd29ff3bb441124d3fb0b2185069fe272de389bdb27c305627fb02f2ad0a5167efb4c89775e26c443ad2c15b0671ab070ac86faeb7765ab1584d7bd56e178316c77254d0a7926b58c354760bc47a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_5(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "46dfb4e82fc784ad0094dc81136834e5abc767fff2b876a06b1dbd2508dbed3a"),
		nonce:              decodeHexString(c, "64d40d3886ac152838f6853121fd68b7"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "329004b8bb439305c4b2dcdd54ca97a4f54cb720a8582cdc03ac26f8a603f3fd"),
		expected:           decodeHexString(c, "1887eb4c57b63109f7e446bf0a6c598de093a6013009503925d620f40cf98c8774a6c4a1affe57f8e6b190d0504ff4c4eb55ba4e8a2642d230ee845ed4e31d8adddb1a21dd45346cbda9884a322e6e8f38a82e888f81264a2e254ec2ad5ad4d60a162287e48bc39776eb57dce88cfe467b042d037d1b06877acc39f31b08b1aa13805fe0440a3506a7f59dc6e2376147acf87b78bbaef4c15b579335794688d142eedc231829a34a5c6976e0c8c4649edc178c8f7d8f9ae92f05e3d54df6e47cf9260a5a582a7d3b0030e9a5de912d0f7e4d3103233dcfa8dc0caeddf12a8502c7d941de883690d47bd1a1b61d723abaf0c31d67136fb427edcaa9526a9dc9fa"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_6(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "1365bbb06c99a5a2ac5506671b89a98208ffe8cd5ecedd1638958e4c8de83cff"),
		nonce:              decodeHexString(c, "b3abc3ff4658a9f08fd55da729205f76"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7c1d5a6fcb0b5ed559526d008786025bee6ca6b0744e7348be79f9797640ccab"),
		expected:           decodeHexString(c, "fd08e2b6f9ca3d9973d9303c37bdd6b9aaa95c740d68f720855fd531f942b3a869765e5eef8a5f3c2a43b818a60ab0d4dc9c975267e48c4f68d070d90e835225d93ea4911f1cc12c0aff1bffc27859c8d013af86757a835df43a35a74a29a4bbb97135600fdc6209b834eaf02827408d79f958f47f90d3d31d77f3c771f82b6771425fc21281c4e9acc1ab94a6f1ce6aecaebc4a5e701bdb9697f52bc2cd1de627075360161b0292e609913287139cf182a9ad2da026ee419ea7234433d439652c5f47fcd1316d795d487692b793390ab24d93c336a9233fa92c148c7a4230c0649b13437dc9788d0f2c6aab9ae976f3e8fa7845cf90938bd99eb6024a31e948"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_7(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "abf155bfdc53d120955dd324f396ec654e86df8c95d3a727ecf8020abce92b51"),
		nonce:              decodeHexString(c, "2c844ec3d1c817d5584bdf0acde70b04"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d1813b7ded5f4b4f67a2c70d0282d2f413e1d7e4731ec82d1382147669c9e2a3"),
		expected:           decodeHexString(c, "246d55428f18a85ee70ac48d0c571f2afb57749d2480c254a4aa9e95c2627be4057c39219f1920d8ab8af500a952897d3716ae3e3403a400a24a06c0bdbabc6fd3f739bf038dc68149145c6c0fcb97fb6dca0ff5b7aa696127fdd1524f738d6ecd289cc2c01f57b0b8803219640d2b934d4debeb3a01b9b76ad1c434e415ef65dc145dad86f937a97b6cd143cc57b4c8e895d15cee2c090b89ed5876e8bc59fe4014a094a3308d6b435f5882edffc43386cbafaaf96403a8cab35a64ae4c0871c952166fc6902d4228e37decce6efbc56de93d323a7c3205932a6323ae8d4266539d8182ad934ba53c34d25558bef06ad72052744d6b941731c52f3cd5bfc750"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_8(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "dfc8ed902d53be17f950c1cef6fee2d442c56dbe05bcb948ea52ea96c072ae9f"),
		nonce:              decodeHexString(c, "c87a36e097cdb4b54f9c6d78a39cd587"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "45381863403b4b489da67954c41006479dd6cb8bda88b60f792083c291bfb369"),
		expected:           decodeHexString(c, "8904110642345c7c03e1f6f902aaa76339f4b1f29639ff6781891b77f819b6c4d6b6ef93434157285b1ef036f080da7fb863da7362de4aba00a8d298485c5713bc00a4dd0a5d031c2b055ec2212f71cdea698ed1b85622fa6ee40e1c6d61c8ed6730baea822a6e4604d410f4b31dc84e07cbb73eb408a06524dc7a175edf9aa95c46fcda406ff473ea2a6ebc69f21be125d961141a22782bb8c971bc126f0867c1d57506bf23dc606d0db368a2465f57008dc54b7f14e67e06c2fa8561ab05fabd810feb805ba90f13be077b0c2bc7469e8ef7ec3ce666254049233cf0c15602b1a4b357a04eaa6e3b319f10929249a533ff9909de6f3c601f00b6560eb1739f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_9(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "31644cde0263b5630b9bc08afc6fa5efc4d4536f7c5f5385984a736085a4c0dc"),
		nonce:              decodeHexString(c, "2275b106343248169df29121cbc3ac23"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3f7034f880eca499512b9e8d360d58a55f7e312f5fcfeb3c6a7f945d6736a3c9"),
		expected:           decodeHexString(c, "8447594d8575dd82bf7de0f9b31cda696f3593a9506c4d839fc152dc92e7b8591b2b332cd53cdef71593a8759a39e82cf2f717c9c9f1fc0ebf655a20a5ee97705cd368997fae44afe2b149cf6622b73aa90fa04ac4566f5f774728b5e12d24ad272f61a63b0a644b9d30fbc263ae94f395070f193153b89bd312fac2ae002c6eefe7688a776ade10e8adf770036c3f29819a1de24a0c065f80aac84ffb1b312b9d576b80b0a489b1d39dcaacad7539afbb698c8ca870bf9134dad34810e161af1ae3fa017870ac8bb1864f9abf9b7ce13ccb204d6039adb39ec46be692c2601994b763a229811d73f9e2b16a8b437cd7a5dfd013db5a9c9b919e7d9466c2aefb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_10(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "0f03af6d18d305b989e2690edd50058c7c56127c1229ec4a9fc52ef8185d62d5"),
		nonce:              decodeHexString(c, "f44b9e701c0f96b7e784ded671f6331d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a14e5cc06d5c3359d3e9595b5ce42545dbc49b9cd5585e7a813f4afa826e574c"),
		expected:           decodeHexString(c, "96daa2a46fb46a6299b2d7a7dbbd3967a898189133e2fc2172ba7bd53b8df5bac278a4559acb0cbfbd3b6e6648fc22f7e8de2a159be576c8ad50f803b6b498f90bfd4aeefb5cb52b5478c4747a664d72fa214b2a025df35b989df592f098663168b7dd8cf0b94f1451005a882de929109effb924ed2d372ee32742707f330966395f2b6be235eaa766cc6b2d45cd9784399591ff51a9ed8bf1d8c6451bcff8329ff5ee5bfa0ce3187a1ffe4577e5d212b8afc090c00113a9b93f21252e89579f88424c7b0ec7f705f21df18d819b680976bfd795ceb20bb43e0f3fd10889dae58d3873cb306c2a959df783ad325377fcf65ca780ae6bd2441a309347fb84cef7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_11(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "e9eddf9412cb854e0beb96a2714ee3ba41c313a35d843ac284dcc71b30fbb147"),
		nonce:              decodeHexString(c, "c02aeeb8281b512a965475166113b88c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d2166b6e9a5ea79674578c41a6b78de7be4f28430eb5028019b453fff7fc58a8"),
		expected:           decodeHexString(c, "918a0403149d2eef1a6aef6f4b4eeadb8cc3982001c414e4c045e2752af4a74591c6851e204804721279b2134703c4cfc98a851e38f13990886973ac8e0ad603330be3f6b1c755a9f37aa17bec0cefafc81fc644de4a8d404db19b2c8a0963573ad84f42e81d1fd3cb4ac6330f77f32c3700a7925a3d1b4e108d7804bd8ea5d4459d8ef26bde504d7123e5381299356101776f544d432319cabccaf7b0b4d4dd3cb98b2887aa1ad681ddad47424714dce82e7f53667f589401d3441d32337b8e3055391121e4e40efdbae92dc90fd9ff162a7beb56cb91dbe3ad559f65e36fe01b652797a51d26d55b0227b4e3afa9e18f93a33e6742443690969faf1ad26141"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_12(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "e7ef7d8bee8395ac2f05e7f8bfa4eab2ea45287dba510a1e5a5b19fd7472329d"),
		nonce:              decodeHexString(c, "c957d95f7db628d56c7ce3a3167e8079"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c01832b33d7ca32ccc195c32a8da4523340789b69f5ff55b5beba33f3bd6490a"),
		expected:           decodeHexString(c, "41753aef5d11ee0cc41944dba9159aeaeea36421f13ffdbc79e223b2036870c5762bf215da8f7478f837d513ae70de4db7f60bcf2e84b28d3cfe3a4bcaec8a470cdca9083c5fac8ae7c8347e9b4c460be369f806642722c1e6710935bb678a1d34e39b7ec019036eeb547c3607d4af97aa713bbba96a3412338db086bfd6240e994a5ba8ce5afbdf8e31179cc6c8fc46485b39a5de537e8ac8a266f48016c0489a35961c71dfb4c2318b01ee0afed1fa751c7adc0540d88a7b07a1f105a5bad8c326c6a02b12625fe9742f76b054b60bdb960e4727780ed80a8f938fc4288b20c4b884d8f4fe34f1fa3ceadc0066a4526936d0a7cbc4d4970dfb3ee60da510ac"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_13(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "0a8196f28f54ad48ffa372aef2d962339d7d6dfdf2c34e44e5193dca30f2f594"),
		nonce:              decodeHexString(c, "bec5768c0224780efc2c8d025bbc9378"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fd697a37f903c09bf2fb7db47522161775c9467ccfdc7c79f187fbb0843caa13"),
		expected:           decodeHexString(c, "a6a9dfb667e5f169e6cb6e40fd9ae9e280bf7e7d047f4ecedaef551b97c45df5609a10a7437875adb9b3d85fb8ed2e816caa81cee7cc5218fba4e3091db947a862a975e8c9547ab0bd9cc30b5931cae4315ac3dab975023b6ab50d6d78031f90f7d8120776a9332c2bcca4ded6ff93b3d47cb9eba3886f65cb61298e729d276409228a706401f037f2e50f832048211bc615e24ae0ce08dd76188d2b8f74bcd87523e57e9489d85bd63ec7e5b045c9fb7232407315f812a71051d24f5066199a166f9f107f070a9bde33f0ff41e49e56c6590d552dcf29c1c47cfe4034c0b2dc4f934e4dd451d902f6010d28a13968b6682f31df002bb835ea22e79c86eb1cd1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed68_SHA512_14(c *C) {
	s.testHMACAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "b67d59466823441123ce4a471d10c546ef96e96eb8137530f89e189fa32e0a50"),
		nonce:              decodeHexString(c, "f465a0b441a15be5d9ec38eb5b77fec3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0e506bb9c477b6c60c7fabc8bd0496b4b5c7a2baca050ef1c9ffdd331eff1d5d"),
		expected:           decodeHexString(c, "2a4fb0b6a7e7f9669d466d724c8dfc0cbb9de838829bc99a494fb543bb120b558338ad37d956f2601cd777a2e50b17f59a61c55a55af973065712372a3f7528d48be01577a64ce351608bfaaab84d799e711734a39c6b184477499537866a9cb0028cbdb8dfc2f6a383cf1e9a9c5c81e0f444fc09a4a170302d945bf0e5dc9f49be7ea20d299cbc0ba70b683a6105adeb21d551ed09a2a1c1974104e8825172b4a85eba7c1e68d657596382e9a06d7b1993d657ff3dcdc7f215ece3fb86105dd437dc0fa55e167e0e8e3943a51538c55785535dbc9e08c7c5696f5c00126254c72ec127db47b2006322b9763496a7cb4349acb521808f4f8113e400577e13e54"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_0(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "cded7aaeab1025a6053c12b8bca197c7963dee09f50c1cb9733411c72cd090b9"),
		nonce:              decodeHexString(c, "1ff77f523678c1926b2b11354a55510f"),
		personalization:    decodeHexString(c, "39a7196a2616a5329c4b09f3be521c2391fa37fce954a1fd259bde230c8d130e"),
		entropyInputReseed: decodeHexString(c, "f915ac126f3ac6eddc6f9b857b124363ffb53fbb664a3d7cb910fbf558b833bb"),
		expected:           decodeHexString(c, "a4c97a54be091a7f1b56372c08b4dbe9a160e59bfb1b38dfeeff9bd8db5b4f19714c4719c9127e8cbd24e783900e71a77b1a8303c886655d859a0a5054cd84ed1c6ba111ad13dc121bd0869b21712bc24224c7e359e2de8f0933c982a18011856463fdb49cca5c468026ce024a569c98fa3b3cc488946fe9fe07dd18fd75863ffcfad32a2d0480e45b169f68cd6f31c623b4fbd3354270c51c494c614dccc27ddb5e2f9bcbbc3fc397384c9237ecaf6b47591f6779a52ab4c0381bd7fe73444c20d47d5f25a4413f8068557e7fd2745fdb88a88d262d1a2386c9e84a110008ecd8cb9aea883d4352d9e616abe759f10c867da1855eded5a3eb5c4b20c95aabe6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_1(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "83f9a0fb73a8818230a5f3dcf3d9cc0a6bedb04401110cdbee90e516a742c437"),
		nonce:              decodeHexString(c, "138ef31719e6de83f4ca1e2ebc8fc9c8"),
		personalization:    decodeHexString(c, "5a96ef191d56730840cd57a33366933f74171a90f2420555785e59ec5eaf8547"),
		entropyInputReseed: decodeHexString(c, "7c4d1e16ff54dde4560777583fa43c0f0dfa18b9c91851467237918ce921596e"),
		expected:           decodeHexString(c, "1fce178de6ab67429304d2cfe87b261b59d9b5a2f2e95517105d0c567e323f66d08bb6fb1f01faa20d37aee6c6fa2876743ac0ed245db8a67157e30b66a77a29e1fada8d4f43b5d2ac860a42b4899006acbcefaa3391dc73afa1d807c379d0aec26fe7379f499785ae21edabc83ff18c38a49f1a19eb22c95687f465358fc5ed049a49d24e26f09a75c86c2f914e48ba415390331cc9f3db725676f4c79561f54dd6227028485439c9265319fc26e02899be979d6c9872d1e545c6d269412e2f009558b6e246f6c9aa344888d22437324554658d5a8bfd4cc6a4395f42d07e809d2485712610d7f3853360f6631e746f0ee4e7ce781b53eaada81dcc4d3d5630"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_2(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "956b3cbe4ec45470c59e5a3a8309e66ba25ba7c0814708e892035976382482c9"),
		nonce:              decodeHexString(c, "ae332756fc156ae540427e9ff6536019"),
		personalization:    decodeHexString(c, "2ab10d27481cf18df5a2084dfde8c51f6cb5612c2fed9f23b8b27d8278321437"),
		entropyInputReseed: decodeHexString(c, "ff252711680c68e71f1c180ecae4d43a9458f2438aca5121ae57ccfe1f85954e"),
		expected:           decodeHexString(c, "9bb320e95c0469a299f6e3142913054626d03824d8d270ca796baaca6db634e9953af84476cf38735da795a6f0cb3f5951e9b372101567625edefbed3f88ed276b0de4d455d3047503c62645b552053c9783913cd1123d841bf747279fe4e104c5ba52a5d9a7216273b77eddbdf9fbaddac234e805598f31769241a183b7c7bfd59b81ee886d825cec1dc7362effb7b195d621b614fe2a7cfbf62f7ce542155c2329bd514efe6a668b0c958de34fad48add4c04c7149ee28423cf43353443e1856c95544170c177ef9d9553a86eeae67260ec642baf52197ccd29f4b8fa964a91174bf789c25f03d1a1cc062d505e303396ed31c01bcaa139e80695cf1331faa"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_3(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "0aa97d6d02fcd06ea2853e130831df050cfb3740dcc03876c6c7255ca00d9da8"),
		nonce:              decodeHexString(c, "a51710de7592be83d5bb7b3c5d34b324"),
		personalization:    decodeHexString(c, "7ba193937ce74f610ee87d7b0c0dd04542325f27a500418658f6f56715e20753"),
		entropyInputReseed: decodeHexString(c, "077a38b211572da3aeeb5fceb398ede745f8488ce02c7e1b8ea21d6fcf1c74b5"),
		expected:           decodeHexString(c, "cc5b2adb59b58a558c736563158f58e834df9dbb98ee624928c0c04fe63bf3bbb581a206d8c0123e353886404bf7a82defaf4be8358572bbb978afb845d198c55dd51aae06e06593157b490d7bb590921f6ddeb3d591b08e8bdbbe10e56909a9c41fe924c6658ca6535b9b311631a3772342fb4e3bfac1d7c98ce64e1a7d3f23a90721e1646cbfe8625747c291130fc82758605c47871993a16918b425c2c7af164addf5c462591bb410d04adf870276cad74402830e097f9c8907e2206e1c14988155a14a5cb2bfed7764494acc25caee75403ddf5476570dbc9a86eb0f3a960086b0cdabb132c6c4da411514840cf04c3b99a304cacd8237613e312b2603be"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_4(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "fbd5dd1f9426bb7e10de90f0e9fc884f9a472c05dae787ade36675e0b31ed195"),
		nonce:              decodeHexString(c, "dfe0b4d6eb50151938040da17fa6346c"),
		personalization:    decodeHexString(c, "3a2f42ec686e554813231ebd74c7167c6c6e4b416751e2dd050c374701a5c2f8"),
		entropyInputReseed: decodeHexString(c, "934803aa2db6a649865630b78ff54070839f40ddabcfe5e832da9bcd7cfbe884"),
		expected:           decodeHexString(c, "aec4fa0fb5b1bfe5e0ef3d7c6f819447ce99d93a48e1280b45c1ffa17bef5a56638ecc831952a6b99b60f465a173ffd64ef21bc52c9f32a3d8808e08dac3a12c937d04429376953d4208c678988f9c3de1212b8062d414a25b4307fabf92a0cab1a4484caa818be0e469d31ebce47173f1ec8089cb0ce1edd3af28659222de4bde8279942ce94bc5139eba0c9988d1bbe7424825f6ab2d1da6b332843698c2682bd207b48917c36a0dcb0203c23341e8d2105582aa7bbd0ec9ae8005ecd7ec2f68a83b5255d50a3ba9651e8de58496db57c5539dd6e4a111618ae7da639f4efeaac83dc7573c0d613a5aa8bdd9e43094c3df6d88bb7304855cf1f013ac26b8ad"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_5(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "a88b6928df0a330be4acffe89b970670508e0326150c2cc038d2f811cae11523"),
		nonce:              decodeHexString(c, "c221e68d188deb9dc1f18713c3bf3dc4"),
		personalization:    decodeHexString(c, "a5757d89e6f84bc0e750b5e0a0135e6b20bf722bc46b2815d00347852f191a08"),
		entropyInputReseed: decodeHexString(c, "8f5b290f277f5bb56140d6c212fc3bea3a52a74af202c8ca0570c3a8a4585cde"),
		expected:           decodeHexString(c, "a72e8e0b09dea0f1c5cb820bc900ec2f842a1d9b1e341a591ad089dfb6540b75ce3e6ee47005fab917ecf2d45b5b085ac8d20918bffbee8ebbb44f4ad2d5230fd1f8059b68ee1c7ef76a9b48cfd0a40927c5732c2d92184454a7f491f8b139b852b4a872ea7c538e6adc772a512df1a98c90a46146b85e34c82d429d5e63deaa7cac7ecc0e9687189cb9a068b6de59172c8e627221f06e1034aed565926d5023624bc1ef8c837d5e90beae1e245bee49c553dcb64752c66b647ca4e6c73bc200bd5f664a36c2376b177b02514a9937775ef50d0e173c0f5014f8ce473df91005ede04b4508994c595ee3b31df2537d16e56e43f6b8461948bac4ea0c4f30ad0b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_6(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "30ef002e66ce3312c47985d5f2cd2a193ffad8f6070fd284ccf60a9bb495315a"),
		nonce:              decodeHexString(c, "8d1fb622f6f0f730455cc4ce0b752eae"),
		personalization:    decodeHexString(c, "ab079a32f381448f9d00e4b6db74fac407fd7f67e505c6d65b71605fca7d758c"),
		entropyInputReseed: decodeHexString(c, "4ee1212a8768360f831d3d60c25d627b7654abc90ff2b03f2d4eeebf1fdcf1bf"),
		expected:           decodeHexString(c, "758983f5eca38d70228a0eb6f57dd38a34c7de84e256e7d2c6f6bc820a247f1e2252389c01716e5dd5eab673f9a62357373567365126d8db59da8adc5f865579bf5770d215274df4d5db21e80d11811fda722d896c2ed9a07deaa08e10ca334df2239b212a5e7265a35428d736e2fcb4e0258fc714e7e93996a37ac57cecb7c5fa9856370c204e6441e7b76cfc28098d732b92bab90388a574c405018130fb63b71c9c7d19b38ac12dd445fe1b5532bbfe72efc4cc19a8aad8d0d7bebfee91e89048078e35feff0e8ba485e79cd52678513b874a6fe21d13b18360dde51b2034136afcabd8691641d2a93df4c47c58e2a092a96fcb225deb1ee00ead5a5fb903"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_7(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "1997b1ddad6cb23249f206663cb57a8d0a1189735b08f8699bd5b1dafd0427a4"),
		nonce:              decodeHexString(c, "cf4b0353f83aecfc8ca12d922214d605"),
		personalization:    decodeHexString(c, "bc4620e0e20a0ce9d7723885ae20ed54b23faa97a44784ec247691c089dbabbc"),
		entropyInputReseed: decodeHexString(c, "ed1b1c4fc0f6d3c85e8907b84c80c5d374a0b342d5fce42cd916059f719346e0"),
		expected:           decodeHexString(c, "9671271486ce0c060fc060f26f9a31e0ce289ee8a3010c75fe4e8bf0af31e310d554f9072f7eb79b335bf7e64b2d115962287c72f0191533520b21bd90dad61cae7f2d61da830dc8215a1122257a241eea7cc11264a14c9bcb64b61b2e9d7668e54d20f9f434ca893e08681f3dd1dc19c4a0d459c239c6ac57eb1966619aa84ee83d1e9cbe970e5cfc9863e342cc8b156d494048f23c8edbc3d76307823fa0cebf3dda09860d9d81211ffd6babd31090330e0675fe4d845909df5f44d63506ec53abe7f6236d69b0bd471be4e4d3d1d4c23bdb1a52450133a8f4a549705ac13fd8575108edc2317322fa331287615e10cd7cee10469426976ed41c6f0e8995ba"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_8(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "dd7348799a9d7dc016fc04699e44886c98eccf7d34d7cabfde856ff75d3abaa5"),
		nonce:              decodeHexString(c, "21e83444c2410418805e81507ab83c34"),
		personalization:    decodeHexString(c, "32810aac89887c36ed78d5f6915a511e231f53c04e88e1b01d832cea38a2ab4c"),
		entropyInputReseed: decodeHexString(c, "3d1286f1aa0d00193e35a9c2f11f622899be74cb59acbf9ae45ec83e4bbb475a"),
		expected:           decodeHexString(c, "e6448c5d3553b93714dea92913a41b4fa7ff6cf399dab474eae41e129d59f7130a3d6cda782e316c3419c85cdb54359d05effdb49dacb1bf1d6c4f89e95788d7de0041ab280c74a116414a8120b81241fc67adc279cdb09c998db148ad011c756d2e2ee85d319de55770f25bcc51777a16bb86da74d0945c3971f6381b70683b7b613c6d5a18650743c1eb7417153966b448a147f387d384a180f1e0abc2f4ec02289e423155d86a835b1971bb4da4ee24aaba9613aad499d39cb86e4c1a3c88b281de195350cfde2bace386ec3c5f94774cca8451a7746110b990339fd0c73fb9beac304d4af5fbc85c94ad94917f5eda5e212df55eed4e024c2674f17459da"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_9(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "4d9925f56b924acf7c869ddcac7d5d4b1b1c862e7ffc858d06304b6362f8dcca"),
		nonce:              decodeHexString(c, "20b87e135c834d794876f80e67756cf3"),
		personalization:    decodeHexString(c, "8870c5d26618d98689f5b7fb84aca33e8bf50d0bdf2c64141857c6bfc35e2520"),
		entropyInputReseed: decodeHexString(c, "56c166c1874cebb2e8c9ec74add6107b949181acde569d868954c4563415e11a"),
		expected:           decodeHexString(c, "8cb84af0fd494fec219268f1a6867b0380e0e5c496de5c4751155772356af521f85c2cbdd54a1c9154c5476c7e9125bd34c05bc05200146d1522b2c62015db66e0b85e70e76489c115ca9eb299d31e2fd53a6fe42f6c800b632211c5bf44f45543554a6c64ccd425163816e1b880922916d22355b0921357db8558b0045cc210bd9d54b652504283b63c04ffec37a8561fbd92d5a390008163b65a7a1253faaa6cc71636bb0b6657accb8b170acbd415213b462e7b082ff2945c3ede37da827649280ffe31c3a2f1cd0106890c54752f831fc1ed11287d4d25807e6f3fe1d3d7da55dfedc8f65d7c3b09e149e424df3a06380eed8f7cfb757bd6c42d79a11815"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_10(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "02b86ba2c6a25a8cfb58391156bcd61eba55a31d87d5995e1235e902346eec47"),
		nonce:              decodeHexString(c, "f25ce82c0a8e3866c94a10af455cbb33"),
		personalization:    decodeHexString(c, "ded39af098aecc7bcf9cb7cdb84eb360e9ae0bbebb497221b3c2df3496887cd6"),
		entropyInputReseed: decodeHexString(c, "1975d8894d5e1f60aebca2a7b966df6ffe476195f038cbf34113952ca2daaa25"),
		expected:           decodeHexString(c, "d594ad360948b00c505b174eb35a821a3d46513310b3b6c2f24d6e44e01e88cd1a4762f5abca36a2708b207aa9be78889307e8a1a173a7242fe6417b973ff7769b3bf499a4b527f1abc03eddf8daf4a1e4176654026993e59ae55e8369c57a222a9420a97a6d354dc78fd591f2c9b291b2c34c33c7053b7d688455679b94b74a948398277cdad12c674714b5ba27318f6f1f2cc8ce125800bdd05fc41d92d4bb597473f4efb1e52e1c95f94a5227edde50542d1123c22a7be05bea686f2a98f9769a4dc24c3ef1b0ce4188078b1c0edeb807e16f1f401f0ccc845648d9c95999b280f38392a1e50e95a096f2f682b7751e0aa766dfabee755de4a884c4562f9c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_11(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "b0ca70f7e87a80b12c68b0bd6fc393ca0432b4749ad77682a5ab33ef0b6ad940"),
		nonce:              decodeHexString(c, "82a27d5afbe45e38ad8d8dd5636e59d3"),
		personalization:    decodeHexString(c, "45a2b9b8e879039cbcec756e18aca7ccdeb61f96f615d806edfc9ef022d518a4"),
		entropyInputReseed: decodeHexString(c, "38f8e48d8aebbcebede778f2e7fc8cbe565a5d79647185462a73f69019534474"),
		expected:           decodeHexString(c, "0b5b4218152edc1ee83c5253340df39b89c6285984df3f6ef5adbb4e3a2af3c9f81e69a6a751f5b9285540103a9fe07663737e6f711b4a4bcb10a4d0ea5e90fb77bda5f6f61c09bdb5da70f651b7f10de7bbd09d8f4c18256e69dc125311fa628a8212604259798cde235662d9ed13070398fea4cdfa35c75343fc9583aaba9a235601b8432e782c3041a04eb2d33e735c39001c0c651ac70be0926dc28bc82d0919e1ff7d06b61a70fc6fdbd33cbc4cce5edf79d9fef1bd2303528afe9323c727f681e6eba735c42d2d7f04fb84dffc6be5303e9c03df51a2437b02bea5205ef85685d857dd1c63334909591d152bdd4f4fe0e7d84e9d6b06ec26885c430935"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_12(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "54378e1522bce40673b499a8e76c850e2305aa70ef90c79bb40d7cb360a4ffe1"),
		nonce:              decodeHexString(c, "3321675fa9fe1c48ecfecaca12125387"),
		personalization:    decodeHexString(c, "f6542b32b3c4898f387012c16cfcfc53d2d50723c33a880a3491a6a6ccba3462"),
		entropyInputReseed: decodeHexString(c, "610238342d6592326746c55476a1f7213d95c8023ce504e2a4a80a239d98bc30"),
		expected:           decodeHexString(c, "52e30bb2469135ebbc8eb2b84c0acb6c4589c3865ca756acaf346d4472f69f5217349cd93ca309c8ad17bba7eda08979fa2c498642ea406f3be96d772bf151b02234b5cfc6a0819196932423444c0238e6912b87823a0ebb8c5664986ecbd04b7de30ad983c6a0339179fa08054a4d2bc437e696a88fefe4c4c0d6bc8d639a9c4215c174660c0c42680628fd979d9918dfedd8ba814ad66e63b7f55307907cbb0b210c0c70e513a8d5c15cfd8de1ac5dc62a37ccb8900869602c14b5a36a57ade130be0c03740969c77ebe898466793a84cbedf504d13c7477ff70c775964e36a386f99aa326fe73911a61316182d0482a460e6623bd8725bc1ac45372fcd8d2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_13(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "65c5460decc60e0f4c57cd761662dda3c487a49483e62585154bd26d804df871"),
		nonce:              decodeHexString(c, "5c3365c83ef33154c247cf15dc6293ca"),
		personalization:    decodeHexString(c, "a2b55c7f576eb6950f04e9c7fac133a22a703e610f8409630bf11a87dfbf9dbc"),
		entropyInputReseed: decodeHexString(c, "e98b6b0dd63deb90d8024892d224bac9c2a9a534e56546572da4b7979636709f"),
		expected:           decodeHexString(c, "05ea23c43d1a73e33726c024014b7c4360da256dd685c8dbdc7c68ca2c5b108577a9d0bfdec5dc2755a845551f594d3ebf03adeb6280914d4fc544558aa07442da3718442ab704c143fec9e4b6a94e6c8960ae21fd7c9aa3c10ea8a60345d9f8518b30db7bc28489ab13066fe9ca52a8e3577686c06f872b958db2c376496e0c87bc6c2454bd90687de1480abb1ba4839d315e9991c4bdec2b46068b496dff4ad38d26f4f27554f71081c74aee93ac96c882b42c306d46ac12c171ad7e529de244af594ae372110b57a128b4270b8b366ba238a087660bbc6574c6098a93dc6c64aa1eb4a975f67863d91c4aa669c6d1875f73b7b51cf2c2048013419bf9f1b7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed70_SHA512_14(c *C) {
	s.testHMACAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "8ac96c74454a89aa1b7d74ccfca4defb8614e0f065b8718f3fb943a62a16c2d7"),
		nonce:              decodeHexString(c, "c2129e8430e67e6ebf5b3f78bff22e41"),
		personalization:    decodeHexString(c, "b3ca7ba921bec5dfc1ca81cc945471367ea3294b2942c805ffa536577c6d9ef8"),
		entropyInputReseed: decodeHexString(c, "5a5250c25f19b43647904578a71070b87f21cbddcedd7fed764d5396671fed26"),
		expected:           decodeHexString(c, "a8e93328b3758e9432b482ab58ff67eaa1a72fc7da2dfe144c430dad21f90edcc48e43563fce3eac67cc8096b74c998555a3bf36dc1374a5d28ea196afaf57b86f6459f8947ade33aac33017399005e940d4707cad74874407a7c7f688138e98b8de2df2b5245792ef1299685734aad9f07644092bf4c76a28def7d838dba3d3f23956859f8c4257253b1bbef50fc39ba748f60b8429883020c393471a070f12f7b739f82ac98d80716b85f4955c156d796de5552b08e0516981b442486fac54c503a32771ef050caa236e350ffd320890b75a395863da1104269740f2b5a5e6d3582ded545fab6a39d6ce7a395b4a49151ee0ab121671dfe10bd5305085d87c"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_0(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "60f12a1e563c83ddaa3613a515537f590bf22c2395c3cc674e23cc7b3a7e5957"),
		nonce:              decodeHexString(c, "b046b797a0af84027c69568838f6490e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "68da0abdc08ad5d9a3b85a9816beaee2da749ca8bd757b31d756cb820f4b5217"),
		expected:           decodeHexString(c, "33952bde773c0dc00910ce6dc55dae77d6a5c5ab9a93f612a656b9ccc1eb24a6ccea86d5090df305de6929964c4560531481ea835564f1de2710a7b155f3772347a271fb8a40621353c135bed0180d867d4b8ee6139f3b6f60a1e4072cce3198b201dd1a0a3193a2d3061ef121ed1d5cc127e7a433ae5407c09b45ceb1ede69f1c5e27e7ac7ff7dd65d07c92e9b002f44a36b4988b4bab45d20754943afc0bae2dac20c3cc6ee08ffd3c6a944ecae7d1251a8149fbb819db2cb7d6fe48ae9844f1c0cff1d76167034735c7998a1dd0a066e67eaee86da58168e4ebe0fd36bc1e0e469cd377b414b6e3c892020240ae71f17286d1a484a16dc18b25ebab474ce6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_1(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "5c38db7d4667de07141948c9c1db26d472a67366c813db7048106f8f47dbcdd7"),
		nonce:              decodeHexString(c, "e4d984b5b198f3c875ae2e626b3762bb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3d8b24aee7f68ddf7130ee9050656f1b574b83735aa6b1c7308708359363c8e8"),
		expected:           decodeHexString(c, "df688f096be6b4a84d31835428f766658a42833348aadb21c47af5ae471ce8d5808acea536b0b68a393c00a98e27b9f2f677b45496991c9aa833b660ae32b8536add49872eea8dec8045b3d268530d5c82fd6d21ced7d3454ed979e1ec65c149fa218c1635995368089289c09bfe27a4a23c5517b2c88ab6f36b62912fcf1cbbc98dec38c6469761a9e59278efe4222c65417f9f7e59bd25520a940193035266f3a6b787bc16651c187d4935360f70a710dc85f4d084f757aba26ddd6658cb02000f23b0f2f48ee9e55f4d8c370dff764635f0eb8f27fb171ea0cc6b8f8c0c46adc088043756b0158b3c6ab2ea6c0c4e146632f9f35da9f554860d3597e94368"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_2(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "5bc88841f5e16880b22958a976188556f4bbfcd1d66e2338a361fd3da2377b68"),
		nonce:              decodeHexString(c, "0a7a73c5b84e3af9d85b7d93032cbeff"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6d7c495714688ba1f368a112ea2639b4de3ad49bfa488334dde3eee461f640b3"),
		expected:           decodeHexString(c, "1a7d3872b9e50dce9f8a021c16aec6aa5bc9368d282e8e2e63811e2a6379769bf522ef4bd09692b32865adb08af6df36098da145ccf0008b85647c95826f712d8a39b638135810b9d48ac4042130588acc8cb29008a6deaf267b5ec5c2d2268a7786ffc464e2c28caef54966d7df23f18a045a7a3d76db55bd3ad3f241318bb5959525e692523f9e213a4c9ea4e15ad61d0500ddfab189a4b2f50fc336720295159c885ecda91d25b9473a9a59d9eb8b429de445bfef5b9c38f5f483503c4db314ace033c35c37a0c7aff99f2204a11784401f81ed56d7e5ae4db609161e3b3e2b816694d3ba72f899c086f119da98e82173d3cd3fddd8998e276f157d4e775f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_3(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "80b05e193e3e18608542c6608342d12fe598107214d576a8cbb3a57ac67ff593"),
		nonce:              decodeHexString(c, "2822c1923d2fc57779665131f933e513"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9364b5e11f56d9c23363958e15d9af56c7c4849c0218aa7e358710ee74cc850e"),
		expected:           decodeHexString(c, "3d56327785f0421e6f33b2e1d20b97e295e603a7e9b3f8da79b2719c962ba64fff4a50a1759e49bfedb0751023f34a88171b4ca3c8a1eaa72fde67c47b8a7a4ca04ac464e7d3da024f828101f991c76f991c221d380ebfa14e3eaaa4cacfd034c2ffaf7e05352aaf5ab66ea81e96496f5ef3183ea1e04db5b74aeb00eac232d39ca116ee3501f533e065ca4805d6ceccc484666dc4a0626f94b925c32762c575959b30e406e9b0c51b049ce2cd20e50b0542d4945dd7cafec2f141f3a506bdeb6b191a81581c778115a02d6dbe6a4994342c00c967283c9ccbbdf8277114d9aa2ae53bb8bc3cd5f2f5e22f7ba6124c07ab44ca8251ea010efdf99df54bcdb497"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_4(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "148a92169ccddd99d2219dd6741f6b10ea562e3a3dc7a764f368359f6d3a8298"),
		nonce:              decodeHexString(c, "421a9b75b112d02718d884b9eedab020"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6cbe8eb775b5894ab5dd743575ff57cf2c3eccd73468c68b8593eb32894489c5"),
		expected:           decodeHexString(c, "540f6ad561dcf94a0e49debca4e655ef29346510e36aceca7fef3112105b9ef1e7794bce23dfa51d2a8d0f8f871a33a81daf2e6b097af205f95309439e4c542359a9c229b58e206d68939b7f4abfb2704cc9aad74e80470e395186f0fc83e485f14bb1b77bb29a597dfa899137bcf4f285bddf9dcb94ee305b2cb0c1b98b774e7c4b277e21dedeb2d527a157e0d4cb7e166a190e923e3e4d444ebdfbe1f38356fe71d76ff01377b22ade24f986693bc3524e8697d3b97e9bbc44508543d623b1783d9a74dd8c10f8e97c06cc5783babb15d4b41625d20e9c9aad3f6e23afc5872afcad36797d7116c9235eaf8de7fc963113f3979f64b7754dd611ab596049e6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_5(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "72e33c05da04454099612ba58ce92fc78fe568d0a5b4536602f8e68c46e8d9c2"),
		nonce:              decodeHexString(c, "71d45ce3ed933bfef20885f912ba2a64"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0f38bfd3c65a942a4ef33657933d729eddf53ae225810e6820aa13e8add7daca"),
		expected:           decodeHexString(c, "4eed53d7ee0e5f46c256e84f4cdce9bf32e24b7792c9c6019a01c53100f093a29cd384d14b730dc14d2c94b513c8882dbf090852fc375811592176ff5bf0bfaee20eaa4432a469ff091de537bdd98d287808bad279a0a13e9b12f29d714f1c7a56b2f44705903ea0293354913f19586f59052cc07a557472b6581d574a498ea272f762bb7bf82c68d09861595fdf3b2c73619519f456408f9bab9ac80ff71f190b93cde768d354da433af0ecf2322b60e2a8a12caf33aede1e326a7bb6459777f2dc52092d7de6be4db8751eeca6816b5697b0cc9633d2fbcfe3d2fab9e721754aa8c27c65acff217ad89fcfb83f8aabacbe77af141270bacec2f7bb9063cefd"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_6(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "e77a18e0abc1ccb2a0abf8950bb83c2fb825c5fbb34182b3ef81de7daf1244e0"),
		nonce:              decodeHexString(c, "a9b682008e283fd8301899dc5cd557ab"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "dd3262f1d96119576e93e8e85b9abe414f3034d1bee222ffd9caa94b02d3a253"),
		expected:           decodeHexString(c, "0bee54164b9286762ffb375dddbe786f35ae7811fb70380e2ec88386cc164112acacc669c532e4e3fdc7a2ccc4a97991ce4b1955944ef0e83551012534720c2f3cd0473b4532fb48b2a3f0d4dedeffedd4e082fa8e50edaf2ae3be9e8d890ef027b671086d05d5ebac4683db4eefa0386bf0fbffafaa911eb98d8c8ec28ac74e45075c1850f83c6d71eed0fb78f152bc1c82d4aa02b54aa7c036f29ec95b938682462ca520f4d6d2ad87bc847e8731c1bf33d08526da945b76f81ac6314c9eca3411d9b6b7950190dc70451795485cce18383dd304c217d0dc088979be38cf2be0fc5f133af368a2ce23d4b2d2b6152df83213e07361378772dcb45dc227f494"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_7(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "94520fee38408ffe14d3f086a4f891bb9604d7fff0cc41c6e5b0988d510aeb0d"),
		nonce:              decodeHexString(c, "f4ff18222bd778b0b41c5ef13163613c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bc279acae79cb09ce1975d3a84b6fab42b1ac07b47a1bcd196872922f86545bb"),
		expected:           decodeHexString(c, "039a0fc2a1f10d2e89d5443d4c02f87244430b40fa12bcd1d88bc9e2b085cd94328ff13923a43bb408f4f32426e2946f4e65937eae7d56e24c096ac68496f0f4debe2de8edb6e3b2071edb8f8256bcf3a27412e17bc87bab3c4f72b86051d522ae2e32a5780b15a3f9790b574712ef9a97a9567fbfd5d184df04b2e877b6db1c70b346ec4c920f7d708d7fef6d4751c9e2fb7cd679b15cf13ed793f988c186c88f7084a5c30f0e972ff65b0da4a4e68e3103dcd3b1f6f2af978077dff7c9ccf889facdc31fa6434ce21e7b521d4b7950409532827cf0f1ca9a7cd149c19615a14ffa90c3cecc4671e8ee8502dd4ec8e95f7980da1ae9ce77d7dcdc6477e04b5e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_8(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "adabd1be64d8a594713e88b7ece25746a921222faedc626525e1fd5bdaf10aa7"),
		nonce:              decodeHexString(c, "17490e3b8c251ed298ca80f97e4ec4ea"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cf3266862de77af59e3544c087478b0820243b83343c583145fc45c7feccde48"),
		expected:           decodeHexString(c, "4e315ebbc2ae4d9aaab1cadd5a8ef6d50795d2c6d7dcffb4c96d6bec47b03d7833acb147a16a2f0708fbcdc5c68364ff3b437884f8cb063b790a792835738d1a4231410864307a17629b832d9c458189f833b8bc42be40caa94f6c932c587e73b0d588eac15569741cda738447ac301a5703f68c99ad4d2b54ad0317caa5509718884e10b3354f2bed2760017cd955d7ddfd647632f499384d2022c36ce4f9c11bcdd08884290e3333715f708e7dfbc6052d6362623182c3c9daa92c2cf8edd1555eac345996ab264749e6e9f5ce842499a2086106c6545ac0c133e1f9f79926462a9d14f9d6bf1a9135d2ca83fada94e17c322412b77e74a030b3aee2f335ae"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_9(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "62ad7867fa6cc97800a86cbedb65aa003955e36d7cbbfe35cdb25ad4747f3998"),
		nonce:              decodeHexString(c, "da9a8f8e3f9e58229955c55418128a64"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1de62980444d7076331357b68a68df79febb25908a6576e7fa39d06f3905e494"),
		expected:           decodeHexString(c, "fbe013a6ed1b228c1110bc3a76e9f432c6fb4f76cacce2b6ba772498e32a3f5c1b062f38f7541e65094d10cc2a42c5a296cc7d889bfd4d6f2b091914a4baad2175682b580d560d8e243f5ec7ffe6df6940648aea4a4a6ed81b774171ee21387cd356bf6ff5e9da1707e1a6ab71703061d4ee210f5be9b1e8af19674674591b029a8e8eb740428b1efecc64b5b6eccfb0fd9e350de5337b00a18b8ff9988e98a498a8ca9707a80e30eb32ae54c110fb1b9c59ea6c6ef56cb3904e8924b45aca76bacc0de9efeaf213318649526a513e51a4fab52ead49afbf37236c89abcda9a499c30fe3bfd3324346d9aa6713d80433714077d207632e61b7821f1de6ab1c50"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_10(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "e9fa53568132a39984db361d15b0e09de226a93a72a48b2207a5aa5c7b1e195a"),
		nonce:              decodeHexString(c, "b4913ebcd2390977eec014963b64c2fb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "55a325673663411e25cdc551a44eda909d31bceb3e90c27bbc1330d5b707d383"),
		expected:           decodeHexString(c, "7bb31855d72bc68912b37f0a2565c9b2061a10073a95ba640ed8f655d077e7519d86a1d5185373434e7c10713ebbbaefe12b8912c804d637078bf920a3cb83708c30f7e38184543fa5f3711e60b0bfedc4462593934b578d8b55c6e9074795b2ab2a23676251ed660a6ec797c48b804de2d86be52e820128576505e6f33b640bd081e1bd4b54eb9b9ba6423874230322790ad75c367f657a301c56071d5d1430df377aafa97ec92eb3073858d34755522a15fd3e1af720714c6e74ab3e120183b92a742f507aa9595586a9089dad475f53aefd96a01c9198a4e8ee91f6d071cac65c9626b2e13c8052e895c569865392f998ca281da9e301abbc74d6e69ff28e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_11(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "cbbb320f17ff72e1de0411cc1b3f8414723394b5be28b81b17a2e83026b23f13"),
		nonce:              decodeHexString(c, "3310da0041e392adacfe2b9dbed8013b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "735480f7f4a3a901558d0b06cd1ab51feff0aa9bd47e3608cb781fac18bcbbd5"),
		expected:           decodeHexString(c, "88c1c736bfe1f38bfc8e9be2a002c68bf3dc8a16a8f0aeb49179982e145145df024f6f3b8f273de3acd30688d0e970028ce8d645290a9f6b6057f8c6bf01168624265ea1a69c14d4dbfbdee21a17289a293f33a8a6a82d2e258293c41aeefba0ee347b2429834565bdc6a810dd4b1551e646009f0157503d769a818a2f79c565ae597d9ddeb2cb323a3ddce7ff289fbc5a305cf688a47d9fcb8f4e29641da1b966b76f2723ff4d04e4e3a49415116810eedd609fca39fe1185cdcd63a27fef8c76a5413fb580baa90dfbe345cff17e39e2b27418beb55c56dcabbda7a438689196a44096499d2e5145fd26603f903297f7fce705a7950cd122e4feeedcd29a8c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_12(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "ae191ffc4b3b9bd702557e28da9fba66639f0ed0550f17d9fe785f34af7d0a43"),
		nonce:              decodeHexString(c, "600a9dc744183f97c0f92d66d33f6a7e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "dd5928420f8098373368de65ce02719910e12d5035c4627d3fe97a1b02db8b32"),
		expected:           decodeHexString(c, "364ced2856cfa79d301fadcf6cb888a9e21e29d4f2383265d25ab13d78c3f3a975595fd96565eb98fbcfe446a2ab9f34d09beb921e1d05e9f5f57233f2afd522db0dc300dc6ca33aea155a46257acf5f1b5d696607fd7804adc8f080c0067574591266442bd455882701c296eaa934880f5bfc3a72bff90f7c153d0695677ca88c64873cca0a3a922874366ee8ec221f66be6ab4bde269b4bb1eada1ae5d46eb49302c790075fa5eb0d203fe1658abf64e6ee21189c1b2df272744f60d9da4a57e530615a652b39aa6525067019d30b6790a2c3ebbd910fc24eabb4258672fa916ebdcbb8643811745060219bd387ae3c7b36cb2937f375239f99ae7393f0865"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_13(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "47c933fd2aa629436508d86350e3d217d80b9626c5cafb3d1ac4c3dc0b8145ee"),
		nonce:              decodeHexString(c, "4e75d761d74ca48ea5635ceb1129afb3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "53fe974890ee454c41371506e14cced9fa5f836220d78aaa16da9b261ca75527"),
		expected:           decodeHexString(c, "4bf6806754c8b7ce14c02ee64fcc254f91494cf4f7970e236b21857154fe8df8fc1cbc5cf5e10462592ea3970dd372aeeb77a33185482a1f40d612eeb055d02b0a3e1214c4cf095834da1e3c1971bcef1fca5e8474e7c8fde062c3461d7ed74ee3704cd164836b25914ab92a4c19a15cf677ffc63221214778bf45dab88fe7594cfcb173c3a3254d60a36620ae1a5b0c686e2d45ad459e9ef58e6fbd8fbe8565d6c6f5ef650b57c2579b8c13b55e3dcb48f3ffef6d928abaa1a8974f2097c31f80c9671e04b82fcb5734f923c163a2ec5f0e630b707c77819cc88a9b8d1310090a04aed7fa0ec5985cd6e682a8b80efb1c4b56c7539d85866429dc09856ec59f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed72_SHA512_14(c *C) {
	s.testHMACAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "c7c9cce7b1240b8c6144e9b7cc31ad066c7e5bc3742dce1540ce56a078ce5fd8"),
		nonce:              decodeHexString(c, "abbc3ddf98aa66929b75a1a8c1ef7df6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "65dae61e5cb1517859e0bcf811335c979692d222560a5bdaf09e0417073980a8"),
		expected:           decodeHexString(c, "8216724f7ca576e570e6157240e3be443fd76cd3c68fe46f84a6cae1460cbf648fe14e6929b3296a77adb9bfbb50e8471db53745f985a1c8db3edf931008bd9e636dc2f53d9c25b04fbe49ca18405e4dfc44ccc36dd5a45bd3be3bbfcbff0209a8798b2b3e49428addfa97bad262694e8bde3e4526f31c5349005040a2390cf479f60558880e5b14632be93e872fe3ddafa794ae4a49a20df89c336ce4fa7d556a474096566b483f089062b44558d76988e787c2962283bb11bf01f43b0b59ae1d39fcf97f7789a073296397289935955dda8a1f5e57504803a9853a8e0a4563a28ddc5dade6219b50cf4fa19a63799a18059a411e97ee946fa0f9e61be4a586"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_0(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "29b97c421aea05ea9b1c684a8b91cd04e576a0198831c42a1866824a3462c7a8"),
		nonce:              decodeHexString(c, "10a7ce396f4bea5227545c1a87d74eb5"),
		personalization:    decodeHexString(c, "5e5b96b38fffb929bf3d7440e60e9c38e6eab05fd1e12ab82cb5fd5e6da26ab4"),
		entropyInputReseed: decodeHexString(c, "246c56510a652fd90ea377fed315d7576a2a230cefdf4f45ae2872b9d9adad3f"),
		expected:           decodeHexString(c, "614667ab1ee75ed7131f2e37da34a9b3924dd8997b35335ffddd67aa3a5dcaec1b6cc9cf32ab0c277f2cb0cca2aec72d663a258308a60caeede43d11d2d7cb811f38677b813175d932790a37449cf28aa6813ac498965f569264c323fa5e120e953488182ec97a32ddcb835c4551f085586f3bc96894b30afd7751e4a690b57afc84195fcb97f8dd905116e6bc38bbaaaa543ed006d028016813819189770382e75b66620bc07376b7895620e2d4446cc29e22a84bad1f7f8711614c7e919d4821b40ddb460488f1add36b40b423fc9cedfe10fe121bee24e20c4f0bb18dbd71c602af0b7a5a15a3eaf3ce44b2e8709015f135dbfd0f76e4b8def775801c0e9e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_1(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "f2409ea4c41352ee5af268fd9584b9d8b74325ed76458028e067b6a7848ffeac"),
		nonce:              decodeHexString(c, "a63c4de6224f9624a3e8bb780e4fb10e"),
		personalization:    decodeHexString(c, "c809ceb9ba9ef8a77190e8f79d0019d64bafaf01be89d943b591e6b1d6bf2a4a"),
		entropyInputReseed: decodeHexString(c, "765f868b1f5c5a62ba736719364cfd86e83b77cf90226c434ba038ec1c487954"),
		expected:           decodeHexString(c, "4c2e3ac0a2cab0b5a0d7ef6b0b94d06adaa73aa75ac704a4bc683204e7088b5a27b71321b8747ffc8826b17cca9da76363d8aa326fc52e3e079650a04904a251871e1ceebda57a5476572a9eeeb177baa46ca2621e63ccef914e8b43120d45e7511fbb02c917db5d1e7ccb1a18c1336d885c0228db8e421461f1dae3be994467992cb287a5fafeaaf1cdb776c46f4f391413c1ac79744f181239ce833bdff5c3bda29da858b2199266604614a77ead66bf509ff905dd0b79160225505e980aaf81c1e34f210e2d4d00a8ec53827356fa6686db88328a5bc0647b0a29dd2f54912633f00cd9011c8a744451d784f3cac069eb1d574e71ab6b53e81df549f0a3ae"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_2(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "7e2d49371ba4f7e2a02b8f376d1defe0b42fc7008cede26f3e20ec167b792958"),
		nonce:              decodeHexString(c, "0da762a0bd6ca5e11cd784a80cd0efaf"),
		personalization:    decodeHexString(c, "6b40fbadd827ae4a6e879f7d67b9fcdaa616791a609f23b814a69473e8bcb3ae"),
		entropyInputReseed: decodeHexString(c, "957c5ffdb08b7141e7b69f94e5ce083c6b6f79321ef0919237e3917281e754d7"),
		expected:           decodeHexString(c, "88b0ea15b54878bb8839161acce7a343063544e6d1a7ed295f09a79ea503ba0695a062799237c01bdf3c54a9bf3cf08fcdc4a37faf63f3ae76794de79c61a538f0b30141d6991be8ad346de9bc8e67c65ed73adb8db9c697859a8bc059235530c7d195cc8b63f57b9db20cfd1ecdb54658e1c209e01e1e17e4388d7df38b8531804fded3362d516bc7f9c8f0be688816f03f20b5ba69600e5c3191ebc2929551eb744a4d616d5fd68028a7a672476cbc261b68ac71a37c3de4418d1908dc19d5ea878cc917073df2ea9c2f9691cb6f547eff8bf6aed601d6dc6356c8e84a4b4a1926993efc03357ec7a7f9fea1063514015e9cb214e213b391584982e1c7c315"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_3(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "d2f93fe1bc63dd3ab6e858821114abc7e6865ca7a44e10cc73a0082c828aaf6c"),
		nonce:              decodeHexString(c, "88195e443cdb0768454a9281ba4bdb95"),
		personalization:    decodeHexString(c, "84c2887b77740bb00ee5148a7b59eef3deb661895b5391c29f7b9b09558d654e"),
		entropyInputReseed: decodeHexString(c, "8df1bf3b5f340714702cf2f759b4561fe5a79cbd0505deea0c3e56b7bd806f92"),
		expected:           decodeHexString(c, "babb2649889621702db4f25046550066b65987e5e5cb0a7ebce9475c7ee2d56b0fc77f6435dc0e723e7a4b4fb3c7fed81471212d65a02c914f3d1a6bcfd00e9d1eeab58ce59ca819a8689710fefc5bcf920c35343c05b0e3cb936d4866718db2675872b353ea484e919e50df3f3048bae9df35ebbfc2790c972ee88a27577f349dc46fda1f67d658d212acfc883e9cd87da998100e469c71e94810b3bee86e0ab0cc508026e82af5aef8c8e327d3eb4f6f08284a84604e19d09cb2f4cee2f9acc6fd75ff27d218cd3583eb0858e66c7a6569e24184c8e61b36f531d53f28d5c4581a9769f471a129f28616041e94b960b18004a0254740ebc2185b46cc630fa0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_4(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "bf25687643e7ed97b741e04d59c5b47507c8a7fe9a38617c6ab21070e8e8cb85"),
		nonce:              decodeHexString(c, "cfacac44eaedcd21b9ab2b50b2b53923"),
		personalization:    decodeHexString(c, "0e4edd33ab00a327466e2abd6d3f70fe9614c91ea271f91f99f0986ea17a69c7"),
		entropyInputReseed: decodeHexString(c, "5ac27e436fe492eeb2701220e44a0de21b3f1aa7fca6c10d43e4784a44b891e4"),
		expected:           decodeHexString(c, "60576698e3250f0920dbdee8257ff546c46ad01d6f35d28563e6aee09e1b77274d94db0d85de78b587ac35cb4161f3f33a5063d1b7289d89fb7f65eea84acf9cc3b96806a1dcbc479e205a5cbabeb70c34a51d8a5cb6d14acad5eaa1595d42e897ca0be571ab594052a540e0312ae16da9da8251ac97aa77cea0eb93d16598c046f2f5331f971ba81820c49011773797630901d33e6c4941e883e9186d78ac4b3e4e745c30175a774258ad3648b1ca3026e99d16261ded265dabccec640adeb92a8c3c0fabb36a53c312b3af194053eae3713b8ba4f3ec310ea1fb34be5f2fea0a719c6ce47bcd6e3f2a287e728012d8c6573d902924f39d4c8caf4b4fbbd8e6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_5(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "89a43e673ca4a0a2a8002d87ecdcc1664c7de386c2adf70772769121c598f39c"),
		nonce:              decodeHexString(c, "a39d4f14fb27e5df196654c2c3dce584"),
		personalization:    decodeHexString(c, "72c86c6e903705359d83b05ef85b38631c2fac4599df96d2691b3c0c45e797bb"),
		entropyInputReseed: decodeHexString(c, "4cd70d30d623a8daeb43769e8de1a0c1357bd8d578301b58be4c6c2103caa27d"),
		expected:           decodeHexString(c, "12eb84c93d2fdae20d17adb82fb98d89d69a23bb6f8cbc1530dc624a3992714080b5112638dbe84e3aeed84b6475cef41ac3945a10ce9acb48f1c96709c7be92dedaa5e0390e8682cdb8fb09a62038c4abab38037599744bd0964039b0a9e8182a372c240653e3d20346e44ce77c74f0e91a9f547effdad10153a7403735c2c4f2a46b3b6cf43249d0626af1b786481101eb7fb21327c68cc8a30e0d29cc8a4482fed943404c771d6a9481190364278e2d2caa80a4a402ea003162158e430d33462b04d66283009ecd0323e9a2f62eab2218824301d59cfadcec0d68772089607dda9f56d180cdee757050e557369199d35ae3a15539993d8a7e4c0c92c2815a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_6(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "05ef826a27ae2a4f129fe97a167e930ab7dca0df567a779de4e7873fe1ba14c8"),
		nonce:              decodeHexString(c, "9ffe8aed3c62108c2c444960904af4de"),
		personalization:    decodeHexString(c, "c833962742aede110f9475561fc72d6db3ef5f77f883221043cd94452b5e30a0"),
		entropyInputReseed: decodeHexString(c, "54cf7d692f6c0c4b60346d401b05943455f424809a71a67aca5b916fb9419a9e"),
		expected:           decodeHexString(c, "c6cca50bdd0711ee4a7dc36d76d61889c094de18c11930257c4d80b70772fe7f7687ca6acd27c4143c8be1a173b2494cf0afe04da97cac7e7cb908b10204c92b49b809b6feb128f35b2e8676b406171eedca25df1995c38fc8b21d72a70bbf9539d86103e0006244e7a8fb89d93d96014c8311cc5c084c954d07d8a1003f52729ff0d079fa4200b41eefe172aaf5361f6690e021a4d39bc6cf3660308d66f35e1090aa4a18415a690b99c85a56c431155399d3476aeb2041ba4ba88cf024dfb70a253062d2ca357d6d5fa95b360ab42ea819ab35ab087768a304767020c1e44542017261a39893baabfd736b3a127a45984b99dff66a6173f312bc79e5e5b3bb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_7(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "347ed989acbb676eb12d0e5043738da8fd532f287acab82a4a9c2ecab0a6e9c9"),
		nonce:              decodeHexString(c, "0d617e3491a0d88ef665e031789fef0c"),
		personalization:    decodeHexString(c, "9bb668ac71bc986714d42ff36ae6d7f9e57b78c9ffe88f75c22da16bf55a9b35"),
		entropyInputReseed: decodeHexString(c, "df69a834946c9204274dca12a4dbbd11ad425fcd4889912b6b82619be808e1d9"),
		expected:           decodeHexString(c, "3133ab00594b250385747349f0d700fdc72d365ed84c0383531f53f81e1370ea4f78daac5996981400084015b372490f6a6c0a4981860f9c1639c7ea9c683ba3d0e1863e406e0d84e4e444e51b2eaefe7b7b79425912f086792a3c613f385abbef2ec8291eb39059101af8c431d0ab3b51a4b39e012c51725dec23cf8a52a1fc1f28396ec060f3413ddda9b8da9ec0c05c78a9d1e4379ed1cab451201fc5970c5382299e67b322c184470d55b6a1c15e9344370fa3d3c9e76116fac31985b25495f7c0e80c7f242633be818a6de4ed52944668c9a8108c41631e036fa808863d30e88eb322751c96021348f1094df3aa826135a16875e02c0e59cbb4059629f6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_8(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "3409dabf414ead79e220e6c90ead0b2aab79175cf188328a7f0431339caf168f"),
		nonce:              decodeHexString(c, "3a2761c28f9da3543f36f9c1e0978c08"),
		personalization:    decodeHexString(c, "3b80bea4a3ea58475e01620387d1778c38e644493a4ccf87ce3bd61c3113c83f"),
		entropyInputReseed: decodeHexString(c, "c22a4878c876de0aa877a5034f089d10b913347bfa2b1e5f465e0d6b133e8d2a"),
		expected:           decodeHexString(c, "2cb8ef277dd926a67630bbaf950096fcb2da9ac03229899439660899df184a2aa1c79de3a00c1d40a9a2d9cd9341102f12f6d9ebf9074ee66ff318263731426338fff04f0091f839034f50ab6b01f9fca64663333d113a89767f1dddefdf5f2aa59c50a1ee442310d3e976d612d46ac27d0fd216936e31b44a0e4c0818b8e5d178356c421d642bfdf066f9b7a3aa49fe308e6b69cc9a96b68106c9dad97f8f532c4749665570afb5861dbd2dba5f7051fa02d925bd7786044173a31a4a8ec2cb2e4bdab2bd780088f60207ca27de267bfd37046dac096d4a075b6829c6718bd479b5367fcea2b2a83539dce8a61bf6d398411eadc6a7ae6a4ebef96052dc2fd5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_9(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "70300a8f5e3d5e36341161fa5ef172955c6661928a50e657569515a104f2f1ed"),
		nonce:              decodeHexString(c, "ead933f6ef6884c78bb361f00067807a"),
		personalization:    decodeHexString(c, "daa27c0afd5c0bbae90caab67e97ff0d44def4ad5e53547d00fa2ed1ce89325e"),
		entropyInputReseed: decodeHexString(c, "ba4b615dd687b2f55808801b1831a333b29d91a42ad11af873482724e105f3a0"),
		expected:           decodeHexString(c, "3f24399389f40aa8240b65ae509431b471ccb359fbedcffffa203585e78778ad5f25152aa70da1749ef16c596064f58a5803f7568361ac7eae97e90a37dca8e61442911c64ecb147d822b4b0a5f89a6bd9c7208c093ea22223584630bb5769d813d03d6e397826a1a0620e351d1916e30d1203a39893a597a7b41dea1af80ae1702d5e644909855582cbd54a0a757ab0d02bf9e7041e721f8b711fb9fc63f04ed97cb94209e5222583c43542153c12a5b65a30abfaca7725ca263a12c770b0ecdb448f39bce63d82a7198f6c82c9d521a57ddcd94a3fc087a29d1c40a5db25fa993398592c70aec992a6aa8a156c05c0c76a93992dbd0c99f79cb860da58abdb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_10(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "b21cf00ed16b83b0455022a5baf3780f070e0df1d739cba01b9e8be69c31467e"),
		nonce:              decodeHexString(c, "02a3d9610eb0a518149f01e5a8b4f84b"),
		personalization:    decodeHexString(c, "b260bb187cb067e1189b9429736d5d26de6ae0b68a27a78de329f8d317d26412"),
		entropyInputReseed: decodeHexString(c, "91aaaeed161f89751803fc8ab2773225fd66c03001bbfa373141810af1136927"),
		expected:           decodeHexString(c, "d6515b41af922a0859d855dbc4d57ad7b6e3a34d9c18299f641f6a5836d09699999e59c63118325ad9e8bf91a733363aeee359c07201b8375c95f3b5d69e522d2040807c789998a00b1cb5ed1a930e562ac9eb7eb6da7650678142f3fa1e0db456d3e74ebe7018904f7f4d4c45955165b7dbdcdf9b7aa15a88fae4d2d45db5b72b94da0eb593ff5ad894995837f063e484f73610e7443b3abe12b49eaf90639784ce23e48d2ab1758986f9023e0ac50ab74ef1674aef7baa1ff1399625e04c7ae5b27f62ce6116adfb34e7da7e17874fd326156b6ae318ae12b62fd887f93eb1db0abeb97ff1abbca03d14fe85296079fd3affc2c97d47c71ac9190cf18f2ea7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_11(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "13a697c488c71d7985c373de70f67bdcfc010400e35d7feab0b7885565ff2247"),
		nonce:              decodeHexString(c, "048ab77a683d1867e2d3cb4c27ab1694"),
		personalization:    decodeHexString(c, "1ad6a7218e29aff18cde5731b92923e910fcb37e501487079adad867b4f4129f"),
		entropyInputReseed: decodeHexString(c, "a595d37e7cc6563d7a947ee391153cd84c163668b3a12120db5b8dc3f7f72e38"),
		expected:           decodeHexString(c, "28add1c3bd50e0cb095226b4b1ebd5cd4c7102b53068a0bc368f4c2b260b0c77fb958277477a964dbe59ad60e47ccd194ec593748be4c0c096d134e0374d98e23afd1bc80cecb4ba50801dd34682c8ab87fc28fecf004abd7a697bc508d63e469d523ad89a13cb1de2f05cb1e210a3374c742279cd93b1eeb1678e99bd42b053d8db130f4d6386aeca9ec28c83908022980c0856ca71ba67d292e2d8958cc3e96d2ffe8ace152eef8dee53d47e2398991b070a74dd4029d0b44495406d5960be58d05ab346d1309a14fea069c57c3aa8e5941a5f2f53a5757c937f244cabc352a074e1c7ecbe350f997e2e3aec6ee1b836b656b36501e238bb0042d879cbbf04"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_12(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "24c7d01e2dc197d833153ed3fb431fa08c0bd164fde4a686e913b7dfe4ae93a5"),
		nonce:              decodeHexString(c, "8b9102aa2f8dcc5dc5a6df047789126c"),
		personalization:    decodeHexString(c, "307bed435f3450b8d35187c387c3b9bfdf65366388d589f2b1aa84455d12a9c5"),
		entropyInputReseed: decodeHexString(c, "95f5e61651e32c7c62c1a30265dc10d5a2478d8f419d1dae19950ed2edfcb39e"),
		expected:           decodeHexString(c, "57e9e978cc9295389d20d5007ffbf0eb85624ea551445ed447d02ab62f7f5352109c550b96db643091aca70e0d8d252d68fca3f9c080edff4a9602f84240a154260c930341281675d565f4d5b978c89680a181301e4a372a660de61e400b3c4a1010b2108bfcff340fadfd1e2e26ea48dc80247869c6fe85b2ee559181e3ccc8e262e16ca06af3dae89807e7e25767594bbb135695c3f04cbc5e54b0d2060d3be87d6a32fe2b60e3ca139fc4f45439657a71b054840545220c450741a819e9644c6acef107112dff94c40352259c66085ce677071142c404192964256e2d8be19a93b42e40519eeacf53cdf0815ccb0b4f4ee10cd094e3ca205f5cfc286333da"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_13(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "7af96e6ed7a459a4d918d5995e4a24155f2aa2abb93887553be440c9db2de891"),
		nonce:              decodeHexString(c, "f27f42fff55439e9952e1b1d3f6b9376"),
		personalization:    decodeHexString(c, "f2332c8a3cff77b3270e43872d4faa4ee214be5e0454b33d6cd1d044063cebe4"),
		entropyInputReseed: decodeHexString(c, "366f4db4c743fc9711c59a1266a42ba01f07817747c37e3ca3365b530fb44af7"),
		expected:           decodeHexString(c, "44e8fd98eff4c21f8a9a3ca058da404a671e6336e616bbc2f72a3939244a178cb9d2d97b85b893c8338ce43a977072389db97c8c17c75eb1f6bfe50e3abbf939a2e6539cda81a986727349c7b263c6bdb329b8f0d872721b6c6e7597d881b752f73eb00f4f3b9c50de61bc966e91f92c24b045865697d799f01ecaaa04414e661e68e9689e21c03b7e90d628526488c7802d83d00f649009e882a375305bac3010d417214577ac95d26184a8c22bf640b11368ee9b316eba4e7c5d1f2e6052ecd9d6de99886efbfd49d14e9af898b8aa877af74a8076237ef2f1eaeea07d16b82957bb29c5bf21fb400b484ec868fc113656a946b4b18677e880bf690413d6c7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed74_SHA512_14(c *C) {
	s.testHMACAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "2267f893091cb3f47d624040618b586245456fe8b224dcb892b21be185c4e7e3"),
		nonce:              decodeHexString(c, "c25cf2e956aec5a71f526b8d1f8cfd4c"),
		personalization:    decodeHexString(c, "ba838167273f7df0b4d6c31d0f415152607917717beb811e2f0cd4da790365a9"),
		entropyInputReseed: decodeHexString(c, "9d18e0c1816be06ffafba05810a38c55f0dc3ac15ebd0a8ca0b951712cf37b6a"),
		expected:           decodeHexString(c, "cb044c1696b33ce79fb23324e8e38b270d3d4b7d1ad2a75d941d40744ddaaf0c6f34e80cec03ea3456fbef71d2ea8a88348e3215628f2f809f80004509ce2f543d59c1f85b3c1a0695048310df58a3d97d7e06a7b9aa1c4c84be6430608904a90e4aacbc8ea5b051d15b6c5d6d8b91febbddb13a8814bf90c906c596d23ee1487180889257e30aa978479ebad00ca51522308029a38e38e95e6ccc09b8f977ff10b912cdccfade70b969f91da0b9197f42bb4661e0ec36fda3f2a25f33f0013b8982f3bd57477cba84a52b32de3db5e36c69abe44136d68f6cf4f2d297dc7ea321704d8208eb2613210ebdf0884e1778cf9796909b057cceb5c17ebe6fe1fb10"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_0(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "c6aa5826538813d74825f8b54140ab232cc5eb2318823a9b45a5a854bf7253ad"),
		nonce:              decodeHexString(c, "cf0e88445e2d199eb3971ca8c172ec58"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "766c4a8909ef1a3d8496cff97f71361610619b2539e3047b4397a9e272646c1e"),
		expected:           decodeHexString(c, "1a090aef3b927c0c28a976e83bfb8e1608182527577e585dab8f39412501ecdbbea8634b78195464e8a5fef70d7b748b9dc36246da2a01a9f51707bfb9f77ebf0cd7ac2101bf70fd272b9dafbd4807205dd57a9337c122e6c7ca02b8f6d90d5c451c7974675a973ae84f7b1dcc43d5ec1be20f6ef34e24da6f8e5aa642c537f79497d2edd8439aab71fd8a43b991da6f35bc079d81b0a5265ea48c6206ad76c976055d7f6f0510aa8e0f313bfa0e606288090574a813b049848d2f8572235734becac597139457458afa9ee20f1922d7cdd9c3e310912403b4277b616df2f314bbceb220cf969496e214a2b2ad09272cae89cbd7a65c243b78bc8baa1ec5ca28"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_1(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "8ecab16877d062cc42d42b1339784bbfeb4dd9b2e8bab149ae8501c1f928c02a"),
		nonce:              decodeHexString(c, "7771d2dadf4a5f958cf5d2d944457a79"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "02fb4cb570967e41bf3e63f7b310f504883c2297203c76548e42b53f0525e4ce"),
		expected:           decodeHexString(c, "bb7d45f6912fd772f551293b68813aeac47b1abf086c0c793f44491e962b70f8f9da9bee9a8e7915b48d3624b731059c93fab8ca826bb2d40dd1810613973a5492f4a17bebd20670d848391d898ee66b00b8f08465f054f22299ceccc6ba8c90987aabddceeda80e3071ff7c955d20613d905637fc912b6799db7a616860f774c4c04f0e078f1fe322cd165d123e2afc5f7c83e8075a0c6cbd549905bb9b4f34465e491c26a9b42a265c7850c51f993eb8681c55d4a9ca27e745d7fb2d5f7811b420f456719c6fba19d578eb3ae6623184f36dac1b8d023173315c0b0b3ac67b894e21fb9d6450b33bebb08223111c96676a0b7e37cbe0360152736c848bc51a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_2(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "6a72f7b075372b241d62134fb0f3b666dc434f4eb311ed4ca653f1f356afefa6"),
		nonce:              decodeHexString(c, "84d789e39adf499bcd3a02965c68a29f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d41254dc3539174f0687fca094d6743a3c7a634b875f220a1f1b82c38eefeb15"),
		expected:           decodeHexString(c, "7f6ff8c7694750ad16b3983e05b1e50b548fd5aeebd457280dbba360a2a8c848b7f88a9e8705e584b0481d136d8a7cfff7648332277b18c68dde2ac7839ae62d36f6ab4b3909a18114f8842b2774fc60018bb32bd6ae6638c5b89cef08b94f18848f96b67991bb23a114b31aafd4cff588565da05a2e2253a89a8b881c3edd6821d6e331a0526a8c4982151ce9638e20c65edf4138f950edfc0e73659d694c8eff6c97e46ea339cd6b7ca5b99622f36ac4f7e06ad3c98b0db12fc0f9b0a5ff94b5f374778ca07f1952db7a8bad5096a0ccf2f71f9e4653417c53c6cec008d0f651dc84b53365ee5d3a85e8e4db60a7c1e497438ba146320aa471a136eea35d18"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_3(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "cd338b068db4025252be94e708b1b6cf532fc089285be690419e675da420aa44"),
		nonce:              decodeHexString(c, "0afaf544207415b0de07cab574831c05"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "633f5f69fca6d1afb0b1370d067cdcf9d72972c0d8ec881db8f83872e2efaccb"),
		expected:           decodeHexString(c, "ec409390a7b75be4268ef318f23619d7bcaf6007d40fd4a9acb3797c5d95769b6486ca5464396451e341066d5659b4f9f4b955425d2fd53d4fe8e74332dfbf40a629bed802dbe199c7d7450e67d8c4b24506eaa5eb83f884be3f85bd8a1f2d78d251e516f1e34cb3cdd212b2b1d855ee54dc8a065995c2439d3d164b4047258e06a857b5a1c309ba1344be351c28b89bbe8e0823a65fc9d15e66d8981891437e6eee7d6114b61a6c39a0a6111e33244c8b88dfd4a00e2ae29302bec37ad99ac8b007179378ec49f44b5039e23e37291f0e94d942feab03bf782c74c371f3be1aaa8bb0ccf33bbaa4d914c9ee1a23d475fb1667522b6d03696a025a4fdc0f314c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_4(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "30b1efd2b8a77892179cc76a91dc593487f4d13f0191d553d2f98e1fdbcbf808"),
		nonce:              decodeHexString(c, "3a859cce8171ab0fa9f2db811140f562"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "19b8d347e7768ec3bbba782cfd5cf323ed14b27ea933bd209a50e6d9fa5290e9"),
		expected:           decodeHexString(c, "b5ce782c919836ff8ae078efe54c7b78882a41ef5383d65d6ef458cf5cbcd928a633bfe6aeea68712135a176ea90b87e89ccc51b76223ea38ea94a1a0b08b0ccb0bbccdb6d97b6a63551c7cd8dee13a538c0947277c452ca43124c3a1a417903ec2a29b769331047f0acb6d49cf42ab6b3783fa4c41a9a840ed6e8ef23ed788ca139095a3ff43390d5aaf99aad0f53307811f3e879d454aeee444c281da701fc422be922a76ac8207af01dfb461e81f43d0f98164fbc723a5fb29e88143b901192d80a076d92299f65438ec32b8223859017436d4ea06a5df294e564892bfd8acd7786e78335a312ca971e4d50766d28221612af373461da08c6802112cfa470"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_5(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "24b1b84422908af8218d805080e06a2c8612250bc5c648f4a48b6f8025ecf09e"),
		nonce:              decodeHexString(c, "99f1878aaa20e0e59307ee245ce040eb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b761376b8bef722f9ec41e1ea8a4883c05c5db5b5cd3e3094738d262c68994aa"),
		expected:           decodeHexString(c, "5dfc8dec5d3ccdbf5594f85c9632840317950548bf0a9a51350ab5879abde59658508e6eceeb782de83a039a1b5c6d9817d2805f4f44006af7d070407cd821544f590eef1609e679ab01e86ebf5f072394be32e071f9ffcc49c0256e6b27ef363dadb7b829962c37055b19e85252dafccc67c59cc8a887de7134a258ac97ffbc130d7adb3ed5effd96b8cb2eb608c9e4eae4142162ee30430b3b2db9c6fcc43f1a246eb4a9ae2a4159b821c70c65b7c7d603e45f26dd51f2e2dace4a718303ef1ead265fc58762e4e9ba1fde72198c82e266dfff23fdad4b483e4eadd69b4860d2e08236cab337510161146f3e94099fb10d0b87baaf0176d3dd51c941efb979"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_6(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "3df4c1cb97d51d263b6bab195cd48aefbee483f80ce43f8bd78ad76c7f8c0aa1"),
		nonce:              decodeHexString(c, "3a775207e01f8834322bed04cdaf5933"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f412416b0a9ba1da9ad248619b7b274c21e437f9eb9aec06e028eeaceb9aeac6"),
		expected:           decodeHexString(c, "3ae68540f189d279d07a17b0d542eaae69e193c819fda41f6cb91f33a16f23315cfb36d1aab5a64d2846a40e7fc39b07bf0416446334f898ff46952fd3a097127a01d56af0d26bd48672a569cd00dbd81cf38cebdb9767f5b362fb68ddb1550069e6112cf925ea29acf950d6da000bdb6b61d5d67a45311d86b8fc4d71070898da54bf8f3f8337bde0b15650f2adeeaade07c946dff12235ecd5675003036951264bbf455f1b3e8d2a7bf1985efb13a7fd34ef1cba25d7330ac5a4a5413681d49e5c8d380824e80f36e64ad29458bffe04d4d5b60ee1e5741e79a2995bc19547b667190e734d6654a69f7a42f1a40d21c7daa54bd865253455ac103083247e91"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_7(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "609bf2fe6e9dc38c391f586e59a7f373a5e7d38cf4b9efdf824fa0569d9a9aa7"),
		nonce:              decodeHexString(c, "ef2fad1b7437648f11af8c4b768e55fd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4cce81bc6791547d114fb527781ac121943d8fcc1ac106d8eb3ed9c7a0a0e5d8"),
		expected:           decodeHexString(c, "52a4c08378690eee94ebc78ec12b0d24800e221cdcb6bf737e915bff7c1dbeca2a71d96b6e0f85effa78a096734baf8a566dba30d754f1987839f50a4766b9d7554835432303fe3ca2d9249b331c13e2590a5654ed93ca36aa75bafabe2a78f50eb63d5257237eae2abf34a68f0047346042c8c3551a428d1ff57e81b34608d2fd5bffb1958b43d60f9379fb612f9a91209c10c1d71c174f70b26ebaf2cbcb2b706ea9bbfaafd98ffa0242fe760f16060becab5f85f7c791e1fe01b8c96ddb8820a2a1aaea550b01084539620dd4aacd5767cd492043c14fda622aa388ac9e84995c59da7bf3b2c3ccd9b7747ac5bad60c55b72404032345b6f53b2ae49e4449"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_8(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "e7a27e551699615c7c99608d373934cb66d7fe23d3423b6c07bd23159336f085"),
		nonce:              decodeHexString(c, "85bac611a173e576626e1ebed6aef40d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4e553b84a62ca0ee365c17da4b2b4b037383fce17ef31d047809a401cf165456"),
		expected:           decodeHexString(c, "027640c42ad2253f788f2148a2ee4eb7c8e243be0315fc72e044996a60f6365fee9578984a4532426c61ad106fc4c49f3dd548c392a3ea168354793d9dab579f54c2ae2cdbbd8dae6da662c1b2b74b0174ab2aef14ff371e0d3288f5415daf2a5cb098be5c35da5f21a014b9aff9fbe3924122f3d78c69bf74225f46a71b7277f98b25a1d3e3dbe42d5ae06e0eaaa58a9624078ac6bfaa41c394c29ea60cb6735695aa369c4cc12ed4117e305074581d2b6f5aa18e144df3bc5198b4430624864b96d08c1e04a856d990d4521eb8fac29adce845eeae7a138be202454611af12773476b37aa1126d9ac6a1391954d22eaa572bda7e8c103a22252803b64e6e80"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_9(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "8da4d1e80d16e7b55048cee09c56cbdc978315d1c2e5b2ad870ff9b91128f041"),
		nonce:              decodeHexString(c, "60a8283153296bcbc662cbc383667459"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "745cc5de01ea53b62a3edcf108dcf52b48e62f489510cada3fb111c305bd7acd"),
		expected:           decodeHexString(c, "fec5edbbf796db21471303675b1e3254242e05800149f69ea6202b6c43e29a9a68997794e9cb071f8cfe92845521e603a6c6cbd11e290e109b22fad578ee34da5ac1092dfc3bd1fa101f239d7f53dc061b04d160dd49f3dae26b569b9c3b09f8144b075466f8b7e82febbbbabcdc1c4456b27615c1803ae811f3ababc1b6f1439066d631476fd89508756f3586c30cc0763136704b5e49fd866cbbcd1969e8076ab9af2bbba61fa15fcdd7efb53e7d2e4998905560c9b784d2dfe79156f84e0bd66423a5aec08e7dca44183f4d7a182f76d2455ac362ae894658adffdb7cc926e56d44d7dc5c7a554cfe65db7339abe3f5d6f5e13b5e4574c0bf35f5fff9dcfa"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_10(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "a6bb36aab31e3a8f9d3a3f154e5103b690e7a02dad613dccc9f02a0522fb5fa6"),
		nonce:              decodeHexString(c, "20415f39b71b9aca7a383d7a92d416da"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e81a8956b367d682f82bdf16d9934d094317389b96f8e26fe1511848aecaab3d"),
		expected:           decodeHexString(c, "7e185476ad44f23a9808ce73b547063bbe2014e2014f99cd77bc87b2be55ca461c119d5bab8d40dd569a99d999ab733046164270118f09f93f85fc15dbe4756d3136c3e617b835bc79d130c8774e09321898c6c747d964d88e1ee057c96f63c264e606cd7826c5af8d07024aa3a15b4b82cb2c10e1be5ce8f5b9c43634d330176580520087cd579640bd875f0eb3608dbd9e892a095d5a8c8ce0be0158b3163ccde4b0933a54c1089384bbd53131caf5fb73d46c9b348288c33f43e7fc0a9cf84d23c02f70ebb3ffd4cc730bcd4e78a584f3ba2e0feab8665b0fcdc574a6c28d9710a3b0c56e64b1afcbd02b3457fb53fd35d8f1be416bbc2a78994b9e2e0563"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_11(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "7f0d6cf7cce83a9a155ac83f452ec76ff1e21548598b8e944c470cf1fe7d2412"),
		nonce:              decodeHexString(c, "8823cfcb79cfb95b99d4ecfd2c6df797"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "dfc8dcccc4f1049a452a5355ca3068eccb4c9048f227d3d0022203c0d87667ed"),
		expected:           decodeHexString(c, "f07560b4a80aaf7269bc28bb6c30cc303923bb91a5673d2a31045eef086152cc558574a3d66b7f45a5655cba2a2928d298f8264ef83cb5751e7f0e4b366b0f19edb8a4eac54ee0e8f48b831058d73915f3ffd943b77a9511a526f1372af89a35d7a060076f850990b9b2bdb672bb135a88153306c1f8418656a7645b4a79ca5cfb2e0c0540e8b75efe864c0e6bd2e7d0807e213a8fd2ccc7db0e7a7fa88458cd8d3296b71c724121cc307fc70dae7c5684c1e883af938f430db7c6dd216b069c6be8335952e22daf77092eb230b67ed6f92f30e3ebb1ecac738d6531fff089ad03e2587e6ac164a0fbfff0151aa54775d72e3d33009c4d4cc69872e7471ac9f3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_12(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "b4b297715de6de71383fc5055ac7cd07c90153ca430c2e0ddf83e9e90dee8dae"),
		nonce:              decodeHexString(c, "d92f81e0d99f435f6817e74ca5fd5a76"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a3877692975e665098f1a3e3bdbcccde9e477a6c5d35b090a7595354d0dc5d64"),
		expected:           decodeHexString(c, "8dbdedca3394e154b66be45ffa1c86a7376cec19ceb9b2894ce5242ec8af032272824804cd0b9ca95145d73c748dd46d886840addeab7998df662ce20061746d7e3b8ad506b42713895a2d217d641441f679435520378b7adcfe3d8ecf9710aae9a93884c3fb30564b98c1f04a825420043d0bcd3c0260674046889f04989dd6ef6e4f2c0025be1633290eaf29b8c4e539f16f60a5969f95b457290a4dfeda5ba562ad7b2e845bb0820a1fa6ba4c8aa6966b899cef629b97e61e139d1e76fbe691e44672e624e711bb9de510a9cd210dbdc189f626524035395af47d0ca5b729f8f3e879ba1fa6916aeec284371de94839017028becf29667d75fa812e3040e0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_13(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "f5419bbc6ac392d87ec2934ceb8190b322f5f3f79f3d0b56f98fc16acc63cfa9"),
		nonce:              decodeHexString(c, "013d4865ea31dc474fb3d5531dbfbe84"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5cc632d05880b2eaedf830b64947dc4c98ca7cc0d21f056e27aa5f58ad474514"),
		expected:           decodeHexString(c, "1761dadc07c12b305a9e7640cc5e8fa33d794e66d310cd4046f84c2685c1db5b674d5169801f94147f2570ab4b017c241b43d0f042445513ad601059c12e750d12992e34362ca2b268b2c464adfffac0aa3c1662560c83531361afcc9a5cc15403d67eb9d37a3e14ef834f0e6939084f378abee9d363e42a65ddf15f20bfd9691cbd937cc44c677dc9dd577e93e4539dc94c699a2048163e7172e246d6107bdad9bfe026fe2ff7224ff493796663a4f4098ee1b45eb12797c142a7f0bb025fe8628fe962a8228d3fde3fa53957ae5c9f63f24924fcc41da643fb38c51b6b6e36a693345fa98da77ff43ea551d105bdda8dc98bd57fb4c11815d52a86333ecc2a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed76_SHA512_14(c *C) {
	s.testHMACAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "598d34167065e39098233b817b169cd13781f0f68594bad2e3f15efbd259224f"),
		nonce:              decodeHexString(c, "da74934f6f13558a1c5bd8aaabe34871"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "479afc2c278b4b69c50c200bdd31db924e1ecccd8438adb845acfc73e6f38522"),
		expected:           decodeHexString(c, "f854f560c0481652cf5e10f63bfc278d4cb5c6557678c7da3d802ec44ea96ea44e729fc16d21fa5b121715a73f706d87e84e79b25a9281932820e58fc4e9903120a75d02407774452231ce1dcb272f508c1f1f988b19cd9843baeed8c10c192a0b351a62b896f04130a60168286eafc80fc352a02f07cde96e9655fae74c5c844e4838ee8a19fa98c41bdf102e7dcdb534b483bc1b1819c3e253aafae56c3d1c5d373296f652b1a5a43621be93824d06e73e652294ced2232d4524ffb3731afcb5a7997498464ad119df75d68f4b4d21d17092fd30e851699c04201da58a8a61bd19fd9d5305b25647991a64ffcf7a7a09d6954a1b251f475b6bb658b7be9269"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_0(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "4f6faf0ac5cbd90c3a38cfab8886453cb1f8bb19218b5d438088534e213db400"),
		nonce:              decodeHexString(c, "a571a0efd566511cb9d078b85a280229"),
		personalization:    decodeHexString(c, "3856eeed6b10ec1792c767fdf47732067657578e595dbf1c7cbb1260baf01e3c"),
		entropyInputReseed: decodeHexString(c, "e7facb6b1f230b7fb3ca233531f27967cb2c2dad8faf71e868fe61942fe5b7e9"),
		expected:           decodeHexString(c, "eeea36a5b6ed854c5ad14fda1848f82076196f7353feab264a0d4a0f79bfe107fbe2f8054eb298e303be29bc3d8369d97c29b1b79564759c9ebb1859887df4b3d2f404ac3458e432270433e583d739687fdd3db4eaa2ca94090bf0e28cbd8a054a731ef1fe6724b04a55956f5a33f71fce96b5714de0f061f889971a64ffcf9d4bd448e086e2c95f2e847715a9026edb5ac284721e4fc27e8cd5f614db75157295a109da9388a0b66a19f0a8cfff0e2693e9441180b02ab42717a31f607d8324bdd418e5b677527391aafa6dca1000992f9493ea6709309b18d5b9d7d829550984c0cb78f101a1e451da51c5192f15b0365f8ef27d5f6f201b8b0a816869df08"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_1(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "850fb526778a86353a58addd17e6df00b7bfe313dee51008822c9f59f8f52d69"),
		nonce:              decodeHexString(c, "ebeb302383a2c38bcc1a04f39c7b9bc5"),
		personalization:    decodeHexString(c, "e3f523361cd8271abad16aa62d8bc289f63cd042971105cc832fa28962092b89"),
		entropyInputReseed: decodeHexString(c, "1794d61816f96d87039894a8a9289aba9aaf462678a59785d541fe0503e01d9f"),
		expected:           decodeHexString(c, "7eee901e7d7044bcd37d265bbb689f842cd2f6d79ca4325af1ccd9e501120160a0f35daf9c21948005701675b2aa0ea56b972e1c9d6c95a58302ad177be63f1c83cf2424a238c12b89b7e8eaed52b781c83c23d6a63953d7bc41fcf693dca853d9a5503a6be6385c9e5be5d93e663ff2a2905fe62076e4130a028ab654c6c626b052ee6b0b562eb3232dac57ae4a15624a85110af54c2189a393e4189491ca96fa52b9eb12fb692d322414b67b507cb1474ed34ed2cb68e9faf345515671c73738066a38ea161ed8b05528805a7eac87183d05ba94c66222330394699bcd98ea31a2593c239fd6d964dade6afbe589f98b5d79db86d89ab95c6e89a3c0972314"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_2(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "8ea74bab6654e178af80211b22122efbdc05136be0b1848f6a661046cc59d279"),
		nonce:              decodeHexString(c, "ebb204348a4a85672dceccc03e5a9994"),
		personalization:    decodeHexString(c, "ba31b193b65aaa2fefa25cf5af4c7b6c5c9d2487337439a74799be93993af857"),
		entropyInputReseed: decodeHexString(c, "1b63f0b3eaad8bf4140a0c586993355f408a28769b0f4ed7988ed32a2454a7f3"),
		expected:           decodeHexString(c, "60f0a10a2f65dc5cc105cd6003cdb9cead7088db8dff27a0224c435c8068ebc3f47e9e7d931259c7eb5144be6d7a44f125acdd21110b77fcad2a7c29b5c21ac67f6291dabc5257e4436ff4da7317ed58ee6528b78bf48fddb15582794346adecc852e0bf5879c828bc5074c84c2ecd683c6a6ec0e1142295dc2841d9b98980e111fbfaaeaee8ffe3a2783bfaa741d72a609b0301cf9b3cb23bda8b82b250988cb8b60768670f182186307ae9ee6bc053a974e6d3138eb18997b6655ae00da6e818e80595723067bd1ece4dd21a7f086a108da8d806d0b8cd07126e4401895ea898c632ea2f35003533f64f9b60f14f6c6622b4195438e8c87c52426f7fd88384"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_3(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "45926d2d9e8170299bc88da8c4ab24cc083f1b11a7acc8caa5feff80fe6c5e31"),
		nonce:              decodeHexString(c, "1ef211dcd58727c9272b44e84ace703c"),
		personalization:    decodeHexString(c, "5f24a395bca8e3aaa33edf8aba3f44d7a9c458c17d6b549533820ad918096405"),
		entropyInputReseed: decodeHexString(c, "ff0639196b387a4091011ef8b52451d080818707d9f4dd882a48be878cd3f739"),
		expected:           decodeHexString(c, "fba80ed9ed101cdc58715654b16ec419e3d34ecffff32800e02a31f0c51194dbdd8aee10bdc7b676c4147f8de23d4590b30210f32a350459316f82b76976f882cf3be374dc39964b39d361681f803d6335e68d26829fa8663c191bb2065e6400756e343348f0ff8720f456d1a2c6292676b4ba70d3863fb8f19c3da6d8073528ccd753b1333cfeb6784fdf949b6f86ca9094d4519b1904d46d85fc14c64e91bb60ec00fd4826b3eb85c3087866bb378204c69129bba6e649fb2039b716fe9cf37f99c3d0c4ea9131d55ffeee797895b49134e540e2e437600a9b76467ca25084591a73dfc5d8c7b2f8a92c343c205feabe8d5c14c0bfd7361be7f87821cb0423"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_4(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "2a1338cf8616f1671b6b12524b2d4473d41d40e2c51b167b4136ad16b2c403fb"),
		nonce:              decodeHexString(c, "048b92f2e22babf3febc888d55dd7ada"),
		personalization:    decodeHexString(c, "71f990ada19916e3778cd7e6f72f807f23d48c04cdc8d4e0a477dcaec65a8c47"),
		entropyInputReseed: decodeHexString(c, "5671483d9e143af61633e5fe5422276f6b3f82d2f25da615ea6d18490610a3d3"),
		expected:           decodeHexString(c, "c5136ef02400804a356c1f3077cde3655a5476f73099e2fa4f00e8a73abd2cccdcccf25c793658fd2c347a4ad0eb83278aa93b6acefa33b4b435d9592ac6f63bea50e45d0596e0a83b080b17dd46148ef030c616769658fe471e9beebdb442daf0de664c799382e850d2e8c4ebbc285a018c8b3ba7da38dce7670f6ace5d00e5e8ecd29013f38abd12024ddc6ec5bcc9262834c1b8b3b0dc70a2917ae34887afef0c39a968b41e0f9f10e49d2035e703b628264c89d7211369f058cc3f6d9b2660143938978579cdcdfe474dfd40f133c2ce9b07a4bdbc3a9653c30178904ed9553acce2adb6899d9445e5dc2a7fb88031c2284b95f8b1405669cc187e29a2a9"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_5(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "18348c70f90c6c062bdf938e271d1cf40f0a7018465ddec613fb2aaa59d527c5"),
		nonce:              decodeHexString(c, "424d3955db23a2f8c0b5fd2c2b2e414c"),
		personalization:    decodeHexString(c, "7738e894f4cb9af4b885e7880ddd7183c65a21460b968ad952265f288277b79c"),
		entropyInputReseed: decodeHexString(c, "14e55459382c39e5e62a89b907de2eba024bde8b43efcdb6e999527f0dc2cec8"),
		expected:           decodeHexString(c, "c4a0aed6b29e9b9bd0e571aaa3d603e5fbbca417ca07da7071f0d7f37dad0eea6648c66995ad797544cfad772a5c6ffec59bf5cff38698064ae48de396983c98fc44caeaa98b3ef1b3606d05758f091d768371008492d0f2cd51f0481fe40882455253878bbc924b4b604d9678cd21c306a5c65e0a2d8680a6f1f17d5f9fe892ab68ec1a67f39182a74bacdb9356ee4402df8949dcf294bf235149154c24ee4ed0094d5b574617f14baa08a5bc45d6a194e5b5a86bd7bed4758c2c3f827dec7410ef6a14cdcf20a140cd7413abfbf99dfa05783908675ce75a83287278317ae321df53338698c7bb2ad87ead2a694dd04cd628ce85cb335d967c9ac2537f0c3c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_6(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "1ed72f57d908d00b8ac6d81abb5dc4dd21d524ee14cc7bcd32312c6320e5f0c4"),
		nonce:              decodeHexString(c, "e399ad136e03f3f22b94fc43903face5"),
		personalization:    decodeHexString(c, "a02d9135c30d30e57884b3c8a5c22ca4df0c488c0d28273be00fde6aff3afc48"),
		entropyInputReseed: decodeHexString(c, "99c7f95e2d46b21d398abef93511147f6f43eb9febf03ecf8730252ab0f05553"),
		expected:           decodeHexString(c, "01d0b4ddc320aab27da6fa575293686db57229b54cd4ec2649091012589d2c348aa0e4ca6de7499e45129c0ee8612f1881a14dc52d9e8da79119b6cfc056cb9e34d1c9100d1e017122ba66e45062a5ec013f3ee5fba7b97fe89b9f58d816a2f17085a2f3042bcc172b76a6922579cd8ad349a3436af2d17ad8aa2aef30339e1ccbd2e6b6f9678270de4c5d11ff423169ac15f80bc980e5026f0d9caef6218988b1e7ba2cf5fda589e394ec4249def4be2062ffaba12f27794bf4a56fd07dfbf0397d050ca4691b535e9735a7969651f02e85021c69fc94d85520c48a96a0e59fe80313865fbc2a6ca066ff9491f2105ee4841f542d37e46b0eb04dfc2d827304"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_7(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "06d4bf78785e3264c2dad1d9fc5cda86e2193a3f8f2aee1e930082a54bc89447"),
		nonce:              decodeHexString(c, "1bf09ba2654b2ebbb9a43ed2a293ef6c"),
		personalization:    decodeHexString(c, "ac8dd07b45de4de81ce8622c850ad0eadb17f063dc0cea25861d92ac41606547"),
		entropyInputReseed: decodeHexString(c, "da3e580c3ca2b0bfcb8d177f49b5ec1e92fca186aed1fff3ae4d8c59469d6331"),
		expected:           decodeHexString(c, "2e56f87c870d245bb73a52e8a8b99efdfbf225ea248a5606631de28cc98f0b36da498a0155dd327ebbca57ccaebfa0f0c959a1a1af7cb4fa2a9d8969646a048f6e942b67334de2533aa20a6dd3645f7fcf61d0405fbae175715938001ebbbfb47a1d6017b330a32bf2af13cb624a14bf3905581dc8aea9944a1e10cf602b75c76c70d8b243407088b6fcc835b4c515074827041fe3bdb33a7cfbae6890ea37c7d52ecd2dbdb2acff74a4f4b0f6b3affecb3930df23732355abdf592b349f9af2a708d3e8247d02d1266ee7fb9af8adb37ee4bad748f87785894719cb9bb45c9739b12441a66f015b430479d6ea737df070c7deb7bd8eb84001e035be624b2684"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_8(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "3a225f9d29b04c169b14a3bb88313792d7cd6f941afcf1d928ddc5245b2eeb5d"),
		nonce:              decodeHexString(c, "cba0c0d62a6badee4511d0d7499f0f8e"),
		personalization:    decodeHexString(c, "c0885a680c9846eafd99026a026e4668a4d8351f386040c9dbbf49b4a802a5df"),
		entropyInputReseed: decodeHexString(c, "4c2e65144af339d0710e50c0a0ee0f9cc9349cc428ac0c83dd5c6ba5f23a89a2"),
		expected:           decodeHexString(c, "fd615700295a162a79da3e8d96d063adc99ad911ac0d6c93ad169174b72798f352f0e861bc3740511f8c4267bfd68d0ea91046d5312f6e050ac701eb46951f9bb59d30147b6c4bade13fca096795f5b4bba49323c8d2035d7ebb223ac46bac847e875f400ac1af09492256ffd0fe101f975bea7aa97dc46f0ee4d663661ca4c7d29f5048540ca11e8a43f290507bca3b39547352ff418c4e9cb202b320a2bbb55aba0679388b4fdb722668ddbe1bc25ed03992e8f9f7d051c555e7f136299d4e4fbfd47940695e6fbe1fa992f4a5a2c4cc37fbf65273420e65e279b5fab79a89a4e7afc938db623fa9c45bcca76b3cabceb2d6da6617191a80c067e16fb57a08"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_9(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "c0cf954f178770c3f776ec0406ac2f7b96ebc415d339affa2ad76ca2f854df0c"),
		nonce:              decodeHexString(c, "06b2aee2ff6de47046fc1225b1884a8c"),
		personalization:    decodeHexString(c, "5adf3505663071150ff52ffef653922bc78cf48cbb974f5b7ea9447f8c51dcf1"),
		entropyInputReseed: decodeHexString(c, "55e015c4904dbbba0c7fd100e7afeee404869f2702f27d4d877b3d2c86204925"),
		expected:           decodeHexString(c, "424e702eb4fcc3ba03f64d66f322eb647b8d50e16c4478c8c1277b7d401ea8d5b0448a5859d0f2a594fa6de29cac690c523e733f74bdc1e8a7140d52a62d7878700ea49b1e887f4789e8a98424f448c6b7220e2817a6bc1fe6b885193aef601a5319ff607d47be23d36bd6045fb73c9bb5acc589396fac953ed511d7af2032e7905eec4d23eabd4a488753566aa516c5677c7fa1d0c231a08e9ff1289dd3987157e4ce34a275d7b555637e5e96b0ab5a7b5025e773e07b63898013b35d3eb4d8a9ed91e45dcbb6f9ff866216b3922a870e9157435c5dfb5b106fb6491c2807193f03ef2181951a7c084fa2b00976aa29d1fc09803b1598d80442b54b7e2322d4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_10(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "b6e6bfd1fb785269f0cdb7ef27fd5b85f8b0852f2b9389c9f0d94a0de919f60a"),
		nonce:              decodeHexString(c, "008b4284ebdef4fe10297c4f9ca8788b"),
		personalization:    decodeHexString(c, "ab662f385ec3aa56ca1e492cfffcd969c44f3998b0401ca06169d60143291105"),
		entropyInputReseed: decodeHexString(c, "989e6924afb53b10ee87528cb57d053cb4ac21b0587c9a8316c2f54696436b2e"),
		expected:           decodeHexString(c, "728101e40803bf32d014ccfec65b3c2be6642874bef91fe23ef7802d4fc78e943f9036288404ce71adfc41ae215462f82dc77acf3e10773d2a62503c40186fe4b0142a2ce36f2a73f0fc9cfa98485e7d59876cb4b68e703d20dee8c51c5e68f22222c253b61cf59cf903dda0d7cfe746b54c83efa45af17f34fb76834a5826f8a2ce7603ce69e819c2d066af6e8fe670a2ca05bd0e5267f8b0ddb89ebaa9b70c88a15b6fb3d6eb1f30f14ae65dd7b358001dcb89ba17cbf4815443cc8628f1f707c90c9bdbe92402a5a6c64903aefc4f207052ad741496ce2ea7bc5c3f8bdc97bd4c15ec1ee14db8b10fe0ad6cfb919c3d91c67fac7bad3d3030ba09965bdc67"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_11(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "e01c2e06db41d630c7e2c1ed5081959b494a6f71be2b79f41251f87d51128653"),
		nonce:              decodeHexString(c, "da74e4b9a3fd9315bf35d9cb5931c52d"),
		personalization:    decodeHexString(c, "f65abaa5c4c543578b8a05a80e7edc546244650a1fe3084cac5b3cdcb5b2879a"),
		entropyInputReseed: decodeHexString(c, "b07401d6e705ffe17b47047aeb7240d4b4078e5c2faa2838f7acc2c87ec5ee58"),
		expected:           decodeHexString(c, "acbbc3e55e71574ba3eeb567579a4af69233ef0bbc5b0890a498f360f33db6daffa0f378572d814d115b4b2a9139038bd57a0648ce1ac4c1dd8aa7544f17d1bbb1edc748abc2a866926a2e26e0748f7e54431ab7d2cf5b678a10d096412aa9712ba38fba3309dc86153b464ad958335d4b81350c62fd39303bc6b43dbf7ed8bd1d352ca2a041c6e48c31f3f0083814f6059359ff0607c2aa2431814a18b7fa432a9ff99328adf0fbf60945109e2bd0d15fff8167e246fc3cfb13504a74fa4ef6739d51657292d2228c5a0ff5961b7815da64f352d267aef80ac7342acf120fa7df71c550d4c8ab0e9b1d537033e74597161f0390f8d19319cd7baece73921a8e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_12(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "7219d935fe623bf89d5e755d899011418dd2c5b26918573881b2f689b2efd80b"),
		nonce:              decodeHexString(c, "f4b3001c35ed8c8ceaf2ad64d610ed33"),
		personalization:    decodeHexString(c, "8c48afc7c0893c0c38ba0aa716e9775fa3f8d3a230797e2050ac90cbebd495fd"),
		entropyInputReseed: decodeHexString(c, "a7f1f2598015e629d22a3afb815bae721b2298b224ee5de59e58dc238dc00ef4"),
		expected:           decodeHexString(c, "407c513fc478205847a964d2efb39a0dc8f1291345c0a2e0ee95566aed2f53214e35dffdda65d852acbcc9d74bda64ebfa0340476e344aae7e2d38085cfaf39b2c728e5c9b43200a060105d821dc17bc5ee87523c09721db4234a51cca7530cdad54d72f6b891b6c8d5ea5d4e92cbd77fbe487071fa42bd5025b738c583e1cc490c15176b2d1b8f060d9ff23e740d8067a423020a77ed6878934b94446aba2368d832fd2b243bcab22cb73910f36312e06aa350990782acd2e57dfbc09640f0b883fe96def361d212431067bcf68ab4ae7cbcce9af7f52d68c2f119d9c53bfc5c2bd5d2498ce2b6245ac4da991f132150cffd50c6befb46fd74bf19ef162c679"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_13(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "f3d86e49ff537ee60c3cacfa7895c075144c84dd6e2122a2c3de17f9d89c0df7"),
		nonce:              decodeHexString(c, "84c38250c98a8268b68812b183b311e2"),
		personalization:    decodeHexString(c, "25d5090f990b207821f9b21dee87e0b94a3d2bf90c331efbe0323ed582f45888"),
		entropyInputReseed: decodeHexString(c, "f3088cd35771ad0e97e2838f08ea19d544e23ae7be167aac19ae473004590aae"),
		expected:           decodeHexString(c, "3ff9df302e6ac27f10f8d70e2e8a0a356a4ec8bdf3ac5d26370f59ea097cd59a1d90cf6ad8ba7b5cba50d16cabd8ddba9ff3b5e42812672e985b9973b9673e457fa3f95a9b936c81e82512560ceb19495ed80fcb1ed1a9e748af2d258abca78a4a57a4b7d16c93735af4c3d4661ec73d8ac1581664b7fa5c79e07b31b23149539d9d9dfdce5691a2a9a8cabba19eccae93373236fff45e14b5028a9763b00ff4d5ef7ae247818b85dcad919cb3c9e124de699fab4fe777f67ac4830111703d1cc6c423b3ca8dc0215c6bea7fc15bfc64d40db7061fcc7cc0364bb6f5b157c72fe2dcde9beb4b24c8293d3a452695363687d977677e37706d10db87320f2fac4b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed78_SHA512_14(c *C) {
	s.testHMACAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "a2c4730d71871d2072df3ac8f10adb962d1d28ab1c9e809c7c61c4b3783ac19c"),
		nonce:              decodeHexString(c, "0f54b479cb981a43d1b6e7d3378f54ed"),
		personalization:    decodeHexString(c, "2198e11600cfc152362f5c9af31c288e366de62eac4bc8cce2b8b1939712363b"),
		entropyInputReseed: decodeHexString(c, "6afb327484b0965c04ec06d7202f1ea9abd899e034f51a3852c7946068f417c7"),
		expected:           decodeHexString(c, "ed27f28e309059faf79e3f076639be286b1199f625a5a7aafd94e09d14a5770cd2f044cfe8654f057bb868b95a1800f95d33079e5e9f1b3dbe32d0bf728980ce3e5fb0cbca8c2bab6d78000161dee2a93e56ee5e9decc5da342d98b5dc675e146b3c8faabc555bdbc39967b461b77a25b35e6f4e4e7b22161621c3ef40c0d42877ec82fa580ffb14527e3d9c2b57e23d274e0daa1acb8001849b09d9637a630406c32d2719875a064fe4ec4f612094caffaf436717f78d77be3db2b806f46cff3f302b2dcbd2a0fa39ffd490f3c6579d49080e8d6b0d7a9cd556c0acfca55826c65ee09a1e248cc24aa30fdb13f8b2505ed1f0a3b44c00462f30494e688821bf"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_0(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "f7d44498e0d7cfe749833c7bdf3a16809cb467b22df30f7f"),
		nonce:              decodeHexString(c, "b5a7763e69b64ec67eaa3806"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8268be026354c36a66c492fbdfe701ff1c41cc960b0431d9"),
		expected:           decodeHexString(c, "3685116cd406fdc0dad3fc66ffbc1404db38897d488acc3046bcb13bb23061837c4af3d744d6cfba9c9ecdc9cbfe7fe3398d8d4927d6a7de519203d0787f7618478c0b27af9564839c81801a9e6e49cf64cfb87027bb78183bba9e2873db327c99b149afe6f1e8e65e5026e822fde377"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_1(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "a3a7f0f252a6e25e6e51bc3c5883bfb591f5b22d5866b21b"),
		nonce:              decodeHexString(c, "d4cff5341b1163137c89278a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "af1fc4d4f4eedb66171c72ffe7f3aece25bd4b33c18e6455"),
		expected:           decodeHexString(c, "a69986be98e662a35ee064a0f2535cff11d82d17a798a823a020a91a7a26a30d844911685004ff11ddc09f68d257c4d8a797b4bfec8cfaecad5edfdcea48a5916fab8b505912e0ca60a31d3a3d5e5501df640135f68fe28daa1b8b8253e370a75f73c51749b1a73c4a341d8767b23b09"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_2(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "82d982359846849bc39f756673e2e3f8495f45fa1663c701"),
		nonce:              decodeHexString(c, "7993667ead5683f98e674c87"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ec3c23f92aad6e76d3c6bc062555cf446c0b605134bea0fd"),
		expected:           decodeHexString(c, "9855443a870547056d3aa117101e7fc0ac25f534f9b7b3d29ae1a9619adeacd44f66924e72dfb3ec11cb7e340bfc889d4ff1bc90e055c1d0add81305bd0f0c337d2ac451e8fbe7e13eff6b280817151d093bc4a3e3c5beb78d6fe6b95fc43fb3cdfa988ec46d05f6871fd018ab9ac532"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_3(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "2562791eb75a72a9e1217aa0fa77fa9fb46f1b9c4c164a2a"),
		nonce:              decodeHexString(c, "050a1537e26ed3c9df4f4baf"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "51a28eda6e78648eeb8dde238b4246774c2ad4d4656e09fc"),
		expected:           decodeHexString(c, "33fedb17e1e149be1143a5cef92167cf3f90652c6bd376ef7cf53b963aac06efc83972be472b0119ea7d9ac70273f72ea8a82554722dec33b764ee9f14ef07e11c106f91222803de86e910d1bbf100ddc5525929d2b0d8c33313d33b463e514e24d94c35f2e5772b424bc1e8cd803eeb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_4(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "3c3439793bd596d44d22e34c5eeb6685cca6ce8ea2624bee"),
		nonce:              decodeHexString(c, "3b68873ed7805ed6375067a1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "73cfe8031fb29885a11a8bafe1a517f6b37d669533090aec"),
		expected:           decodeHexString(c, "99122356075fd3f8ca5e6e7f668715ccc0e2f4f24da5bd6f79cea7dd5d5c0f23333fd12698a0064925c70cbcda43b117679060c6780abf74a7f61ad023885e943d3a270e93d483c1d2c1f784eb01fa0fe5f53ff3fda24f3295894ad5ca4d8a92bd817f2e9b96927c8e513411f392618d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_5(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "5b9e4cee341beb52403d282bbc7420d0e1d13bf7000401c0"),
		nonce:              decodeHexString(c, "eda7d2ecb4edcb87343c01b1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c4812161b439324b348e46a30808b4caec4d72d0e8968c66"),
		expected:           decodeHexString(c, "724966740892b86efaf2c11133b6cc63e8909a9e2a26a62686c8e7575832e2b6c3e63c5ee4fb013b923e6ebe18ea9041588676368d25d690edb151b10918a9f3b3077266e8bc2837d5cf259aaf3138a1aa4165f0b41fd34f18a1ee99a9e7f335940e27b4c54b032d1b1140e06a74344b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_6(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "33f0cd3db35381ee964ce43f634ba08e65dd259ccb20cf37"),
		nonce:              decodeHexString(c, "3626170fbce52409e845ea2a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f2da284d4d888ea823022d1378d85b14e5741edea0a2f609"),
		expected:           decodeHexString(c, "eda1449387833389a5113af509cff8a6eb79e5e0b3d07006ec66febccb163222b88e9fc2607cee351eb8191c17c9b65ac8b4f5a2b038e402da3aafcd3d3fedb4231cff05ad5d639bc49ccc2a257f634bc0380fabd85116f521415d6fb5f9185188caec40f22840c9ab9783aa2d60cea0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_7(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "97624a299c2b4348c4ac162da2113be76bb8e5d13813598d"),
		nonce:              decodeHexString(c, "edd8bbba835f93ba4fbfa9c3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ad2be1b482e8b98a3ef7b494045f72c338293a86b758190d"),
		expected:           decodeHexString(c, "de64ba37dc45cddf8a719f4239c88538d8b990bf2caff51a44e2c61081a72058dc901b418d5ef59f1bb46dc10037b6194ec847ff4002553638be167a891f15da7bac57a5e8cf806a668fd255ab2eb1062baab18268eb9057d959a8098a9b8b5003b2f2444a0b1ccc75c36d1764c7039b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_8(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "e877957bbdae38ff0041ad46a0c0c16eb4f2f6f74f9ce73e"),
		nonce:              decodeHexString(c, "64f71780b10cf2b148c7ecc0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1da0cd0ba75225e90de4209cd8dded3065565882a9b093e7"),
		expected:           decodeHexString(c, "90163194afd1492b7fb860e2074ba0bee38fffe9ce57b2d52e470ad90413070d2303e387e6057e27db3d3459d535865dfb9f14e34fec93439a9e8859b0be92f4283fe8c93b01ab296666e724f2d007dc2267a1f61094ecf838cfb67b79dcf540df7079edeaa3acf21d0e6f5eff32b4c3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_9(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "603692f178fd7d789ac8e22810e09e0ce6073e1c588b5a7a"),
		nonce:              decodeHexString(c, "925e0a5235a8ea5e0a6ac0b9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "41a40d58c27bbe9f33e540cf606f439f23bdd253569fa5df"),
		expected:           decodeHexString(c, "bf0fc245a11874b0c1f47d2e3ce0569e379d0e9f4526816cdc6c23a21e49a23e9b992b37e246f0927e9481ad8a47dd077c04b3732688451a755262f1b35acb4559e6f0d26d0ced2a0d26274e1db25dfdb0cccd7f5613903ec7d439352e713bec2a0ab743e8c3c279a60232a436d5ac5e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_10(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "4f78fabdab4139205a9e1959583cdc5b5d7187305c74a2f9"),
		nonce:              decodeHexString(c, "af85e0c259516376544582f6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3f98c9356b15a1a6927fa0fbc17a76f6ad3922bd5a2f2fa7"),
		expected:           decodeHexString(c, "807d5dd2c4789273e339d13a59ad8a4245130052c7579b97847c9100b7ba1e9c79af79db41fc9f413a408ab6d2f069ba5f9141cb1ac1fc3b018a59dc5bca700ce6982f28187120777b7085c5ed3af05025b8272479503932e302bb26d2c3dfda332321a37a8bb9bb660310fbc0de3ffa"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_11(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "f67cbf51a143b1620e73a821715f206f953d60c6491e7878"),
		nonce:              decodeHexString(c, "4ccee141a2375bf20704e1f0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a469ead290b0fa2a63bbb3990ff628fae2ceb8f8a95e1019"),
		expected:           decodeHexString(c, "54baa4f5edfb2c7ccdf6954c86d911635c0c90776748d691f0431c82dc0b61233d1fff9e45a5b4027218b18bad43ba395d3bfc3e1b80a546ff94581a440d28c082c809cf2ae951b58dc7a2f05bb85093a0c428eb7812fc8abb9e0b2226db8595fccc3710999b05f5e819d36c2e54fb2a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_12(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "0d81eccd0eb5241deee4380424a10a24c1b259aa1a71e1cb"),
		nonce:              decodeHexString(c, "722238f4fd94af3cfa4981e5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "653a5ed13ba0fc68316b42355642289e56c4651704dc103d"),
		expected:           decodeHexString(c, "3683d2df83d981496bb3727815882cd8e684cffb340f3026beaeb39448f1b5c3ac20d8252a8dd959808eec6cc0cf2908489674673d0d76fc47c97fb333aaca787434e7a911eab4b2fe988b0cab366777fee3358f2e43211bb4ac70bcc890b7ebdaa36f92b476e8a6a05bb44f0a4a67cc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_13(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "d61a310ac09af6e9608f05ab75ec7f0cbe736a248d4cb39c"),
		nonce:              decodeHexString(c, "772e403dd01cc132f575e7f1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ce7329dfe59f73ac8241ff495eb846e4cc8dc1c16defb552"),
		expected:           decodeHexString(c, "c89d4c57e574be8e4ba604cb3eacce903f804a882337c1d779732a7f1612d3d3eba67db41fd7044e3d5db992bb58d17e58fb6117cd74e0422b5d4603af441d137b84e88501dbdf0880f8be80c6a2040ab6236c857878a4f489b6c69b86557f4913517380353b983980baaed2e867f784"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed80_SHA512_224_14(c *C) {
	s.testHMACAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "94c3a2444c51f5fc39dadd15c036121f890c6a721c5836eb"),
		nonce:              decodeHexString(c, "e6422c5115957b2c1f49036b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cd2dd220e312ed6076bb35ae102db398ca9aee5db3e3857e"),
		expected:           decodeHexString(c, "8819785bed31412aa74db61fb6762b37939e3bdc7fdee12859bad695129fcd7047a4f3a8cbe09cb4f68f60f0918f9dcc12946546be9619648e7d5304e4b3c88e5e736543b7b77a6193ecd00a23e5085247f5f0406d28460c65b3e6f50a0c4a6606a1231bf70c42d5419c1e6659f4f7b9"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_0(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "af3724dedb96baa866254636dfa1860f94d4da5793f935cf"),
		nonce:              decodeHexString(c, "e5e248a00115768701cff6cd"),
		personalization:    decodeHexString(c, "9e91007fbca95734457efd543314c1dcee39a8c124209104"),
		entropyInputReseed: decodeHexString(c, "d44012848fe190d13dd7831d3e3d68b9d0c67e352df0d983"),
		expected:           decodeHexString(c, "1d95b04060fc94d6d4bcbf9f2066488ccddc246cd5594693d8414fd148ca4bc43972717e6474c71ed9f0302f28b6d7a4b362afb97f0022896eab9c274ea9f829eac949b89e9bec32a00bd9ccb158da3c160247942e60da2f259752b3291ee88e018cf0cf99e02fbfa71c520b05bc8262"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_1(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "cfb0a929dbabcfa3a25e46161faee1da789f2c30b1a9d274"),
		nonce:              decodeHexString(c, "081d35eba7956b4d3c12ba6f"),
		personalization:    decodeHexString(c, "74392c3bc983b4f524109d5a5edb0c7c70d10e87efef9d16"),
		entropyInputReseed: decodeHexString(c, "721acf85740d9fc2d7bc391ed4032954553e65841409fec8"),
		expected:           decodeHexString(c, "b262b3f727d49ead2b94f658cb877de5565105c07cc532c1e4416a03893fe0a2fd4507f2088bcb3cb63486219304e30b290a564aa3e216a88acf3093d78e03ddbc4eb795ab07d40eeaafcce7d0a4a23ad97b0b2f92f8357cfa578ddc292a7e9308dc53aa9733035acebeaa0b9ff6df3c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_2(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "dad51d08ca7427c5672b9578bcff1f6f75c6d39de43e7a12"),
		nonce:              decodeHexString(c, "e625a8fdf613479be2d26915"),
		personalization:    decodeHexString(c, "cf5e7f572101d6e792206e4d8df007c3c2b9ad18c9f73cd6"),
		entropyInputReseed: decodeHexString(c, "eb86c97b338239460206ea055b05727cee6fdaccf6bdd206"),
		expected:           decodeHexString(c, "832596d19e5eda13871a9849f230950462f4dfd132a3776d232784fcda70a17e889eae37da9f633c67e470f8bcbd87058992e1faf61a56daaed78b93150c94163d933d0334a692ecf48db7742538329f1c7b8f8177ebd6ec5848b80d1085e93e5bb9ccada62c931563671550a581b869"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_3(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "8d204c28fd22dbd9833889f23b1863f35269fc16de913887"),
		nonce:              decodeHexString(c, "118e2c23ce26c80bedd60842"),
		personalization:    decodeHexString(c, "bdd5b9ce73e89f93c2753c82d87b126e38524ac1a8dd2e6e"),
		entropyInputReseed: decodeHexString(c, "c3a175ffb398df5eb82ea70732db0671a6f822b47b3ecf95"),
		expected:           decodeHexString(c, "0f924a732c1e9b38cf86c8695f82b33afeffbb56b30fb7d378f460a6a371554f13e9495c23781f1162d62994f78de53d9a2a35b09c5c8354c0a0fc8f29b938e62fdec39d2ed31c405a466c3c82fb876bf4f4cac279e8aa54a4a23afd4607c7e46681a0269b49d35d37d6f09d9682bb35"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_4(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "53a05a005031e836bf8144c79c37db1096c6054544284ee1"),
		nonce:              decodeHexString(c, "03a9289193509f2f54bfd1d0"),
		personalization:    decodeHexString(c, "99e4595073d9d48d5c2a77dd0f931ff0715f82e30a7ab739"),
		entropyInputReseed: decodeHexString(c, "a53baba860103f4bac645181f4d7258c6d94f5d017bbf4de"),
		expected:           decodeHexString(c, "60131d94e70f84fb72dc7ff836928e208cfc489c56a551f3f10f4933d1c7a633b2a102cac3814b2b92df48287bc8c5ff6ade3c0e0e5211b50c2eeda7527189156f9cc020a994f05da92a1af7482a135ca29540cdbafdb8d74acaff7421a8c638ff693322cbd638f0ad32cdc7fca60294"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_5(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "8a0a2a4bc1f1f7d5fbdc2e4cd9dc732f3279f6f0fbabad15"),
		nonce:              decodeHexString(c, "ee4b802551c91201ff5106b9"),
		personalization:    decodeHexString(c, "12b3e4e88b47902cdc02cd1a7c23ad7e8201208ebf81982a"),
		entropyInputReseed: decodeHexString(c, "19a179b0c381e4d7a88bb0d7c66f388b66a118496b389abb"),
		expected:           decodeHexString(c, "7507da729f37f8fac040e028650ad615766bc06832cb0ed76619edbe454552cb2357ca127b299eaa5cfa973e80d76edc9206ef5c35811734cd2e0c3e5a2e6958fff8cd072d04801ab6aadd8e2ede691638513811115ab973e7092881d9680d04b2a32f410662d9c91b0b750baab71162"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_6(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "d92a614d3db7395e1b9fbd3b7ed532464a348f8b951e702b"),
		nonce:              decodeHexString(c, "a77d6ab3adf789d04058002d"),
		personalization:    decodeHexString(c, "97967a3c2a1741a6bac1ca5b189c86b71a418b54343b8276"),
		entropyInputReseed: decodeHexString(c, "ec6e872c9f673f60449b3093ab2217bc750d5790d3c04ed6"),
		expected:           decodeHexString(c, "10431bda9ca4c81b57d4ebab7611a3e7d7d3ef30f3496813b1358d7d0ed52fe3f549cbc671743cbbb77e4fa6e443086cd3e6b5eefeac9571eadf387fbebce929b401115d82c1818df78e95e3ff13c30f1f832c70be6b36bdd0b904beff39c5d5f80aafb55eec22d7d80e5a09293a4849"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_7(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "2346333810baaccfea1ed44950b4dd63462ad39ad68d0553"),
		nonce:              decodeHexString(c, "8c7b1efb2408fe6485e3c63b"),
		personalization:    decodeHexString(c, "eac2e4fb18d3ba844caba12e5236dd732dcb58eb533906ee"),
		entropyInputReseed: decodeHexString(c, "16f18d0c02d420fcf79988dc7c8110a37ffbbeec654b731d"),
		expected:           decodeHexString(c, "d0c133b0f1b8f23b2661d3a14134b2c5702c901a9cec44d4544cd8fa00a2355420b6ee24e9d376d6422a10a9d4ef5f1c56844cb73845a478a0addb0aa418ba2e4b8f4c8d5516bb0ddb021e519c86ce08d4f0dcf7f05cd87fbbee789ec311f296f48da9a22dfb58dd872b98f5f42096c4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_8(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "890b071ca124a81db69e17a0646bc3a83806b75f05885cb5"),
		nonce:              decodeHexString(c, "814d4b54d20649aa763d6b01"),
		personalization:    decodeHexString(c, "f17fb2c7b79ad3045e48d04a1bd2f7f2b26a29f971f92c06"),
		entropyInputReseed: decodeHexString(c, "9ee8daeaf369d9a9a47f7e8fe21d37e5076e2bf098e1fb65"),
		expected:           decodeHexString(c, "5f2ae5d775ea8c6e5e756e48cd8b024724135b283dd770a332d31f8d45fc4251abdd400c8c061ced93024e541faf3ad165a237dc241ea30781072e1dc5df2378fb272bcc3d2fa122e98082e656fbcb864188b3c851cffedb8c4dc0f6a1d71c435fb4b1d819272729551f9939fe9b1444"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_9(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "29e8371250c8f32a560fb3d2f496a662735d1df9d7af2fb7"),
		nonce:              decodeHexString(c, "45eabc26bd11b90a1c542bc4"),
		personalization:    decodeHexString(c, "9ea4c1082fdf353cb100d3052c270d2fcd754aefe9a5356e"),
		entropyInputReseed: decodeHexString(c, "d96ba80d097f65a40b7aa4bb94696e6274d48441e736b1d4"),
		expected:           decodeHexString(c, "dce6b9d07a76cd9155bdb2e12c6d2287ee18e5be4b7ae5344404f9c495f85ff5e22c995f66d36b2d52ddcb0d8f86795f6df0f2b2da4b2882fc0ef3b0ee5983ff5d90a40262d2591104eeb52722cb8028c844a2d294b841acb217283a72f66c63275f3dcfb5d7193456a2af01f16490c5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_10(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "c520505ff58b2a4b9ed0a7ba5ec9f23a3621ef3a84aeed26"),
		nonce:              decodeHexString(c, "fb492210f50076fb2873ac41"),
		personalization:    decodeHexString(c, "6759028254383317311785eec05ae974ce170ffef0aaae93"),
		entropyInputReseed: decodeHexString(c, "9892cc302132659f094a028774c6bd4d4053c5eacf368426"),
		expected:           decodeHexString(c, "b53e960dca900d2cf821c0065ea1226b90d35299279fd0364a98d99e5cecc94e63855415d7fd9a2f7411da0318ac905533168cee6d702afe8618b94d3c0ca93c7e8af5c6e0adbb4c352a3d7836d5ed58c6d6a23f06617562c430113525d1d6730048770db9ae7206d6803c2faaab59c4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_11(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "2c0525c3d798debc50f136f9d9e688373faa995be0ba0f26"),
		nonce:              decodeHexString(c, "d21a9186abff64971cd7ce8c"),
		personalization:    decodeHexString(c, "a048d35ca4f61deb53d79c375aab61d64b83a8aa29367695"),
		entropyInputReseed: decodeHexString(c, "f2ef3951cbd04bb1fe12bb93bb8103f965ee41a58b9415d9"),
		expected:           decodeHexString(c, "59edca3a9d023d5c3887fcb0abf7eac7d79af824952f9757790f0b38787014ca5ae626cd1fca80bbccd8832570fac1738074903bcea4953256e9c6fd1ab83019b4993b358403d1ab74df2a2efe0378ff1595f681a70b4c15c68fc5819aa7b910c49fd1a28f0b4e277517ddd8495e6523"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_12(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "ac04e2ac56c3acff4afcc0aa54fca967e4b5b3d1f9ed5eab"),
		nonce:              decodeHexString(c, "b064a3b03bcaf8180c9325ae"),
		personalization:    decodeHexString(c, "5aeb428ddb86b233b03fba7f0ae6db0e33291e2a27db0459"),
		entropyInputReseed: decodeHexString(c, "ea599b347aa79179262c7b3e44201258d68e8a454e274ef5"),
		expected:           decodeHexString(c, "9efec3d7457efc367cc603300985fa2562eb901c69f76c29d99eab6b589f2f41701c5f105cf5dab7941b1a7c41b5f179ca1922d38bea62af7ff624cf7b9d2b1c3e95822c5d6056fb73f81ec71cd1c845e6885dc9f8e9ac406678f2cd0af69b05dc137f7921bdd85bfcbee30367e86f08"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_13(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "9811568838becc2b5e8aa50bb212f66ece1a95b459b57245"),
		nonce:              decodeHexString(c, "4d5a1d1ee96fbcf83ea8bb5b"),
		personalization:    decodeHexString(c, "75ad0451497780cdb66f5a34e75ec8c32380014f229fe832"),
		entropyInputReseed: decodeHexString(c, "179987eada2a9ccc728d93cbb6e49bac73514c0ad436ece2"),
		expected:           decodeHexString(c, "4e90bf1b1e02abbceb590308e740b550d1fa68798a69289cd317a5672ba0ce7c8984dc25598d4a55629b757abc7a2ee405121ce892b615bbe7c4fec431a394d78df8e54caff7efd986d71f567457f13c0919ef6d186ec3f6c5f48cf04e5ec43dd1a34e62bd9d40c83c90790f9f072665"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed82_SHA512_224_14(c *C) {
	s.testHMACAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "17ed2e4c148387e3c7092a83aa560d3a4a35413c1af8fb97"),
		nonce:              decodeHexString(c, "8d45a02291fc7f2da3aa603c"),
		personalization:    decodeHexString(c, "f36c0c17bc7a2e00fd3b14d336695c0dcb60ce8d1f223f54"),
		entropyInputReseed: decodeHexString(c, "a3887d13b63f35151017c848394fd1407f7071d30f60880d"),
		expected:           decodeHexString(c, "05384e51faba66f8ca68354d55517f63fd8f954468909ed6a05e8f7320e34348b2875c166f2ebb14f4582b3570da3a9b88934865ebe1a833c35773b50b16dbc816518bb2455f41fe2bc43d5b6fc8bb31c4b164a63fa870229da46d27babd310ccd9833c206a12560958e1ebbfe3eed1b"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_0(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "e3ebee65ec7d3848e93d85553f2a5d85e705d9e14280eb96"),
		nonce:              decodeHexString(c, "013546ba12c7204b3166bd51"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5b9ee56be35a328f3a0b21462e2b682d9a9994b1495d9155"),
		expected:           decodeHexString(c, "66b2ac1b632a32ac6a06255191bee8d5c7f70a2f6981b2289d0c79eacec8cfe51de0092f044197c289a21a51c43300da4975810178631aa2e2872af136768db61303d27421ea7b9059c0160b69334602851a501c249fd53bceb85308cd99c44aa6db9e199f31f842a3cfb0a63447408f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_1(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "5c97ecef2fbf898a5cb67a9f85707bf9cc4381292b52aae8"),
		nonce:              decodeHexString(c, "c8c4d6cd480f7ad356a69ab1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1d8528ca6cb47782706eff8e355ada3e0f108cae0444fbea"),
		expected:           decodeHexString(c, "414eba3f8b1b71e9bf53d96ef37fb6436bfd2dca49c860081c52ba33bbc000709fe850f168385779ef44ce70de7d038fe30918f537886386eb11337659d6897caf0fda1240eae055b83efd1014e98b3dd0f6b2fe4bb144e217d4e37194256bc4a029b447af9ff0f3b69a4a0b49ac4812"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_2(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "fb37d988edb697d2ef82ec279664c509dda06159ee5d81cc"),
		nonce:              decodeHexString(c, "dc7488e5843b5432ecbf36fc"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ff7c7e94df1468d8cb395c4a490c8b396f38404157df5336"),
		expected:           decodeHexString(c, "0dc950079511992c4c78105805faa615ac37e8f105c0f48519c3966be7da4fbbfec6a539fc5d84b001eb08da4741b553e6c6c46351d6981c7795dfa5628a7f0dc105cdd8b1fc93bcfcb32f126d2b05721f7ff9e02361ff071b4e37cacf359478867afc97b25737af8e36017eb31b9343"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_3(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "4db96e0175d8ecd0520c2cdb9735c4d8d12bfd2d380108a8"),
		nonce:              decodeHexString(c, "fc59b332708611b103d69d07"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "91c54c74cda0a7bc0396c3b353f672270684d473420c6c7a"),
		expected:           decodeHexString(c, "cd483a02c7c9a982982dad2f4d6f2547c6986be2bb5807eccbad86eb50f15c01bff0a5ab526e80f5ad7f4f662f4f68af5aaab6da4535f4540d9e951559ea88ff42aa5b5d26eac51bc7c58f67a40b7b1e10f3e3fb8c11f78ede6befe4f4129e46157ed62390e4fb00fe734e0ada27db52"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_4(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "5e92431bc966e1cb15f2aeb44947de464b7199548def7bde"),
		nonce:              decodeHexString(c, "8d39ca16a71122759fa241d0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7c74c30c1ae9bf2841881b511a0869e763c4e9b401029c76"),
		expected:           decodeHexString(c, "3f260f9d090d90dde497def33e1f148db7a39e5d0f11ff2f4879c33d29db6fbd8d01adcb75dd68ab47deb6339d1de2dbd84f5ae22b180eed0d3a40e2aacb0efe818f5a1a1e4212046e85b4ed436868934906b8586b8e7cab75c8e0f6538d19ba1549e0b127e3e3439e345be7f44537b0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_5(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "660a2a0b79ca25c04eb7cb59a4370c90cad89b55e6a09746"),
		nonce:              decodeHexString(c, "692db393fd443c5365bd6f85"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a72c94ec1b41689c18c4265c6d165010a44cf75941ef90c7"),
		expected:           decodeHexString(c, "c7f9b01bfb9c63b02f303a8eb5568519f35db2c8ddce9ec6592d26a5dd99ba4cf8b07beff7977b771ef998e0d96b3de0273aa4097dc67d01cb1a4ece40790641a0f3c1aa1aea8baa1ae9683cb2a4ea0b508e8f29e3275dee018441f25cd3fa0f865dbc549f5bb09ef7d9b6e330d0b2ad"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_6(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "1beca92c13bce295622b841aeeb9655e6ab47a955ee63e96"),
		nonce:              decodeHexString(c, "8f021fce5748927f7304b38c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0a3db8b1989e887c864bbac9ce3d5caece5a1ffb0c7e17e2"),
		expected:           decodeHexString(c, "b5ba5f854535cd7c879a942516f9880312292160d89dacff105a40be557189282d4890a3230abfb7625e0fd843bb0b1641df7021f1bc22794335cb5cb1d7957f43e7a08eafabf38691a9efdc530a644c43593b75d0980d6a2aab412fd00d9ae39e51ea9b8b19cfacfeffb720e0ec8f1d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_7(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "c4f56ce3d11c9f0bb37a7509d686990621c2b42c62062469"),
		nonce:              decodeHexString(c, "5bc9fa3b7852e98b938c8326"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "547c15c8111b9bad3c29cce7f1445e0c2d691223337f4faf"),
		expected:           decodeHexString(c, "cf6dd2d2a366299194c87502d584b2738eee76baa35c329ce526379f12123bd625e3b2584394eddf96f1ef54ccffeb23006b5c02cdcd4c79f09b05ade25d1ac54c56c90182dea25488f54a775990cd58351a0a91add3a1acb1e01fe90a798298f04e47ebc8496745bf8ab680864dfe23"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_8(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "4851c3063ecf4c1e5ce1f9816b7aa177ee954a4b8e3ecbed"),
		nonce:              decodeHexString(c, "69b963f217a2c96f2a29ff58"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "eb262f8ca8164f0a9c78ef61ae316222662a127447189196"),
		expected:           decodeHexString(c, "795a1d327ecfd57c42eb179a0dde5c82b856e196e4ca4e7b01dff044650b8062858dee59a95bf1f2991636532cc161e0b90562411a63c2646d22b195bd4f1c2ced0e68e21c7523acb91ac712418a83553baf374879834ec923af591966436eab307aa3774be2bb2794c2a4777ffe1e93"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_9(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "578d126778c78b65fc5e726676d4842cb44b88036c575162"),
		nonce:              decodeHexString(c, "4336e590e43d5f20f5499a70"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6271a3b36dde9ba1568d477277acd714265969e42329fb75"),
		expected:           decodeHexString(c, "e0d97d77034b22862f6ee974848661c7f4170271c78bc44f2eb38d74f8a62fe242cc628ae3b8c8a70f159c3dc68bafbd13054f86c5c39b2c72669bf98c5b7450ff6a0b84d79d8c9cd32ae47c122abecbe3c67f20ef2d9dddbfda13748a520a6352b9b36033d33fd6a9b81b1bbbc939a3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_10(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "13dbee21ec86d4ac7960d892a1ff685e0e993fb7f688fecb"),
		nonce:              decodeHexString(c, "dc5e6c4abf5cc8c649d3f52a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8ca8dab36931eb605f45efcdcde1bad30a4d72e638b6b997"),
		expected:           decodeHexString(c, "b6d4f66bee4ca215700aec677640955fb72cca33823ff62bb820efe8092d0eb805740faa82da3c5676804164e9b1aa58500e749fac3948b5b0699eb0c28233608e373faa60f98821a0c522d9d03cd956a2d863eb1c2f3165fc468b807c260ae1a840b472f93ef79d1d4732c96b609643"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_11(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "f057bfec4142cb31ae3d5eba900488a52794b2318b1a2897"),
		nonce:              decodeHexString(c, "71aa03d80e5decec8689a939"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "05f3330971e9e1d085e4d8a89e26a4cd8ca0f4bbe57f2056"),
		expected:           decodeHexString(c, "4c8761ed99f72122a758409fd6dd7cd87acd95bf3f8c1d805beacb6bd80a17c2b6a60f908371bd11b6467ab2883ba808bba3f14febee113ee8c6112e8672ab3c0aa50182f6ef791e712e91b45e7b6a525f3efc13801d0648e4ad77dfba2b83e90d47c372da86e7ef1617133407c154c8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_12(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "778d731a103d0091bc210ed17d652ee3c57fff71f2333a40"),
		nonce:              decodeHexString(c, "23e754540d6cf3888f10a4ee"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3df7c387317a838efda028ef709e4dce14667c68d9cdf692"),
		expected:           decodeHexString(c, "e16b915f5025a278ba6949055a4227e441e7157c4081dacb746f3796e275be55326a58de293401ff18ad011721aab9f76e1664d8004f34ff155a8e5e6c4c841d1d398c5e4291d74ced2196c3721dadeac1cd66dfd317b6c4b8f090a278c3b3c20316815aada482667fbea422a26b2d17"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_13(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "d16fd89a478a87820efffcc9ba5b473adf6fb5df26bcfb0e"),
		nonce:              decodeHexString(c, "dd2d3d86fd51c0fb1a770168"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "95cae7f6640c99671ad07eab14a20ef734d1fc5789014e5f"),
		expected:           decodeHexString(c, "277543cd65268f87359f10018c774f0ac8bb31de5aa9ff1385c5e3495673b3a53fb1af8a76183a73d8a2cd13d1df1bd8dc9a720d46a7c71f22048d6ad70bdafed54a511207860608b3edba62f666c268cb06dafb5e375459818ebb65f4bd6aaa3f1420a96782e3b65870ffeb67d15785"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed84_SHA512_224_14(c *C) {
	s.testHMACAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "02a2e182367776742be968241a548c0be87ca73632f8cbd0"),
		nonce:              decodeHexString(c, "eb94f97ccccbbfa209a92b1e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2c9004c5ef63e71380db63781a5c4640dc9851e76c2ed073"),
		expected:           decodeHexString(c, "4f63f5d352ddc83376786454a5be4dc8400d34371b71af347fd3e7d42240f2918f700d975eeb2994c05b2a0b0be81787dc86fc95a5e829b70dab56723fa6e56e62f34b90c43a8f3d95a22569bc50469280e6e8033d7cf984cbcceea3d25913d461d4e622dd6df355f4cb3c6f994d54b9"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_0(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "582efa9e9d4853ae7121f1ab3cb9198d9e4173abf903085c"),
		nonce:              decodeHexString(c, "8aef0acfa4bbb98f5ccc5768"),
		personalization:    decodeHexString(c, "5131ea2be1abe5555929d430f01679c3e262f680acd9b079"),
		entropyInputReseed: decodeHexString(c, "675c4ad68e56a71238e320ee545faa08b5f89bae08b96692"),
		expected:           decodeHexString(c, "93aea203e157de4dff0c8b1c19ea53fa2e2e31527770188c65a1b289ed122864c1f1633cf9a422206a83b4c2ca1d18a4a57c06541d67022b8229ad2f4ab0bcdaace5d6ac615b72cff58f70e0750f8e26489834b1f2173fa38491e8dc234f9567d0aac72f6a3c6eb8ac9d5f33e1ad082e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_1(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "7222025a77da0c222a1e92504f31fcbbad3296f581ddce0c"),
		nonce:              decodeHexString(c, "f5baff1de8c3862040aaffda"),
		personalization:    decodeHexString(c, "740ed0d334017b3362bb17b412fbbe7d4bfcc5555bd9d08a"),
		entropyInputReseed: decodeHexString(c, "172cc636665c2a9141f6cf31d3d799e9bf3e539cd04d9468"),
		expected:           decodeHexString(c, "f59867aae0a39107c82bc4b6baf33e9740bf0cd927aca39acd2a9d6c79dfafbccc48226178770e2f83f24bf3b12f644b559349f66e364bab04643c72c4ee57a6b463aa760cc518a74eca0ac7f6eb6c816f7c7d105b1986771dcbf18ae4c8f698fc0b0b000f2b11c35548375accb37990"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_2(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "68db63cfac0285633809f7e704a38a02c53ee4f71919caa8"),
		nonce:              decodeHexString(c, "176a4ad4e90b37c2f017613e"),
		personalization:    decodeHexString(c, "fb16d23c0206d36a0cb720574d877e466c157b92d3a0b9c3"),
		entropyInputReseed: decodeHexString(c, "ab36bdd6b62f2f17990662d99d6b54b3f5838dd4dba9bcbd"),
		expected:           decodeHexString(c, "0d6cd9e1dd394cf7abf00dc0f9e61138c34634f12a1ca5af31e8b13e423ad9d649772d8dbc33c0bf3d602f31d1a30c47e0674bc348530e452ac3a1d6a826567e5c200a1faf6b28891be0c658a3a23d5268dcedaf11808823c5f0131327c2f51b37987f425e6d29ea5fa76930ac6756e5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_3(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "711e5650b2861ae32080adbc65cd59881a946339ef85a149"),
		nonce:              decodeHexString(c, "9d83f0b8ef3fe158106873aa"),
		personalization:    decodeHexString(c, "529d8e9903533483d85b659cde6b8a5f35e388d68962bde6"),
		entropyInputReseed: decodeHexString(c, "4853fb444cf5cd68a09bddf807ed9a5b0980100891293efc"),
		expected:           decodeHexString(c, "68b22ea272a9cd5e03360fe7aff3a30b3ddacfa24fe8448601deea433882ae14778e9d8b1a75dcd2848a292448bc2329bc1d8753e8948223822c79cb420df35bc36e6468f83fa7f426dd5bef67a51e37c7a3b58ca446b2b0812c6325c8e7b51c5577fb1b114e3c55e8daec2eee349718"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_4(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "b593756e43e8aa674b9eed72ddb8cb5d39133bc45e259127"),
		nonce:              decodeHexString(c, "038fd29ad6ad8975caec6d03"),
		personalization:    decodeHexString(c, "f965cc6acae9b76b48a319da946fabd32cfe8e624099559e"),
		entropyInputReseed: decodeHexString(c, "b15cf7b1dc1f2f5e327c37723ce540032aa48f64a55b5c56"),
		expected:           decodeHexString(c, "8b931d49bc0abdccc63292f74802e8f8ddc781d04b1b65f9f950021e46acd105a4a71a7ab4620143845b53d6c2621e93f5fdf1f338ce96469e8c03a2f3bf84d1fc7dc9db176784de7f0965c8b91f2aafd38f4b300ca2eebecf3ccd28a8e366b55f3cf66c5873f0b0b2c60eb4c65bbd61"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_5(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "dfbab114149c923c53585523668e57baf54809532b3f8e3c"),
		nonce:              decodeHexString(c, "d0adc62652f61dbb2db40a2c"),
		personalization:    decodeHexString(c, "70ecc5412145b46e4a721ea7007a1b5fedf26bcc83b696fd"),
		entropyInputReseed: decodeHexString(c, "ad38cf3bb98ae73891d111355ce80d26547d95ae879c6673"),
		expected:           decodeHexString(c, "13d4acf170aef13287bf5b116a6d5413d474486d044097c64d610d0ca4aabdde1945ff3ed43d6c399dc6041f481239eb94dcdeee489a4ec19e6cacf2a4022a47a1717ba78ec7b7069515e5af0be33534f5ab9afce068edcd9df38548fe028e6d87103b8398631525e97baeba9cd7e576"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_6(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "e59bc9c4768aae4d8beba9dbca502351bee14af3bd37e244"),
		nonce:              decodeHexString(c, "49148fb0eb504f3838f3e40a"),
		personalization:    decodeHexString(c, "258e06855e38e590446037fea1505a9b1d01414583039849"),
		entropyInputReseed: decodeHexString(c, "cc1c5252d14f32ae20617392c918e2f29271a40d09b0f5a6"),
		expected:           decodeHexString(c, "bbf25f6e147990170ad6b74caefbf67d3ba03638d78804c4cac63ac3c35b745738984605c98f43fc33687b039ff7373f08869b4f43024800daebc035038190f5f486a8ce19c274bb7dfb2b199d7065f0c5fdbeb86135696114f3e246ec77d3e279d5f39a581ad214f4d5eb2fa10f25ac"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_7(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "7057fd152ce3834a52470e9602dd50622299b9932128f58e"),
		nonce:              decodeHexString(c, "3a20e575b668c8d783ba9599"),
		personalization:    decodeHexString(c, "326caa8ed2b94559604ae5bd6124ee7933e5c5def4751a86"),
		entropyInputReseed: decodeHexString(c, "1b5c35be02287ca0446cb5d78ed6a99d91698968994a9309"),
		expected:           decodeHexString(c, "04632278360f34a0c4bfd113e18bfb50eb93d3b740468571826b5e1dd4c67071d5c279e67a1764c0220b2012687d7d8778a44680aa3bc2036077cd564b176ca22a69a977bc30321229f60555e59734f6767d1181d6ecf9eae3d4bd8d32a4bbe317553f743504337b0d3c9ad2aa882878"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_8(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "6ae8d4f3ccf79121f3bf8f95d405496580d1cfcedb3700d4"),
		nonce:              decodeHexString(c, "037d9e037a963439609bb881"),
		personalization:    decodeHexString(c, "e5c066afff04c7f71aa96b5fe4c2df82c41b772f0f4111a7"),
		entropyInputReseed: decodeHexString(c, "1d1d424217bec8ffbe0d80af1d468556e789f565d7a61a2d"),
		expected:           decodeHexString(c, "4b97451308d0224a82063af2367f5899857219605be82f2cceef2d6c3492d21657792cb57a020e6fe7418a855be3af1ea6924c781e9cb7f34380d868f8883163a149575f7ad52fff08784271b2bf884c589d19bb117d0e2ffde8c3d3ab6e1a5ee12e9ba34acd3ef1d725b302e2574e47"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_9(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "5a9bc6b4e54cdaef6e869cc67faea936e3d85815bba7b8de"),
		nonce:              decodeHexString(c, "d4621b0498d8106aab28fbb2"),
		personalization:    decodeHexString(c, "758cfae81c214028e2bc5f7945d7c50e44ccceb98f14e920"),
		entropyInputReseed: decodeHexString(c, "f909b3753011c7b850cdb44c674f06d703351f06ca891fde"),
		expected:           decodeHexString(c, "1b41c15f94fb9da03653712f4486de1925e318b6b682b59356a47e646a67f737d367087d54685141fffe98a11653d6241c3c571b035d2f77c3bc32efbb606d6024e1f2959544770406d956d5e588be0b0fb9ec714b13e2bf92c2cd5526845db681b490b553ded0bd31f3756b5fdb1e7a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_10(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "82a07447fb62b1b0a3feaec5af3da7f6cbdfa4c72b009e54"),
		nonce:              decodeHexString(c, "5d1f19c2f7e235dbc444c53d"),
		personalization:    decodeHexString(c, "55781585239e655d0351e33553d4bc5ad243e42b22fb9e90"),
		entropyInputReseed: decodeHexString(c, "0e97122fa2c893002373e81fbf20b00e34483830c198de70"),
		expected:           decodeHexString(c, "69ff2de1084df81d1591aa9cd15159105e360107d6d893a22fd51523627f4ee03fc6d0db0c7d069ee492c0343c9ef52f519af77f0dfb4aec759c736b3095660ed60512476e24a68688c73816c1b0b4f6ddcd465c73c4d103ad36a348db29f2d5c7aa8a630ce981e370c68946fde2397f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_11(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "4ad315b81ae9a48fdaa76bc11c18e27ad1466345abacc67c"),
		nonce:              decodeHexString(c, "78e3b083b38e2203cdfd3aae"),
		personalization:    decodeHexString(c, "c635c06747f52257ddf37287a739aec47f276ba550a5f073"),
		entropyInputReseed: decodeHexString(c, "0649946936034156eb0daf9013cf0bebafc35d82017ad614"),
		expected:           decodeHexString(c, "710188112de46156a391a6485281de0abc6555894477ab12c621f3812029feeb200b0ecfa8447cbef35a4746ce599d0c9972dcdc7b4fb841c3bcced8f6bdb046a3a9706249603d811c8012d9639772b4595fc745f45f6b3f76f3cbe13cbd66cc3f8854f93d63ba8498be60c64664fb76"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_12(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "f50194fba5febacf6dd421a9cf857f57b31f60152f99c39c"),
		nonce:              decodeHexString(c, "d62ff3de64aa903d07a219d3"),
		personalization:    decodeHexString(c, "652ae922f8b4b1ace0ed99582942fdac7e37cdd5085f0b58"),
		entropyInputReseed: decodeHexString(c, "69ca60485454aa2ac35c48596351f57fc88093b5e74b3acf"),
		expected:           decodeHexString(c, "25be27ee762172c3cacf34a74956427462a91a2802652273ddc39b24f6d2aa539bb11113914436c98dcfbec35d5ccee7e1374c7e3efcd2a15f838c6e818ca1232107a62987509e6b2bfe2c4bab7013a87d0f12cabd9d1daa2e53f27fcabad53d7cacdde41594f422bea5cec2e0578473"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_13(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "721de3bc578ee54b81d1de44fbd4f41f99185134a52545a9"),
		nonce:              decodeHexString(c, "87df155eccf6bfd01a814b7e"),
		personalization:    decodeHexString(c, "2c60b3e35f5ba384673709bfbc7eb798791df204a24bff6b"),
		entropyInputReseed: decodeHexString(c, "b7d8183316ee08647558f3758673b040fce26a3613121e33"),
		expected:           decodeHexString(c, "5e20249a116abd0f09366a76ecf70ef71783d617ebc8eba7801979282eefeedbbbc1132b08efaf63f5dcdcb0f1ba2891822e52483e6d756b3a97b00c2623ad67b2a15053516b6b7fa50416da4dc0b5c9b9d8769b33d2f4afd626693076da9dfc7aa0eb9c17a4cd4eddf1aae61f85e70e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed86_SHA512_224_14(c *C) {
	s.testHMACAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "78c6b566435d01d2b4ef3ccec4785e8f14c7b3bee1e3dbd5"),
		nonce:              decodeHexString(c, "80a23d19e56fec2d74189d9e"),
		personalization:    decodeHexString(c, "32eaeeea8e94879153ca49184aa3fc16a881493495445d58"),
		entropyInputReseed: decodeHexString(c, "13ebe92b43a56b892ce82cdee8315da69f42ac366d6513f9"),
		expected:           decodeHexString(c, "358d17073160135fa96f467e1e3aa5741c202deae87f37f1a8b0c4e520db6fb9e5d6b861bc54db8ac2db336fe035d5c36a89da38adc8b71da6f32d9f2dc4a86d604174c4c7b152b930bde4a45995a5e259a01e1a3ae44f708870f35e2cc1059c30274461e5e35371702be6a688656f70"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_0(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "6401565e2675f6d2c771a70700645d77ffe5ec94a6da8a5e"),
		nonce:              decodeHexString(c, "da57aeff71dcd95e94b79847"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "eb36bbe289c24e6d5a076acd3b69b87e28030c549f04fe21"),
		expected:           decodeHexString(c, "5e0b3d9695e35f80d78b39f4fc9c5132b03996340e2e360c3b606d895b8d4e406dffe1a3f607e43b943a3d11dc9c7bb958b06350ce82d1a1652da1dbf2c95327a96b4a2eb72df8ec30ae6b38a822626dbbd80c0229479c83c6da4e57c5e3ce2dad447339b98888a75308a22f9cbbf727"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_1(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "a1d4c11b5da1acb0640a53498b9a111f6bad577a2d887b37"),
		nonce:              decodeHexString(c, "bba1788856746f9be01a9542"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "63f8449ab4c59b3ab4a805c8d3c144ecb6a7f51306a7c3d1"),
		expected:           decodeHexString(c, "0942426c282753a9ca4ee6b22e8a844cd8acb056199c221da4e113f1cb9bc33327a9a12197c43966fdf9ac61e9034e5d9bf229fee6828113aeed51e8528a09c6da3f254ba3f0e488c73f75994089ddd4b8edf7a7f4d05a53524b2dce6a8e2bbd17bbeafc62205bc56b6645ed4ac2abb5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_2(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "cd1c29c3e59e1352bdf2f0035e44233c2119fea623011b6e"),
		nonce:              decodeHexString(c, "3e30f2dea62ef9e8e8524e79"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9e2f5ae01aadbcb115110420490227248bb5f9494558290a"),
		expected:           decodeHexString(c, "225458935767f07fec062015c190342b44ac208511a85d941afb803bcd13ee05944ca038f77c4a7cef79db79e6a625e180cd1aafc384ab39ac6a86866ebf1c325b454055b4c048e8b151da414bd873dadaaa590bbe21c0f8aa8594d8c665eecbd0bfb3f5ce1078816951ef89d110869a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_3(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "98bb57f98f371db3a07b32613721badc1a85de04dc6d342b"),
		nonce:              decodeHexString(c, "e4e9e96e4e045506a1bc73d8"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "20c049a00dbe4d205febe20588a9cdf59b5aca3a6fd03b9e"),
		expected:           decodeHexString(c, "cdcd72b17854a8003e77cc3ea26e8105d388919097bf35a34cecba3d05f4c0d374dfec02dd1e954af7ab061a6a4f056113eb9524b4054d5e632f828b3d8ea82b6d95e30425a8e540559bb94e8e3122a29fb236d8e86438810f18ff4aa805bc4708cfeb6b2c908cb30f50a74888650ec1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_4(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "8f9a9c030e3f9b9438775aef361c982521c415ebfddce151"),
		nonce:              decodeHexString(c, "ee78f3110dd31f63b7f478e6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c3ffe4b8e81231d18c5533f77e526af34239a9667d6d114d"),
		expected:           decodeHexString(c, "353fdfb8707fe91ae2354f3692f57ce98bd0220974e7d2bb0223eba2f523c50159f7f467ab52eb0d8bc3bf33e4646dc0b5fdccd3e84782d5a51d50acc4cf32370f93dfb90f9994310b5edd4c1eb7295b214f5039050d254c9fd6f136a65986f1c6d623ab3f0135b8797e30f6d3424d0f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_5(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "a92b039081f337ac20ea753f35cfc3078364884ce458d992"),
		nonce:              decodeHexString(c, "5266952df96f63cd9be483ca"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "21f95f2b2f251eb1c8672a16378481d7cf13f3705ea876a0"),
		expected:           decodeHexString(c, "a862453d4a84ba6e1c55901eac4f1aa51408053af488458fec821deb92ac485a016f264c8e68204e05d1dfdd35471bd37c61863702ed9a6027d6e5f8126556d58451e794f46d87efa302b073534206d49fcbcf6fe5f4ab2342656fbf76b8aab3a50a9fbfda5d4fce10ef62ef31907e47"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_6(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "e902c91cd2af6e478efb560dad74f55c58b9da246944bc3f"),
		nonce:              decodeHexString(c, "5e86cb7ec4ccb9b2193ab4a2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "928eafd412c31078ee8e6868a54cc94d4e22c5866af50395"),
		expected:           decodeHexString(c, "30a84c9d82930a101799008f272312810a13697eed8cc7d141fdb7502a1bf583b3382f10b957d26714fd26a3fe05efacdccdb48e4fee42bfe0192923418aa5fc6e9b04156195321e737fb1652fc75164f1b159883f21aeb1c1e1760f9055a1b92e1b950d93d73412525dcbe91aeb9af5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_7(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "710d8ba501e1005ad463caf954b53149b6699e347d5e7665"),
		nonce:              decodeHexString(c, "db14baa017a8623d5ec35a2a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0eba77fc5736276f068a8dc6c53cf769f137c2c5bc415414"),
		expected:           decodeHexString(c, "cd6314cf13bf81e47020e6cfad5104455de6ce11c7b7cedbeeb970aa2fdf7dc485393b2a30e0a384f2b9f0c58056cb917a32c6602336458224938ca6a042f79096d60ece27de0a38aee589d389b511c51e6d085b3081461e09c3e3d2bca8acc792efe85e47142d196d7efe36409e2be9"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_8(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "b59897e67d733bad338f3854ed1ef823853c643bdc43efa0"),
		nonce:              decodeHexString(c, "21a870b83b0a16f05b024156"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "96a52164e0619320f5b8fee0b919adf047f4f09042cee99d"),
		expected:           decodeHexString(c, "1b187ac91e7d8451275a3cc0b0eeaa55ca1b6c26887613a8fd57f6cda934abdab5886f52527bd897378435fe7ff63904b134b2dbf055fef7ddd891b691d5d62e48d3ed3a2d37ffea4baef35dd4f7028f6049977b479637d9fe0bd2267d9f6a368047159cef554aff678fc7b91be966a4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_9(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "d60fe65e423b11550b4343c7169b822d9cff609f4fe2a846"),
		nonce:              decodeHexString(c, "bfeb2d02c693457fa0f27abf"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "91dc514e8749fd762728bc8080094ca4dd661736d928208a"),
		expected:           decodeHexString(c, "9afc5165d53ff8b1a8c0383a6ac759ceaccbffc2a56c3858026b7346b39cdd6b0b8209b0245f0ccdc667c7cbac4a8f964ddcc68ff44d5e85dfb1535c4044445d212290f36e929a6d7c747aa2e9f8feea465ca26e4c5a2f06b0912326ba379134741e284db571e4243a8a6978719a93dc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_10(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "4ee31b0153e3d6ba6c93be092ea6d122b01b3d2a2d481990"),
		nonce:              decodeHexString(c, "786dbf991c62dc08c97d95dd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4fab0f16215e6f78f52bbc2eab9c2fb062118d24987b9d86"),
		expected:           decodeHexString(c, "48f6f7b6bcebf8ca5a1a9093d8add4a80be7c17fdee602205b378a1b033b8c62f2bfd261c35011fcbd852faaf61876d4f5dbe3f30f750c99ae0c18444414cccb740d7b45a35a7a690dd21df761eed908fafc69a12d7c165871e753a11cbd02cfe207720d444857ea66a81ec3b2452899"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_11(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "07cb6258d78adf18c39e627ab1cc91d7174fa91dbebbc824"),
		nonce:              decodeHexString(c, "025309dd03fcbdfb72995c9f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "026e9e83bacc67fdb828948664a20443827a31a9e6cf24b3"),
		expected:           decodeHexString(c, "dfe6a6f6e4d967a49c694e36f75611663f4c52b7fb723fa07ea10ed03dc49d82f9ec308908fe4f54a3c48b991d6b34cf57179804105fe5aef7d428d101ed77b106f9ce2eafe3726570f2416f701243e5bc9f5731457b64dfe30777cb46189327c5b42c8d4f9f97ad8b0aeecc39978048"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_12(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "2f7811ab4852a0b53c75c63ec187d8b938d623630aec2263"),
		nonce:              decodeHexString(c, "bb15342ef51a854a1a362838"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f34fa6d3ef24a257f74e4a7a6409e6300949407938a53114"),
		expected:           decodeHexString(c, "fac3de71f942ccfc4d43c9dc357b9cb8ba25637952446b8157731e70f67a48ff73770832fc287ca8a53ed09a07f37b3afc2365e71e82ee6efcfb9eaea4a264229f009110f350afb27ab897cd74a3b0af5893608f55fc3a1dd279fa0e28ea068ba1cd486a7f41098ee5f328c876fcf7b9"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_13(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "5fd0f7fd210360e9828471769dcd3a946e610bc50808e177"),
		nonce:              decodeHexString(c, "0ba35f8faf6c8d6557bde2fe"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "851e593673f2f4621628808b9f7af6fb2b2a60f2e800933a"),
		expected:           decodeHexString(c, "ee5b70e0ea56fc77e1d3be87bed47761ad88181a7165e747ef3c39beed8021abfe55373907e159688fbdc0d1e9dfdf46aff659c3200b698555b5c62fbb34b4e207603da609fecf583e7e783631b1bb472eb531eaf6cb7aadde45a1cf36cff87e9727ade2d6e2cdc9015506dcfd0a22a9"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed88_SHA512_224_14(c *C) {
	s.testHMACAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "b94e2bbff7a84cd9addc7c58fb189c4ae6ebc9c7ed877610"),
		nonce:              decodeHexString(c, "981c887029d641f0e165e4e4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3339cbd3b27ddf02b2edd5e6d0c635eeefbc3fee1081f794"),
		expected:           decodeHexString(c, "9953c6d366db7b0c8510bd3afd9825620b821bbd92f8416935e173c92a181544e9f4556599a1d6ded635c461f07eb506da5e23748eebac89eb3469c8b222ecb6735568209eee6ae06a76c321a54f1430bfc75ab22051456eee66bd4d5f21427c6714929171d214e55560ef27b4024061"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_0(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "3b71c65e1e1300c68e76de1a5ec78eabfa22c875c7237562"),
		nonce:              decodeHexString(c, "533393bcfd221c6685c9ff8b"),
		personalization:    decodeHexString(c, "f3e6bda2ab7b0b0c2e348982b6e327764d3516671edbc585"),
		entropyInputReseed: decodeHexString(c, "b948e90569624b7c44c3511e17b4c2ad244ccfc0e506fcc0"),
		expected:           decodeHexString(c, "eee208bd35c9a14f3f4c785359e6d4c52676288fc666a0f375229bfe8aaa856613ea97ad7f93e844bb49d92398c6bbc2267ace706fb04815e46dbeaf40b311564bc740f270ed127eb3c0dc5393784d5b8730a22caee381e4959d73793abfdffa569b540f7c912e5b3b688fa09feeb284"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_1(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "a199266d41f50d4999f35618b3337ecc7f163db01573123e"),
		nonce:              decodeHexString(c, "dda762ea9829b39fdbbd0cfb"),
		personalization:    decodeHexString(c, "da46322dd16235cfc286ac54fef17c857858cf512d286aa3"),
		entropyInputReseed: decodeHexString(c, "464f81aa506c27a9a4168c686411035d369da4b1789a715f"),
		expected:           decodeHexString(c, "69a396c685784e2c686f6576b13ce044a0090f9a83994ff901247dc79210c5dbe23d42c5b583c09f92822015f059ac5dfc9cf1e57fc33d1ad4110e749d8257a43b793d66f0b9cc81fe559e4f26e64c5ceef3751fe565666bcb1587f4b8a1b3ddb47118c9a3e9894b39c1a80ec11d527d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_2(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "81a0f78ae6a29d521e73fdc4d2e7649fbb7eeab2d5556690"),
		nonce:              decodeHexString(c, "be2ff4eeb91d06ca10b964df"),
		personalization:    decodeHexString(c, "eeb22ae039d342940154f9c28ebcdf25d1b4d1e1646cad2e"),
		entropyInputReseed: decodeHexString(c, "f5d522b1967e7674a721d4be134886094cfb6975bbf98a04"),
		expected:           decodeHexString(c, "0824d955f4488fd2f52317737d931dcc97ec33b169e7820aca3c7534de335a8ce6bcaa9f603419b0c5789043da541fbe4c8d2359fcf740edd789f7ced0d584812268e0273a50ca87dc3e0aff6eb6200a6298386eeb9d5384385ef491c865c1a2d99dc8a63f5c98f41f85dca33436ff82"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_3(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "fec197f746c4d7f4a306363c54a11a02647219af014720e5"),
		nonce:              decodeHexString(c, "b366c92375b4108e20d3f040"),
		personalization:    decodeHexString(c, "ab98c401196a3a7f60f8f30a059636c240fc2302a1dd5a58"),
		entropyInputReseed: decodeHexString(c, "d3ca8ab4f510e98e89031c15f69aea0310cbe16a8df5ba1b"),
		expected:           decodeHexString(c, "0120ddf4a372ec7164bdcce359c5bf312acfa380248320a8e5bcc1e65c7d2f36e53e2d795d8624dde7151c9bc0e1c7aea5e0b1a43383fc3b282e19643a95081b61f3502e94bc8264f563f51ccdf0659c5a409d4ead609d25e30d49bd72bc0917111dc727f8205b83daffaa07049ab17f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_4(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "1dc360f5b069195c190f21202f279f1ab12bbab9912caee6"),
		nonce:              decodeHexString(c, "ff080f1846357a947abac9fc"),
		personalization:    decodeHexString(c, "561004a9be02c7f1e4148ece7d17344d76e3467c26e49976"),
		entropyInputReseed: decodeHexString(c, "ef62012760e647d3a6c88cc4a58fdff36593d2f794ef4bb8"),
		expected:           decodeHexString(c, "81cb01b06168a1b474ef15e95f677182cedcea3591fcaaabc1f4aa4b1f8cd3a1ba0ec3b7fbff6d9be460a0e1fd888f4445dfb60ab32775e15031ae322223e7defa18e95ae3ed2b419753fd6dd04d478ba303793e4ec20f6f36bb7fee52a68c239d82867bc079b79919adf0715230e305"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_5(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "e5c25e2e5fc0317392a9958c8200c91fb76babf325939df2"),
		nonce:              decodeHexString(c, "f0611998413d4b87301f59e9"),
		personalization:    decodeHexString(c, "bfd6f8514360a3b9cca7b491aaf140e9db1c4a1a1ce95c9e"),
		entropyInputReseed: decodeHexString(c, "85b02e4586a592aa1e220e5cbc6df3899c01cf3156335e5a"),
		expected:           decodeHexString(c, "575b0370b14efca71020b2d68336a93278b1d2518ea2b565906afa6e1cff20880d59a43975cf81d4d3f639cecd56c7100dce9cb794603de09c17c5b4f32579d05ae2351128817dfe93b7f6e15e5f5ad1b0d0b90606af1374205e3b3c08711135ae7f8b943f5d9567c6cdc8da313a1f20"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_6(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "4d9b26e5cd3071b2393f81abbe89a5f51d5a97b604520bdc"),
		nonce:              decodeHexString(c, "5d0c1720c64e45322f1708a1"),
		personalization:    decodeHexString(c, "0f83d58884e6502a2f55836f2f729f074a933f798af4beb9"),
		entropyInputReseed: decodeHexString(c, "31845159ba64bd613170f10be42673dcdee09557b78298a3"),
		expected:           decodeHexString(c, "afabe1ae872ad7b046b6c2d7effbfca0475b57845b88326e83492c14c58e76faf180064d8b6403f8e6fcb70380023fe085fa992b898411843e9c7b86f855bce1c26cc383c94b10698a0b5c8440e4b129cc4227f23670b06985e5011cf45bf56221e101295dc92277923fee406d8ef26a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_7(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "06d96f22cd2e040cad60a9e1e615bfb32e24a7793e3e65b7"),
		nonce:              decodeHexString(c, "0bfa77e47dcd621da030d5f0"),
		personalization:    decodeHexString(c, "d0c11788ec5d8a6e1136225662304ebc030f9edd46f407a3"),
		entropyInputReseed: decodeHexString(c, "2116a8a0e93c75800eb60a40a6efcc0d53b3e630ce7033e0"),
		expected:           decodeHexString(c, "bb8afc873a830be08241de7fa2a13d5445621c739a2106d6fd17becbb919e813694697cc165f5defdcd9ca8146a0e923b6a1a9117bd12de71e972397b3c08bcbaf08d3d178ba775057708624d063fa24ca35d1436c15ced02ea335437bfcf231c8a3c6fbb15b5c8b95c5f81b654557e6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_8(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "05c025dff91622df62c2ca82547bfd848f6c63fb31426bde"),
		nonce:              decodeHexString(c, "ff7139a52fd075cc48edcedc"),
		personalization:    decodeHexString(c, "8d5825c8b8cafd977ed197619a667b8c6b36e8383148cc4f"),
		entropyInputReseed: decodeHexString(c, "654c7986837c991d38a4b900f81763f0a5fbf20671e1627c"),
		expected:           decodeHexString(c, "a0d76665262bf037004ed90ac91fe6e56f124f356de0d8d09b60618b24014e524304d533a72edead9d9050383042daecef27674659e114c424ec790d41e6d760f60731d4af84e67b3b800a83977ad41a6c1023c6889dccd0342b2e2499febd9e3ec3f62a160ca1eff936c76a01e579df"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_9(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "30bd9dfabd680071017c5adb06c5701fea28c5df89fb128f"),
		nonce:              decodeHexString(c, "5b5c02b0c96381ee49fd5ede"),
		personalization:    decodeHexString(c, "eb2fd5cff622f943fba95f727a6d399d8221320bfc6fdd4c"),
		entropyInputReseed: decodeHexString(c, "af22432ac7b47c2c98b7025da58889bc9f712a583bdbb17e"),
		expected:           decodeHexString(c, "d616985cd78766c33e4d5f6e34c98b379686e6759330324b777066027f3926b04c305d3333fb455e40461a45fc9bb306cd30c2a8d534a3faf1d27e71a18326545398b700d6e5b221b292370bf96a9c97565dae1ce05293a4fea4d8d4a65194027a5b292152ea394730d5ed8e7309d44b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_10(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "fc8c55c96055a1e3670464b30b36235152f9b45fa41089a9"),
		nonce:              decodeHexString(c, "193447cd389eba3774dbff90"),
		personalization:    decodeHexString(c, "37cf4e186cb162cea7da75151038bc4de6ee086ef5f425e0"),
		entropyInputReseed: decodeHexString(c, "88c7c638006c8a7d181c928597d0ea6cb5130c734f6cb4af"),
		expected:           decodeHexString(c, "ce821b6d7f530dd956f69c9ba2b059d9075875e8d6dee6e981b3399b0aba0c2875510276dd0dcfeaebf2915205f3b8a68bdd53891d048fa26566f0a5674319b3ef73a26963d4abd2f503f1c7e5e9547d8526421c68ef3ef2be7cbea72ff83244b28da7c72d149823f4ee242dcd0b53f1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_11(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "6651dd86e1df7245d3c0980e9aa8b40ad7e82c4ac620e923"),
		nonce:              decodeHexString(c, "3e33d91e09b2f02282e5c79c"),
		personalization:    decodeHexString(c, "ab6ed236d6050e858f2ae64ee453710fa43e096ea046e062"),
		entropyInputReseed: decodeHexString(c, "8ee055e599d67d6218787c3af6a0420cd70c66fea9907f92"),
		expected:           decodeHexString(c, "2c2e9c197c2e9f2f7aa7bffee6c7b3ee8ed27bba5418007eecf02fd0c82740888320041912f26277a44d568989ba588798b5521c071d59939a2dfaf6594f713214fbae1609c5634cf755e180d28b5b9786f82aeb7ad2ad2567bc1602504a66dd3ee4e47d4634d2769cda84226182f394"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_12(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "0e75f059024c4942f4e40dd09af07d7344af593d10590fbb"),
		nonce:              decodeHexString(c, "c853cd1561d69d70b1423c77"),
		personalization:    decodeHexString(c, "92e877f30c4b95cc7485158d536a5d70358ec07d059d5901"),
		entropyInputReseed: decodeHexString(c, "d0786977072d825977cb5922e18fa446a635ebcb07a21674"),
		expected:           decodeHexString(c, "f0bc92cdc73ce6de93020157c0ba218f4cabbe47e07955ce2cb3d73372709bafc4b13c28eb126fa976c7dd068b74b42df37b6a9ea5e323fbb2a5a4b05cb5f9e4131e0298f93fdc497de86644831220e4fa94b768a9693692dd1f1a1eadc23470f0971edb515eda75c73f27a50ff70a0b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_13(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "9cb7ab4a6abfa33e757247dbf5f4917beba9c7ddfdd570e9"),
		nonce:              decodeHexString(c, "48703353a3b6aa174ac1f7da"),
		personalization:    decodeHexString(c, "2036f8c933a7a8746ad8c8deea7dfeeea6182ae2724c61a0"),
		entropyInputReseed: decodeHexString(c, "8b52689f2342b921a67c4f67eeee9613949511c6952a98e9"),
		expected:           decodeHexString(c, "5f57fc421ff0a4b19d1456432f8a56960cd8c8156a8013b70658a6493a815d1925f856fedc0258114cdd2813c23b908ee4278eeda86e658c319e327227096d4b4558b8cfc327426db1a912e42c66ffd3b583be8d96963701a1a58b3f049084c5fabb886a9347f2e3d27e75f12c786d2e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed90_SHA512_224_14(c *C) {
	s.testHMACAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "8c41f48fc5d81c1948a246ad78d4b520abae54c46a5fc505"),
		nonce:              decodeHexString(c, "2084a552597f359b5237214a"),
		personalization:    decodeHexString(c, "9b876b10c1ced818c0e7c8785074edde35167c838638139b"),
		entropyInputReseed: decodeHexString(c, "045393dabd2f6627eb49758c506e87486e22b1cc4bbbb061"),
		expected:           decodeHexString(c, "45ebf0c7fe685866517c540ee2c837ed3fec0ed90a88ace6e3bbca6e6f9e80d0eebed267a0dbaf3c95cbc26511a44866f8dd780fbf92939e72a638a70a46ddfa6d1e2201ff48550154d93e7a9784a2dc62a78ad10e45d4b6e975ca853ffcbc503cea7c8d2621a6db578ce4943b620dd5"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_0(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "a25ae874a371eb4e286341c66bf672a17bf862b0bd963534"),
		nonce:              decodeHexString(c, "1591893017dc64bed56c8d23"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3fd442155ea2b0042f10f2c96fa7d95ac76e28c9c6188dfd"),
		expected:           decodeHexString(c, "ba6416688239c08528fe0c634c1b4a935969e2a7c29716f83c5b9670a68512a8b653e61b4c51eb15dca75715ebe86e012568fb9d86947327a3becaed68bc036277c2d19a705b933c2c9d31ec444498702aaddb84c2e206ea4fabf2211672529e34dcc8876c26c2e1b1d8f0d961f34c5e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_1(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "ca866bd467e9352bad8728e9e00ccbdf2aafab0f5a7d0698"),
		nonce:              decodeHexString(c, "fd1833822f83012b9c51f679"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bb926cc5a3a6e4e7c9223363d6db2eeeb98eb23fe776effb"),
		expected:           decodeHexString(c, "1edfdca576ed504635d462370549c6c10f4f3a59a63f4452e151980803d5af819e8dca77eda7a853f1edb81dc84e22fce5089e903ada7c8bee2f10a9b7a079ee2ef0381f7cdc158c86317b2dda35d19509c00c79921fb422bf36536721916d16c7b764d7db4791136ac55a90467c39c6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_2(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "aee56c125132c629b3868dc6eb654133b455c0212f93a8f0"),
		nonce:              decodeHexString(c, "4dc32adfad3df2a49ee4a07e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d3e7a27331f41c98406faa3fd1e759f1c8054b9c1923456a"),
		expected:           decodeHexString(c, "64e2c30148242289223fffb9809b90873dbd9a39c068162f3c22a46730567e2140decb167b8c94ee2c2275dae546ca277ffa03a7efe8665bd4a36106999fe31ea438e49ecda0b7750730a84bc9f23edd4800b381a1f73ae94d5c41544f91d7ffcf50a52f7752ae3ea4f7e2e5a7412d92"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_3(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "fa7df0629177cdfe8874212c50ddb2254ea26ae9719faa42"),
		nonce:              decodeHexString(c, "b518878b86bfacfc1a16eddd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a58b1791e5900161677b9f84f2f514aa9f10164db6e24078"),
		expected:           decodeHexString(c, "c8452df036b309968951d17cbea024f054b4f6976898a0d1e936228351fafd903594266f6573d665ce2ec6565e211f048579ababa5f13bb814f10cfb2df910e46d6e7947218ce19d0f69e9d459b0250e795c1c234aad7e7772326f3486e2e8a0bed6b500043d2e9080ef683b6606b46f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_4(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "1bf0b1ab1e02087055d5044226bcbe2d54d6b987c9c7bc7e"),
		nonce:              decodeHexString(c, "c7312a50acb568fed73734d3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "312cf869d64e083100cd3aa91fd14ddc70531bf06c75628f"),
		expected:           decodeHexString(c, "7d76000a728195a00a98fd051d798c3a4aa01c683e11653de21b7886352fa25d7d8b6095df79a3c6f89bafb4fdcc54896afd4ea71aa1d5ba3a6df459f5c1bc715e343d99b1697884ff0506a7ae394a6e0436be2960eaf93cdd8ff08bbd07f3cec24b7356d33546594f034cc4aa7a2d91"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_5(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "ecd8ccabdc8962f4ff4c5cba37fac050705217b33e251ea9"),
		nonce:              decodeHexString(c, "2b1896b055e15a85484355ca"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "39919475c3124b63ec80ef9cc63e4d4e470e074427842ad5"),
		expected:           decodeHexString(c, "fdf6835904a8066919f5ed0a28266c664efb912a3571dfbf8980cee36eb6ffe495e8db7919eafc270b9f408056f7d6c1cdbe3541fa2ed90c424bebe155450e5e327ac51c7960d872bbc4ce90f430b5726aaef3785bb8557de2f9b7411819179d4531759623065f1207dc2f6ef4e96e6f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_6(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "75b2cef606f11d5aba6d60d597419f309ba449007b9e3566"),
		nonce:              decodeHexString(c, "54f84adb8e22e438ad5898c9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d13d374f53624334db0b3b76da2202339a5ce47b18e1b78b"),
		expected:           decodeHexString(c, "ae2604a3700ced2588ecacb40d74601c7efaf189cf608b8e125c6d1465dc98c349b91184b7514c88fafa34f0871f688be0eb320c8c017a0c59217d2a8234dddb262b82adcd8248b671aa3f1435f6886c563c28fd7573dd239308cded26ef52dc70b3c516e5a932e8c3ba518bca1919c9"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_7(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "1c4e33465e9a32d3190128377bcfdb8e86b0824f008174ca"),
		nonce:              decodeHexString(c, "92f4e3c32bfdb2c0e6aedcaf"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9fb3d4bfce53149d0c48f96eafef9d21547ff75af2f53237"),
		expected:           decodeHexString(c, "bb596e6da855f46b66da66ca549f1e96e6fdb174615e5064ed36d374a97feae3369f171f4b902a092cfd90fbf3ab77a8e4ac9e51956bda022e37d351099863b52b37517788576e26c7d7946dba0bfdf03749ba150ef1d96eeac6e86aed61f034a55d1a65d56c55813092f8466bc32959"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_8(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "542c6a24d33f522574f6e747227c84a20a1066e67f2f882f"),
		nonce:              decodeHexString(c, "b0ec022e24106181c9f6a616"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3d993d0b91df31e723eeea00e9e3f06a625875218b25309d"),
		expected:           decodeHexString(c, "81b134079fd83d7e828589f04ad39f0bfd55791fee63ff07a919007ace607e2c77ae9225b55f734cbcbee7749a194352aca3d84c2a0d7849e7f57db9031841c87002405504ca723d4020fb7a1b109a66c2d5e48b4e91f4b1474ca4209254f50c4708562719aafcdfc7472cac6ee47fef"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_9(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "25ec7fb9ff138d761c166930f7ba5b6e42718b9963576642"),
		nonce:              decodeHexString(c, "92eb6609748d8bdc3c46d567"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "82eafca8bb450ec431f10505c80cf2359922b42fceaf951f"),
		expected:           decodeHexString(c, "67ccc2e53fd5048b51a2ec35ecf49602a1cd89d44af54fd4a82da9731dce4097547418a82f93f97ddd0e2ee35dcf6579b02ef98cb4a1995e36e0c4bf94ac1045e0ce6407bcbcd140c347d9de8b73eb7cbbbdb8791d2d8af8ce52d561c75bcb2902041bf14130e46adfd39e85aa3c279a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_10(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "cf18fbe4b5e9c604cc10112699e6c0f429241a49ec5e54d6"),
		nonce:              decodeHexString(c, "af99a459c9df1e55c369bd97"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a6458abca9fae7fd9288a8858c6ba5d05d414b920f08cb22"),
		expected:           decodeHexString(c, "a6aa0c03362908967e02c387d85878b5ca7f6b21266214b79af1af8fea916ea42ffe520d5719970085428780de6ab401d5a910a4cebc338c645a363bcb1971f42d0fb61742447d8336b8c7c6dd971a6a60346cd5f977359b2e66fd5e17fbdd9e109915723464a28aeb323b9eb6ed5823"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_11(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "1b874233d173d4833c144bf89497c9839ca3f4c757cbf3f3"),
		nonce:              decodeHexString(c, "3e080be7716d007bf1580d69"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b396e3eda7da21cecc5cb0d035aeeff5ec2cc0f2d422814a"),
		expected:           decodeHexString(c, "d81b6cf8147e4f6df252033072e75e8d5a946b8fba29cf0ef61c9d5194113e62b97f0c06f6aa40fc8182b8d6cde209b27e79fd12ff69e6e73c71c7c95268c0a01910dc955b1824a7a56fe09b445e99d31763e45283e53041397608bc1345bdda269ec3275b07b88561de1dc52d895324"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_12(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "1fe904788516ee55e579a80f8f66b5d8f2ae7c5bdf62b6bb"),
		nonce:              decodeHexString(c, "1064e68c037b2a7a7fde54af"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "abe467f3cffd299b183c2c602b4ea9272bc786df9566f04b"),
		expected:           decodeHexString(c, "929e96217e8042c2a1b2ab5835905027d5b9057f882fc5229e6c0ccf2c05a089aea1cc2e034ec0a0130d291af9cdd316ffa0ab0b436c1431e0e747f340a3440a56151c22ce4accb3f0212ced88b4b89b2de36c88cf40f233c136e13726584079590af2a49d6896a5a4a3dbf3a95ea826"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_13(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "44ea83b95d482cb7dcdd9cb843b0345269e0d7e884cb55f7"),
		nonce:              decodeHexString(c, "0f0de3cc4d72f3c11acec003"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "aafa30d877e0721d30b5d2011df35239f9c793b3556c9f2a"),
		expected:           decodeHexString(c, "734d97cafc06a571a82cebd2fcad9f79dad5320f5d035866564186d2299f039f7da105f56e0b0a417f0aecf8f04f742f7b106afe3d773a128dc696b791f0a32437124762610d1d7850bc3492e9bd5ab326af43b8c554422a36ff4f0db863fc5f036565c9434fe8ee7bb4dab0204144dc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed92_SHA512_224_14(c *C) {
	s.testHMACAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "494ecc81cffe26c56e120d66f770f9a2af23391ffa5e973b"),
		nonce:              decodeHexString(c, "c24185c49b2633fe1ef7c287"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "943d1a01bc8c6c5a83b4ec69d5524a47e8214257b26cfd1b"),
		expected:           decodeHexString(c, "af0109c0160d78470de527457b2acd5e7f30313f9ea6afa9c375244d06b71ec730845f0d6ae9ffc52cdef3e5c3190918a34074c2342522ba6a44622f818a645679a6eaa938c2ed0ff090b549fd6c65b3b8c067a1b902cada34e5acb7ba4974c5ef90a553ccc67b516c1f3f0b3263c408"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_0(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "71db638a8931e94b61f5e915d5e0192863fd5bb089af4455"),
		nonce:              decodeHexString(c, "2a6ccee7fe096c9ca7f3c1d9"),
		personalization:    decodeHexString(c, "162b74caa7777a4141d08aa44e92c329f52de6b72ddb1d20"),
		entropyInputReseed: decodeHexString(c, "21ff611f6ba5a3567946040662a0f7c79c7354398a5210ae"),
		expected:           decodeHexString(c, "117de63aeb0d05031d4161d2465640464ad1841650b482f3aa8f857bf4cedff04dbdc5864d886a642824d55fc7362487c28e130d9a1f057aa42c0372e46bb73d122ce61fdcb6cd65eb30b550aaea3c2a97eea12a9ec271258844bfd1cfbbdc022a12c814e4b588213d895cf128f910f2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_1(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "00db114f61f90ae8e6741ed108e2ce6494d6ad3125fb44bd"),
		nonce:              decodeHexString(c, "6a3748ea133eba51bc6a324e"),
		personalization:    decodeHexString(c, "dc99df59108bc30b951edf84938573619e4b1eef1b8254d9"),
		entropyInputReseed: decodeHexString(c, "8976ac2a9b383faa4073fd86fdfbdafeae02ff8e00ff05e2"),
		expected:           decodeHexString(c, "9ad52818825e3ad421dc25744400bcd55c5e33feb1dd9f196877fdd1ae3d8be596c0d7ab050174dc4e6ff796e4fcc0f6b6e8a52b4765a00794b4874524ca2a1c9eca692eb1d24dc7a7cf810e16e9025194a8b0ca0dec3336bf1a336f284cc0e36d730cd2ae0577e6f7d851479d6c0954"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_2(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "b7e10037725d690535ae1ee772662ce5fbd0a79a7ce10736"),
		nonce:              decodeHexString(c, "27b57f34d443a7314fce2841"),
		personalization:    decodeHexString(c, "aae78068a38135ddf40d758dbfcf2a670d7b5e079e8470fb"),
		entropyInputReseed: decodeHexString(c, "17b6e110ef3eca783822fefbb2a1ffda14518637a48654a7"),
		expected:           decodeHexString(c, "e4c2742d9081c297f52cf321a60f705ec7f4fe05e5b76380a308dc012dcd5c60dc60549b4755f7c717e00a86a3b484f208984e9a8caedc78f2110494dfad26436a9b4099c47570c43265f9cd494df681c806f74767eee66ee66911d0a8e2c939fb55d94eccacd85a7ee72f3bb6b3fef7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_3(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "9fbd08233e25ccdd358d9f722494fb7b303f490a3cac3944"),
		nonce:              decodeHexString(c, "d31fcde7e6a7c6bbbeaf19d4"),
		personalization:    decodeHexString(c, "3719fefc39558b4331175fdd661ce16853b82e33c4301841"),
		entropyInputReseed: decodeHexString(c, "c26da236137628bb8e080e8dfcec1065e085cd73f0410359"),
		expected:           decodeHexString(c, "c6c5e7fad7de8b2ea9eef4c98533138836a37f1f2bb69d7640d1c993449cbd51c6fd8a0b1bc465037af3859dfe875f6fa9516afc274942d0a4259485d0830ff316b003a0ed22d9e0ef9dbedeca4776d0b0e5e23297d7caad85595e61651c26937c4d2c9363137b5607f37ea7b5886722"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_4(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "f95320e95e6aa94a59e5f52b9210ffa54eefaf66cc0cd0f0"),
		nonce:              decodeHexString(c, "9fad3ce7dc0fcaa180455d93"),
		personalization:    decodeHexString(c, "1ca5afbde9e306e2a56afb2261b5a8530c4e29306659df08"),
		entropyInputReseed: decodeHexString(c, "30e8b7ba749319f771f3e855f4ae536ea10c53ec6ae8eb7b"),
		expected:           decodeHexString(c, "de71e893388e392d32c4b30882f638248fa0a088aa60b400391caa564959d363c7cbad7abf0c0eb7449141f43aa36785df82393b61b45ff73ee429723f2c85c822545c93720da7fb44fb469a105f94853f345f46c6cd61f27b2d8d9f4e3d1642004cacd46a90e6e78c8bd27e15a41a95"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_5(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "30a3ed471f0c71e1f0a018b5ee3f5a572a19f490c9651b2b"),
		nonce:              decodeHexString(c, "1265fc6d82954ad9fe0a6b90"),
		personalization:    decodeHexString(c, "3858ae89dae0739a117ceaea08d54ca18c739ab105ea12a9"),
		entropyInputReseed: decodeHexString(c, "14085a1937b33cb3a80812015791d286c9a814bc6ee944c9"),
		expected:           decodeHexString(c, "2cc03cc5768ab0f6a8dcfa5b5ecbfe2e4ed33f0e91e2845ca0af61e3b7a43e1fe7556f06132824d7e60b18e99dba21f4656a0f4f06de7cde034cee1fd3c774f896d0f955912df708c57ed727aaf0b70123f833a99f2626a0765e18c3cac61718d98c187d8d8d69cfb8062ac845cb5b44"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_6(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "1b4e0c71c4ab5101b45212b181482e604c297f39dedad3c5"),
		nonce:              decodeHexString(c, "2535ab32fbec19eb04ae3dbf"),
		personalization:    decodeHexString(c, "de4455f57f6aec31c92796527ae76ae025dc1a2824819a6d"),
		entropyInputReseed: decodeHexString(c, "133464266d2886df55aa0b176b44b9a0a3f9777061a898da"),
		expected:           decodeHexString(c, "6f9442f4e5b551abc335dfbf0147e60e5778366c8608927fe055506bb3e8545e261b60d1e2e37f9913f357b6d9ebbf26743e29b8480973fcb23e09caf5fea955face0f38ce3e363c8e40ea036e6b0a3547f8672c7ddc815441b92f8395fdef9f6dbd2377994096196a682e7b37799444"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_7(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "2c0ae722e1e2acd11d45a515f6902b04e7a566a68333eee4"),
		nonce:              decodeHexString(c, "a0b6be5864bf4cbe4db3324c"),
		personalization:    decodeHexString(c, "5ae801a9e5a358543fc8bd085e604614f75539214c13798b"),
		entropyInputReseed: decodeHexString(c, "53c433189baae9d187d677bc778083688e5861f6efa408e6"),
		expected:           decodeHexString(c, "ea05f36496fcdd38b95b5c238f5d71b336f62fd24d1f9774235832f476b2961f4f05e95db1b52b5f77acdf52c4e53be26cbe90cd3c9914b5e918a906bc35a798cf84db05c0505766f2a7abba6a01baa8373e6736150a664e44dcde0aa9c77f17b9c5433342cf0206c8f995cfe5d056b8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_8(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "a2d335aacf85e191820f855afe1c4cebf4bcac0c072ee2d2"),
		nonce:              decodeHexString(c, "a96b48724bd049bd8b2c86de"),
		personalization:    decodeHexString(c, "3f8b36d23c853b19de0ca0fd0c7b8a8c8a3c847a3c1830cf"),
		entropyInputReseed: decodeHexString(c, "8654a20575a335a6d19bb4c907a71ab93a82eb80f436bd07"),
		expected:           decodeHexString(c, "abe42381d73263daa3a86c895da642acea8080f37b784c10c5c3a7d6119b6a0d21e06c4b18c1e2f3fa66da5b1095f4d1379c324692e4736164da02dbc6a92b263f2eb4f2659a68667c5beff60515e4c8fd5cafb1c539f5a4ae3b25c880dd4b1f2dc8adad16702910e2d59ed7867b91c8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_9(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "a2d1490e45b4c79b5ef10bc7d8e9157bea9ecdd640269b70"),
		nonce:              decodeHexString(c, "bdd0bde9d094201a463dc663"),
		personalization:    decodeHexString(c, "c95871a8f46373f33ba472df0837072a32da6687aeacb455"),
		entropyInputReseed: decodeHexString(c, "6be1771b382ee9d83542923a98cb682efa59df9fc8f32c8c"),
		expected:           decodeHexString(c, "9f01d4f7cd697e036d63c07c50743f27dfcbedb5e939e4389715e3193237ef79e12fcc4cc88869c34c92824865b63d94d93ab966b6cbdb772064cee8e25895ea7f2dc02fd6d236fefcfab85f9949f2dc4a24e9e5500634d843f026e094580a088694e402ee5710d3de2d4419d2500c1a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_10(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "a198ac6bbc4775b2799dc2f377a971151a96208fa9fbec57"),
		nonce:              decodeHexString(c, "745f5e145abd2ce3921264f2"),
		personalization:    decodeHexString(c, "73dbe8c67329ec9eabc3b03e7d823d57e633d096abac7caf"),
		entropyInputReseed: decodeHexString(c, "9376cbbe99ac4630f27d194072d298e439250ebc0e74a103"),
		expected:           decodeHexString(c, "9d96deb50ba35c535ba42887d7b452c7c609458002d2eae140bdaea2e4d38d2ec2d78d6f32cb0f56a0e8f33dd9479515a1ee61baa7e89dd41f046d3415da240504673972cf70fd2f27abd952d00f0cfc8dbb580927f31194c2d041f7bcd81f2513d780dd8b33e369aa833e32ac352db1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_11(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "579692ae1a2667e746a37d3de8051b9f632a801dfac0ecf3"),
		nonce:              decodeHexString(c, "ae9f817ce13b6ebd3a1ff000"),
		personalization:    decodeHexString(c, "b9e2ddcd206942ce6d6d030b2c35f28c1517c8ab630a46cf"),
		entropyInputReseed: decodeHexString(c, "c7a43aa1d9d089248dfb40d17eb3075ab54a031fe7f23d84"),
		expected:           decodeHexString(c, "40feb7dd8167ccdf6515c869a1d0a081f298c1b15adf7137d7fafbc130bc2e8e9150f3dfab325e85df565530b6f3bc5452268ce02a37923842a6ad3edd0be580e401d1e996ff356f9799db687b2dd36158d072f814ea817708af4997a6c33a7b8c7f968a78fce6a1abc0e4911dee6eb4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_12(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "ff68c531ba056699534d167202791a6d92e43ec5042e9a87"),
		nonce:              decodeHexString(c, "1d2ed0ab1293d8ab1c50f167"),
		personalization:    decodeHexString(c, "bce17f76f92696af89f42f7549ccd9a314f7b83fd0feb484"),
		entropyInputReseed: decodeHexString(c, "5b1143315fda61d766dd71789ee2a03e3fb5a420a0533934"),
		expected:           decodeHexString(c, "95b480068df3fb2928a96cf500e08d5613365bd2529eb97ea2b2aa3d338750a184fbd6ba0f46bc10ec72017e76d05c595b3a2e81d31f2349002b26ef4eaa3f6857b914d282fde58f52f9af6c26430a9097e5cce8950c3f55d02a4961f59166b7e47670f5946a63b93337b7e5ca008ce1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_13(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "8691221a722903499b43e0bfb10ec4c6bb7f036d3d18b993"),
		nonce:              decodeHexString(c, "99ffc3f9b36fe6c86bfd78e3"),
		personalization:    decodeHexString(c, "4c8ba13565b5f674699fffe111b4e1d739b2a46e320332a2"),
		entropyInputReseed: decodeHexString(c, "a78592fcfdda4a3e1d2cfbf40533a33111bf9fe2305fdd62"),
		expected:           decodeHexString(c, "cadc7702debb14139178f26e1aa8d786ec483c25546e1b7afb1d71ec0bd62eb614988d2459b54480a9b62a905439763b198dbb674bd91a8b3eddddcd5eee449592288251c5930273e27e157de15deac3c3978daef9ef0106108b52c1d628b969edd5dbba2e4a5ecae7d70294c577a1f2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed94_SHA512_224_14(c *C) {
	s.testHMACAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "2c231fa8fc0189bdf26892e89824684f61b56c24f08246c9"),
		nonce:              decodeHexString(c, "460333c6b08f8c635113ddcd"),
		personalization:    decodeHexString(c, "2fc44c54d9fe8a922d5877ab25a28c7a4618add00ac181ba"),
		entropyInputReseed: decodeHexString(c, "4afd7a679d6d8e5a81d4b906277b703fa481e2d5ef7d78c5"),
		expected:           decodeHexString(c, "4fe825c405746b9f3ebdc9bd95d053baa9c0e5a63d87a3fb3b394d6508bb60b7a894917b65e89ac859dd940465ba8e5d7a54951595ace8b75a74b727a86e6cdde34dc7bfa2343e68d47187a5f7485cad951249acdfbd397c45b94ed636fffa0e365df29f074ce1a6f11792fef0d60bac"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_0(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "4cc39fe6996774dbb52d99a6b5cdb4690f1d16cf2d365593278d9a3e48fd4232"),
		nonce:              decodeHexString(c, "8d2b6268603c6d70176a9ddd9fbad93e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5744ac9d6d4952b4ad7743d52c72f28a6ca0c95f904117fe190565136a7ce036"),
		expected:           decodeHexString(c, "162d52c3ae00e834d7cbfa5cc1fb810fd649ebfdfae32f2e705cab43c4396a51f7ad71a7eb5041d1a44bea46aa16f84e2bfc9edc1ee6aaf0b741bc68718d9ff32606e4d269e8c70b903ef6701aa489c1870f80453c1bb6070c31692923c5254abd0cfa3939f14828f9fb9588479dc9791cb4a00d49fcd93fc173a69d7253a2d2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_1(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "74a35c515f0d51cd5e1255b0abfcc01039550d960d54d5a2f2501d96bea02b00"),
		nonce:              decodeHexString(c, "dd5197656af1840df8838c9d5fc9f230"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fdce9f9de18415614b896d5ef307e2fc83b858107cd7e47b4d01073904f79e44"),
		expected:           decodeHexString(c, "7d3d69260c321695500e8811000437bf7f106a8cf8a045eb074c9ca42a7cd2f153f3a16e2b588a90c2565bba04860866e60d6c102cbbeaee7d2be6a72722d4b7ac062c7f757ef18cee858faed0d2a5e4c68583bf82a18b0da26440f59483317fbf36a23e38393c1568cd9857464c32682eeb070ec65b13a24d4eb89472c351ad"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_2(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "34e5f20ad79712a30dbde3d68f69209b8d3a41822e6e457383f5a31a77272d92"),
		nonce:              decodeHexString(c, "314181ebd4794f416593de382559e576"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8009c9f89dccaefa371def94af90c354a42c52a5fb87eb07367bb753a871502f"),
		expected:           decodeHexString(c, "56fc16fe07ba27c27835a69b64bd351ed2036b9076f774d6ebb9bfe7ba31ec00883259c0b1c37887f529910609306b38da3eb0d337ac1d30fe555c526e847c17aadd5db76adaed83e95cdb370aed4715421adbad5f9e21d3124cc3ab5cd585196cc29681ff18e3e39d20f70276f0509844da598f81b2a77b814675012855fff7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_3(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "d0261152caaec4e139b89a6b619846d440e89fc6f692e7775625418711e0d077"),
		nonce:              decodeHexString(c, "286db8038721aa2ae10c639dc65f17ea"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "dc6a420a15730f5851a980677408b0aa4855429b4bcf460286874a2180b3df5c"),
		expected:           decodeHexString(c, "13a8ad51d6c18a76528e11892b6aa38a9ba3ab600d1a8ee06f7bf8b8f68571544447fed9d767c63e1cf1bf37e1a5f1c66560532554c8663e2e146080a70802326793aa3940ef6612b9981371f60cf9576d312644113bfe75f5b7ee02b634f4ca3a5931ac0aa3c69ea6444274e70ea8034c37ef9866eddfb6c6bd265b8943bcf3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_4(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "76e0201f4fdfef093ca593707fb08b8e61a5b3d382670eb2194d126d31f829d1"),
		nonce:              decodeHexString(c, "0ea47a186899a39961ba5c2fa1ce7cbf"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3c237a1a353c32adda33177735449e7bd99c833fc1a8fea118582c13e8048bcc"),
		expected:           decodeHexString(c, "1401006744082ee8f38ff823f0b3f3aaa7adf5562c13c1611b4db3ae32766cd0acd65babc0ead8ad592d4cf0d2acd15004bd3d077aedb7a9738a1fb4c5bdc8d2247f74d183c16d93924b39d12753178a888461adeab35052f7d768254a80b050367a43e5ed24cc7dbbd49978b9aba8b8d642b873328342e7e4e4010c63e6a3c9"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_5(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "7b47a178d22f7d2f813926d6a2cff4269a13b79cd703c1adb371609772a0db95"),
		nonce:              decodeHexString(c, "ece57f0844d19221e7de68da25f2758f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3d7047f763cdf708101a91134e5d4ee23068727a6269a382feb368461f48979b"),
		expected:           decodeHexString(c, "d1f9a576762fa595c045880350800f1233f77c7878c96c5325ae453864fb7bb1a957bf3a88a237351f262162c2a4717d656436a9e229168146958ef01d17e42aea00277df35b9922fec1091896752ed54d873a7d9712fe2c6ebe6bf8de2f6eaa6923266db58cc58b1b5e7214e4ae9469ec41cee5a3b2e909f3c649c3651db161"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_6(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "eb6239bb7edc3dec694078455772a24c39f23050107c05b09950bdd51267dfc2"),
		nonce:              decodeHexString(c, "8be6576eddcf7ba42b4181ecab3e9c0d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d311f86e97dca63c5ae756b8931159883ea95a9783dad34a767ac327bcfb8197"),
		expected:           decodeHexString(c, "38dd2011375f34f90c9dcb0e603fe2849207da873f096ff514d8f0ca2be98b745f9e7d993b7b3ad8d62ea0eeabed72fb9ecf36c3270888c24104e3534333b7dd1cc48a65268c97f246f3a332dc7bb54e07e8c81b9a70710ecf03cd89d33249854ea9892db7c4b5939c5fbf748a570428bcdeda49a3b7f877b7eedcd2c109df54"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_7(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "fd31e5a8c66e34f9b05402456de6b2040fbfa3360067f70b19b935a382596359"),
		nonce:              decodeHexString(c, "4eff90e3e4aa30d745884dbf3ae05e43"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bbf05d9f92c63bb1ae50af2e974c014c2aa9ed51e73b7c48e3dbd67fcbb23c41"),
		expected:           decodeHexString(c, "baa69411e2ed7f77ac0a3dea42849d6e6facf5d306d008a377a24682dc06587a19f8c0e9ea229b6a38b1fc0cf5673c88583284bba51abcb843621cb2a147e5c7a733222d3bb0998cef93e6f776fc9fddda9dffedb9f3b96cb80b83ba5836afc0e042d8911aeba3d2dfc55a80036386b1d892aeb4d8c548356924233e00e37b96"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_8(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "68ad779e4708c00dc1ab8d8a7c50891b04abeb6921b8c44d23ecac71c5cf1dea"),
		nonce:              decodeHexString(c, "fc1705ae921c5ee9ddd6f6fab804c922"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6b46131248dfab34fda362deaebd7efd91d48970b1a3d7f73c2ca1fa5b40e88a"),
		expected:           decodeHexString(c, "6f047449f81bdaa76584aa187b3860ea6a38569b56a1be4a76cac5f690e95e6c54314163b16a3b8051ae3bd8ceee7c9764d86a5fe03f2e00d605fc55bf6ff0b3058733fcc36a2374b7ca55b687b3664986aaa99e17caf0ffe7e611b150b6dd833d6dfe5b87629a503ebefb46ea6919437d7b2e18fcbe9ab399695a8437d3686f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_9(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "91cdc218672d29b02faa890ceb0f660e8935eddfb9b446cf8ce146a52df440cf"),
		nonce:              decodeHexString(c, "98a42cf7080101a1374273608f705e38"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "934e460d3609b298150911077310db119be937563039e15dbb679ec3423d559d"),
		expected:           decodeHexString(c, "4788c37ab4f6c2dedef9e357b310bf9184c9f4dd72890dd0634a68318fc42e4813f24e53955e9d1cef582d2d8c2f6833dca5ce6b2b1f5c4b56062ca2c5dd1f086190d6e1002dc09a68a1fd97aeee23651e626138d27404452d0bafc476f462c4a343f799712c1c3242c67d83f9a89a2a853e55fb9c15d750fcbe4b52642b3fe3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_10(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "06afeeafe0ac3d7d63dfe517f6e93ac2cfac0d1a0ae6741a2c037b0a14be0ad5"),
		nonce:              decodeHexString(c, "6d419c5f206c07011960e43a80c54b2b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cf2b3ba97e0f9cd36cb6cb7e36a684403be206ac67962fe6e6a890f6018b7aa3"),
		expected:           decodeHexString(c, "eaf1351fc62a3118caa8193a7783eae8d07452a4bb70700c4a36d0aace85f7eb11a168585ee9f26979d0491a1bad952aa958cd00e8d3ff1e23883ae98e565a31b98d62d6606bdb891ee7c6e88dc173f4b2d0d8c55b4e65063bfcd8a25e7f75c152317af1b346cf3875543b6f7b281ef853d04dee173b8cb08e070d34629a91f4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_11(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "172dd021322695a66e6a9591b11937c9712eead3c321a054bd182fcc14bd07f5"),
		nonce:              decodeHexString(c, "15ac5f4a795cac46c922991d5ffcd118"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "adfbb946a458608ca4c28690d10efa898645baca4485a72ca760ea60fad66544"),
		expected:           decodeHexString(c, "9d5d54b66bbe1a6fc33c645e9be0fae2635e970f95921bfa8c3614e5495c173f982dd4cf821d7efa595629a28ec9d1c858f51308fe32d791d0274e2435e7f13015bca8d9c7b7eba2ad0f941cab904f94ca6c6ae42c6676207bc4a99397efbb6526789270949ef261b50c4d59e2997200e74cd860c9ca50316eec8c682c5bf04e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_12(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "cf44e3b9cd4ea5a586b1aaa7f6616bfbd5b3ef5cb4e086dd1bf82c3e344ede56"),
		nonce:              decodeHexString(c, "2255a6b92c58cf8d9819df74a54273fe"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e38880c172294e14011fd412094cdbec4cd821e5d0a7b537ccfe83f494a1d5df"),
		expected:           decodeHexString(c, "3b4718f46b1561dbc5bb8bfc5c8a731fbc23a648c57b90c8ac0deb8ae7bf233b8e15491d81e1bff7e0bce0232cf3fb05e0a9f9c7d6ca02ad7bbfc98437d80a245f943224912362dc8bf74c214137c68209f41f2aa3109153bb70faec8d9039b8893d89b0c27ff47f8abcfd24a78cd51fc90f94049fb37b2868bc145574e92bbe"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_13(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "7285f925b276558a8a542de42e49968195033f948c67169d56824356e135575b"),
		nonce:              decodeHexString(c, "5480428c2a909a0b7a7cdfee011bf001"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bc4a237b076aef48e889667cef41f6bee0606316357a95f10ebfb26b4906bbaf"),
		expected:           decodeHexString(c, "1a8cf76d626b547dc6c3d3eee631e8a6efb4f8a620cd3e9a66e0242b108770d7f16c59dcc0360f1e722fd780a7b10adcf7718b7c58eabf2b18e5734d1d33ecb1c66717044b857393831fe92b9742b25c8293eea5f5956373300dcd88af4cfe373b2030cb3c5b554511c0dc64c204523dff716d44683f28218c338b5190ad9008"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed96_SHA512_256_14(c *C) {
	s.testHMACAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "37dbf351b0273c033e229a0b3dc056a113590f6f60cad5af384eab61b1030c8f"),
		nonce:              decodeHexString(c, "e68005ae19580e39d6c8afc6bb1ab22b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "01ac2e7c9d9097505d36ced795a3fa46260bbb6dcaaed7785d383378902f6c06"),
		expected:           decodeHexString(c, "234838f750ef568e5cbc2cc2cf87c45d89239719ef02ab91ba23357e6e1006b355de8f47c2629b21753dea5eb2316bb5e2ce1426653fafefd60ec10aa5b6c96c12ac30c8cfc9178db2d20cbd4f9af76a8872e06df08ce98f582fb0ce8708849fea7804b554f47b05df3278f648b3e5204b0b0db6dc24eb5a3ffbd8e42dab0dc3"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_0(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "08630e964921b68163c6fee4a3dd289913862795e22adf806dfb454cdd1e591c"),
		nonce:              decodeHexString(c, "48b3d1dfa05383d97d1c2418e57fcc7b"),
		personalization:    decodeHexString(c, "7a7bb284476f38f95bc3a5accf6d241425761c541c42d71e3fbe319543e9d445"),
		entropyInputReseed: decodeHexString(c, "9f87b430f19a5a169fb57a4965cde5a0c3203d07f86efa1cebdcc52b5cf72f65"),
		expected:           decodeHexString(c, "685edbecd04c0bceead59e7432018a17693316d4d5775ed39d8e8e849ace6bedcd14fc8cb4c5352b38b824d3809f5450141e7adde82efc2354db39877135f0be4a0808380e1f361b30e8478fcda6e09d3659e8806c5a14119536b0582e0e07ee710f572322fbeef65a64a900cafb483b6fd965073a35139056dbb23849e979e8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_1(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "dd5688ab52714aa5d97b726c8e2ae131f85df3b8fc9ecdcdc29c7c052ff459a6"),
		nonce:              decodeHexString(c, "01db605eb4ea06aac82fb6c53eb0bec9"),
		personalization:    decodeHexString(c, "fd6be588291a77d9323108a687ff279eef60eb065c09bc79f181d2b8eead98c1"),
		entropyInputReseed: decodeHexString(c, "32d7df373bcc5395ead68f45a22fd442fbb78d466760069f14b1b58352cb255d"),
		expected:           decodeHexString(c, "e10831e6b487fbca381837aa6fb2fbbdfc67a1fb8455f50f033817a394164f7becc95bcd493b87b624697d526996a3d9e911b8a4e79111c7759ca8578eb5839d8abdb8891b4ffacf75f7ddefab3219ff5d74b0f26ed5257a44899be26791aed7cc4f111c0a2d804b45670f267b291ef8553ec6be4a3ad59da11bb4ebf7800fb5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_2(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "bc5539dc8036e58bfbac0ede10b6b56cf80ae2aecdf657393d13e701b119ee0f"),
		nonce:              decodeHexString(c, "726e33c74f9f1b1c544a6847818b07de"),
		personalization:    decodeHexString(c, "eb4cd9a59e93ff4dd8694991ad6d13e4127d0a97440a893d99efd525d7823ad7"),
		entropyInputReseed: decodeHexString(c, "fe4ec2d1f5359bbc69e508ab5a2587e95ced7ac901b09da47a73dfb07144ee8b"),
		expected:           decodeHexString(c, "58b070b99d1b0e1a20668ae36f8603427c284d3733336ea818690957354f4e84d8fcdf8f8d9a1b10b964887c15f5c33e0826b5b77767516371d3e4df9fdebbb6e2eec7371617ebbe2dfdc68ae94c2ece84e289128511a462f323482bca9b3981a70b503fecbcbd883bb180df3f21318acb330edbb67c821fdce9b2a2e94f834e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_3(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "4c574caca0b0fb9fc2b699c2fedc182717eba9845b914160f12ae46edd17bce8"),
		nonce:              decodeHexString(c, "4be63b08251bb36c547311bf4636dcfc"),
		personalization:    decodeHexString(c, "7c1e78394aae4cafb85d045aea5c8cc2cc4604cea81bbbdb341d7b2cfd911195"),
		entropyInputReseed: decodeHexString(c, "b6ac0e3ad3e563d3807a92a9eb1232d848720dfe174a866d8ffc34124b0f7fb0"),
		expected:           decodeHexString(c, "ec6f89a60c0c3076c261a7098e18dc3beedba5611b8c953976fc275c1136a8f2cfd32963f485b8c3c6311f15e5365db00fdb7a70f397431b7609ee1a287680ba6bb4739099d894227428f9f3d3bed2c0786fb851b9ce8a1ed477c206fedfadf1b7c9c30f4976dde26696796836f930901055d56e6eedb7081dc11d8b50ae5148"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_4(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "8e480fabd47c6d861a80926df16fa61e8eecbdaf45886c2393a4d4f2832db052"),
		nonce:              decodeHexString(c, "17f69c76a35ff31e30f97c6a616c2288"),
		personalization:    decodeHexString(c, "a497525a106f62fa90e6fbeab6ccc5945eee9196accd5ff5f5662577539cee09"),
		entropyInputReseed: decodeHexString(c, "94315bc955459112617df11da2ac4f668d0ee4ccd5c22b558a92bbad35efff40"),
		expected:           decodeHexString(c, "1a2a3a9e696c1382a0c40927026101f59fd11c41e4fbd3cd82723004a2cfd9d9c76b6d2fd6fe3dba9520ac215b4a5eebcd7fac2e897adfd3836ab4981ea5585d03603f27c05baafd7c9c78bbe1ad389f7c980b0804d10f6b899568ef9320eec62ff6f6c66643f3760c4a284643dc28e2d320144e23675ae003956a07982394a1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_5(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "28f0d84656cbecd0b1805a4119b7ccdd46e5bc033afd4570d90b113521be428a"),
		nonce:              decodeHexString(c, "67e60fe59acfba484dafff59f2843a0c"),
		personalization:    decodeHexString(c, "ae613ec6ee0711a29c2028f577ac47cd0c01ed094f7db694c431deaa00c6b545"),
		entropyInputReseed: decodeHexString(c, "2289908951efcbfc1cc32e76a0528c46349a10d6bc99006c64f0d121ba6b6b09"),
		expected:           decodeHexString(c, "be122622fa6a31fdcd147d3bb6f49c7b0a3bf6514b36b0f0c063099f32c0c42f4f415583f1a543040d2236acaaee63cce6a2b0c9150634052daac8c8fbbd9dbd7c5171a3b8c2f78f4934c859f39a5cf41dd180ac4d67d91382f454962b5aacfe3dc7e7c99ffc13bf9346417c083bcf5d5d546050912d92506f749f28c8cb3f8d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_6(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "055818d66adfd017971a1fb891843b7282c79daea3d4587ccc95456b27884232"),
		nonce:              decodeHexString(c, "180dd9a4af1af4f41dac71f27a3d194a"),
		personalization:    decodeHexString(c, "ff501630cde773310fbc0ad5df703795e9e7d5dea522496fa7fab6c1b3ea6ae1"),
		entropyInputReseed: decodeHexString(c, "f73890e1bc1d0c389bd4283097633c6d5112dcce384dd4aa85a9ae28e0d9c4ad"),
		expected:           decodeHexString(c, "ef7f19eba8a73df29d52f9cf564734b7d1700bafe51ea8b887bdb4260025e43f9c278b24ad4a838b65cc90e845331a23aaac56c0ba4b97a2d726198bc014123c2f22c5d135d53f31311266e03b7aeacbdf399372f9be2cc8455adbbdbb2c2cdfa6fafacac4680ffe71b5d2a792f86a3fb20a349fdd26e393afda7b6b3bce64c6"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_7(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "bfed2e0cb3bbb81723e73910fc20ff419488a665f8222c2616e30e55e017c158"),
		nonce:              decodeHexString(c, "8142b223ca42f9a5d60383e1c72a27af"),
		personalization:    decodeHexString(c, "a1ba3a3112fd0bfcff8ed4f2415e5128f26a6953ce38a3676f8d028ad3a817ec"),
		entropyInputReseed: decodeHexString(c, "85c55f1cb90470120849e02fabf07039f83441c85ad3fce2f4d265627fa30132"),
		expected:           decodeHexString(c, "cb93b949f0285f8f9be5e39569fb78ea26a4a8bbe0474bd32f335c307340a73b4f5d9516d6ef691ee982ed1259c3c9f121c971d3063638ce244bd580aef797078c375446072582947ec9ef636deedc089d4b5420ec9e0181bd2955d1cc47c6479e8df9b92b832a59810387e7f7b7cbea3f4e374260f5ba535b672fabd92846af"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_8(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "3bc0780f31b246a57816233d75b3d00d75fbd7ceda44ff4b0c8ede40c86ff8d7"),
		nonce:              decodeHexString(c, "8d05d7a07a7b22f7f95ed404fead15ba"),
		personalization:    decodeHexString(c, "d84d58190f8212f858936da938cae1977f22baa1d6a72e027678a5bc6c287bad"),
		entropyInputReseed: decodeHexString(c, "2e0336d05bdfc2ab7ed352fe2b7ec7caf8c083e53afba1d8544a208e80533120"),
		expected:           decodeHexString(c, "20f7c5a11cc7224ae92a86dfc4700c9d86cfef2c65fedf1815d1321a35f13f12feda85d1a7a30c7714beeda11d6034b0391ba0a3d9b4c6e03ef67040b8811e09c1c8c89ecc9515b4018c48574254053fa839361eda3444a6d6dba4ccf8e080f3ec3695449a08e45f498b9cce0c31485a9c429ab9b153408f70caa473ab968791"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_9(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "b698bdd0dc95ee896c6bff47b2e9a35c720945eca77dc5ae8db71e7fc2acea7b"),
		nonce:              decodeHexString(c, "55020083b5c2a125d66d8375b0a37024"),
		personalization:    decodeHexString(c, "3ba0c0cddac64fbcaa87f2719d20186f5f61ce1bd023ca9fbe8308a9ca3a4440"),
		entropyInputReseed: decodeHexString(c, "1754f72698dfd547321530758b072406a7ab067782cd5b3faf4e0a39e9517d7a"),
		expected:           decodeHexString(c, "ed0f30d126ad5658cb2b31a851b13d5dc01105f7c5cdbc0e997f32f7ab91988dcb37efcf4e65432305979074c35ebd88de1518e0e46a495876f40cd513daadab782b27b77a655bb18ff903ba92c4c75d4761e8c468598edf902e9520747ee3867625b6330dfbd40034d02ccd2121b0665b0d908a9da0c802542addc5a1e75848"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_10(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "30f65746f7b2ede69584a33afcd2aa5f21e0ff0a7badc692a38780c4052d04b9"),
		nonce:              decodeHexString(c, "0d13a9e02e48edaabc1e8d62f187b64b"),
		personalization:    decodeHexString(c, "88aba49f797d1afe2eaad77336cb0975c73e8c72cd3f9a63e40e95b94dbe455a"),
		entropyInputReseed: decodeHexString(c, "4284af02e953170d8b3a247a9a5d4c2470113368b6b16a2840e5de8c32740266"),
		expected:           decodeHexString(c, "4849ac86848aa16e2bcfe9833bb4bbded7ed1232e4332616dac83d33ed515fa3b661ab6cb608ff69494c19f39ddc883c22a39f2d8e12ff12c904eee520be59b68fd8722276a66407b40f7bd3f0997b4faba4afab461582c894924874b8e14c21cb90ea01f21dcef2f287f5928b3f227395bff2f482d0982bc9f7415c0d901b26"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_11(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "eaeee176f9e7513d9fd2ac02b692bfbd365ca3f5b6baf2dec9967d93f72ea158"),
		nonce:              decodeHexString(c, "043ea713f044b188375e599ace239a9c"),
		personalization:    decodeHexString(c, "baaddfc254e6578b319e4a46e006e300b45cd6a5109a9abeacfdd59d67596ae7"),
		entropyInputReseed: decodeHexString(c, "8a036a6678bef3e4cf8caab4df22a75927b8f0d84bfcfd489e9bad4c7c9079a2"),
		expected:           decodeHexString(c, "89f0eadba3f32b0f76d0ceeabbf3d26e4e245b94b3424add496ff05be8576601caa79f1fa11516ad4a917da0129d229df256cf372789ec89f1a8646dca5c6decdb5b2bc885759b378542b5b8c62a35ea1778b06746900cf2b68b1626fb19903c2326fb17eb5c442707d8c2c3891b8d6de1fb476c20059c96606e3052284e4db4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_12(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "9ace958a7edd6dbb5b53d9a441a2209c95aa003a6818a961b1703c35eb63d6c3"),
		nonce:              decodeHexString(c, "c59def50032acdc17ed46ee7c8483e6e"),
		personalization:    decodeHexString(c, "373491475578687fa4a2dd7804d55458532ff7dd58cf8503bc44d0585f68c198"),
		entropyInputReseed: decodeHexString(c, "ef6244761bf877cca8d69950bb368b2481d7675201bf1ce22907993030cf435c"),
		expected:           decodeHexString(c, "abbd6293a6b466fcd812fdf06d08f8d710e640a6161a9f4fcdabda08f93b1c8775c24ddbe25d60026ba272debd7975c3315688f42a1b0a8efad6765592af59726cc65026287ce03eb6d4957fc27b1231bb6188a400f4ea76b6d7a450d52d8ec24f69256389eb15dd8f8c396012623ab2d271e51b338df08882ef00abeca806bb"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_13(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "d67a049c4ef1f2a2116c300fe1e0aab82acdbe3e30524035e2faff24d600fdda"),
		nonce:              decodeHexString(c, "c61e4d220d0a91aac8cd459b4e724a50"),
		personalization:    decodeHexString(c, "7af2a767a1e6e33aa16f2ea8e6a17efcd33809d339ac4518cd20d4468f1f4933"),
		entropyInputReseed: decodeHexString(c, "f45ff0e096d070225c8b8c614e980e8ea04137f294f59ddab88091f45af60591"),
		expected:           decodeHexString(c, "d4599f15dfa6195ee9af3acff85540c804bfe1de9b6bc6bed5e21c36a85c04c4b326f87bfad2872ede0af1cc7ce02ecc00452127ef885e80c01cc3b887b6dad10bd73afc4dc69b5f4cba86ab510f683916f3b94e85e5975248aa258ce1d6763794a8dda7858715fab4f0e4fcd11e6d54a17c9be37a19fbbf124995ddc05646f0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed98_SHA512_256_14(c *C) {
	s.testHMACAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "73ff3d30e54aeddaa68c9abf69c334aa185f7322336fce7f4d3977e58a1d27ed"),
		nonce:              decodeHexString(c, "3398cc8baa9f8a1767e169e3c5a85a0f"),
		personalization:    decodeHexString(c, "ebaed773ab98b90bbba3459d487afa81270e69c56738a671f0293519744e7001"),
		entropyInputReseed: decodeHexString(c, "cc82e5913002e53ef8061a2e5d150f5aaa8e033d5ca734b26ff71b05a2748dff"),
		expected:           decodeHexString(c, "2ab724223eba4f192391b162a088001a25b8bf843e410d419bcb5c99ea504da70439aab0d98275ed8c517798f16910ba8544fa6120ea58d1ed4e8d07fffa590eb3d03373a412ea4597174f0a89ec45969428d4fc35aa9fa80fdc0b662b39131c09424b9780b6804005a6db09c31e8e3546dc65f5261e6168ca75de609b8ecc93"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_0(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "c5d379ad1d5ba894c06d56297a80975144f1fd677b3da7106668a7affe3f55c9"),
		nonce:              decodeHexString(c, "75231eb5cab6211c43e36901f3ea0c5a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "feed006a590ba107a88e70a61fae758d39a312f53f86409d4bd618b7f7a12e56"),
		expected:           decodeHexString(c, "985bd5f9f4e33c371200d03c94319fa9b2695f683f5459005c29a31c3751c6deae313bbe1f5a4132abc0853426dd20a74239808f94c9ad7ef5d9d39cf3e032aa9bd90c3d919968ea817b0d20e224dfbba7c285c42e5e9347dbb13952772bf5025f3170bc9932cbfeffc1ad5372c217234dfde7436856f2dc67e838b12eb2ff5e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_1(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "2667485d2283e66e1a8c4baa8f02613e24d31e9ff134f985b4dda00a5db507a3"),
		nonce:              decodeHexString(c, "d824b0e3a407e12e0c4d0804e282fbf8"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6ffda415809e4f0b16e5cf913645698528426f1d8de9760963803c21f5230c80"),
		expected:           decodeHexString(c, "a51c08a6449aa409b1f3560cea4e98a9f30a81b6031b82faf6e40891538f9db738769d91cbc0f2d616fcaf6a491e5d610f2870937d2594fdd49f6ff49665d61d36fe422805ee96a18a998072af58f20c171d2313ca717d96630e4caed97ba44d5fc33a335abc1e86a0f1b8005fd96eb6509c3beeb61cf342bfaf948a8ea59103"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_2(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "3a1d14f511598383c92e568c3203f8a32f08abc6a65f0cdb927e7dc2ca968247"),
		nonce:              decodeHexString(c, "819f893078d17c3a3953ce4572508672"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fbeb630f9e8ae36392897f60eee04a3752d138a7fc373a306b34a2664f84c5b9"),
		expected:           decodeHexString(c, "1fc5145973798f1069fdd03f7860aad0cec45968696e31b3506375bf0bc814d853ee5894ae95fc8c7599da236748125f5309f4425d29dd1e4f97b5c9b677c15d5d32bfef76c70a5c8b4d6a318452b7d1b490ceb5ee2036d2d583d8c3e1b7cb8ce8c81dbc38bb18cacf0d84d8160652da314b4ddfc74af70b35372d4cbc82d244"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_3(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "64756dcbfaca806833bdfb495199120127a0e865562b2d5c95b8b3da1a05f27e"),
		nonce:              decodeHexString(c, "e845d117ca1f1fbad8e90bc71da389b0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a1c9a4b53946a46842ccab782cd552821d75c6b5aef5a8678457834827ae5250"),
		expected:           decodeHexString(c, "e66ac9505716cffeaa68295d4691713cbfbf9894545527c95e02e0059b0a848224aed34000377bc321dfadfb039e042458328f49b62a640d3a420693ebfe0a17bc652cd24e105d149d3eb29248e696ddbc34b12c535f2c54418fd722a3a648a0e3a1dd0fd319361c79bbff737d674819dcf6241bfdb70e477c9fca7c410fe8c2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_4(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "f05c26ec1ba70528e1634f5b7d78461cf6ca7f2b65432668322267e5f3a9ce0f"),
		nonce:              decodeHexString(c, "1872e1e22075ed1e4509388c475f9a2c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c06809fc48f282f67baffa1bcaefc562d6b489235410c0e3aa90fcca45bc9e70"),
		expected:           decodeHexString(c, "6a851148b04704994eff6c4a041e700b66784a7b80f012f457014b030746fd084b47c99b3bd18027c36e3848436e3bed535dbe53a6f4d7efdd5c649a09b52fa32fd90c6a9b1f136ab15f025fcb95e409e219542709565b9605dd2fc93e3aecc8c714d2b8b635ca22c8d3fd8bfdb6f62c243dfdccdea324544def4c4595dc4449"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_5(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "c071b6f6e79f02a69cee38a5a10ab6730e467a1fb40dac80bda5be0da0285551"),
		nonce:              decodeHexString(c, "57678d0a8f89295bfe23881417a0b58c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "19899e44ac1017368cc14d54fdc3402a56cc074b6b87c1c490afe474741680dd"),
		expected:           decodeHexString(c, "1d1dffbb9471eed348be06ad1c6153790ae6ed54c105c7db81daa4f95a5120d308030a03771633913ebe0bd36421627e695d7898b4d63f0f04b17f87f91eb62b7c72269282e82e7a1e95ec8ebaac2f8f660c63cc43f981e098bcff0962725134ed9525e6519cb90ca96f4fa102d3c9df66ac400caf53f3d53a38d45d3cf86f0f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_6(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "2b8cf4fb37afe03994700fb64de602cc24f6666830c520cbf3e85d025aa296c5"),
		nonce:              decodeHexString(c, "dc9414a16ea701e513100fad082f1728"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "26b510869ab451d868ad7f2d6da0b60315d635bfddfe71cdbab2f55d4b9b60fc"),
		expected:           decodeHexString(c, "2ecab3f023ba1233eef3fee0d3100e6f3424193dfd32d08f056d7edb58a2afcee9dac0eeacc7421e36b6d9dd5c218683572f857646fe3538e7cebdc84e47c76178c3a862122881aff155456a7cdc8324b958579aeb7f09915be3a7a9861ab512ab127a4b19486ee1378270574241a213cd08e0bd750613ef58e432c3819cd7c7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_7(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "6770516eccb537cc6286f89c83563aac6debd72d0e3e40efdb7539b6022a1cfe"),
		nonce:              decodeHexString(c, "0d99e9db660e0850529763be366cbdaf"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b34a78ea20e6476230fa98d45ff7ce62571a81c5dedddb97d18a31531ddfd446"),
		expected:           decodeHexString(c, "da3e44761db8e79748367b67e5dc29a64e715fc7d5342eeb4a907ba1fb08ae35c777ee280f771d11ade5dbe92b88752817d45b8e38ccf0e96b5fdfd16eb851c2e9d95c5411ee7d9a804aea8cf3145c7fb5da8c428ec7e2fa15050024fc4020553ba09d1274695532c2e98dbc3d7940de93c23f329c3c93169de1e3c323365e0f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_8(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "f2ffbfbbeaf10fa6c1d5e34b557dce2abcb30913e4753ee0fa3f98bf60381087"),
		nonce:              decodeHexString(c, "20f095ad4040248e199f45805ba26993"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "301f82b32fbc7a177e8501c3321339c98c8827eb896d99f49b8ec39d4a980af0"),
		expected:           decodeHexString(c, "a41e4d09070cdaf73d4dd54069d1d90de093730115b4dc4d6a453279050f9a0d6e0edbf0985f1db007cddfbffeef0f55d03c558f0664ad8120b78aebd1580ff720dff7a4d4a2d15bbc260017df7faa900a62ee6596b6e5f5075d926e653678173cd7deea4407fc0f8f5c20b01b1a43a19997a76d7ef5dd414ac255c199e1579a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_9(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "f938a52cd6c75ab780b771e51da3241be6a5c73d80a661416922a64a09ad20ea"),
		nonce:              decodeHexString(c, "5f219fc1e68ded0d7a667a0dedb9d125"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f459f4757c88fb407f000bbb96eb1ce3897c6e7dcf82dcd6ea4d7e1e8a27ba94"),
		expected:           decodeHexString(c, "4336ff7afcbfa2dcc8253830454104bfd0f14a57bc136d037d695105675308266662e1870f9ed78a844a334b8d2663aa69f1d93c6a213b0f999a4d5e39aecc94e4646104aa9b1755a1d8f80a5dbc844dfca14217b42c0d92dc9aa85c88de51dbdfaa0b2f3cf0f8beaccf5fcc9b73a6cde1ccf78bfd2e0cbe07c3b17d5236717b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_10(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "7837a0686780533e7774931cca173de5fec9e2cc9e355a720a5586de04fb6a42"),
		nonce:              decodeHexString(c, "078c0bee3bb0cb9b5fb3adae90971288"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "91820bbc9f387df3d70bbc0a74088f04d4d573b2c93ceede86a44a223ed8b82e"),
		expected:           decodeHexString(c, "0fe2bacd38090c224bcd1dc47fe6b9d5d498de84730d3575ab030e2faeae9cfb31ce9b0d588e0f1d048292022f163af065c0dbf484544499107716925f3582cf47fbd8b31a0b12b6f849ec3b507dd495c319bde1f9da3772e2a6b5cf3005aee5fe0cef1762e65ced645c46ab2744ce6f018bd6452b83d7d76697fc0fbdf9949e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_11(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "16a4f3e46aa3794cfca3063841c0cd193ff96f9f17e4003055b47180f1426dab"),
		nonce:              decodeHexString(c, "b7bbea6c36f729835ac8a743e26dee2c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ef77599a554942c380ccd459de3c3bd8f1140115bda548dc53a05aae1c9aa4c8"),
		expected:           decodeHexString(c, "54f7c2727a82d82a6009f1b6337f8fd153919871ed1dd7ce7d1c96aeb4392c0bac7a5bec047f5d5f51abdc00ebef93ea2060de5758db90a5dad450c0bf911462de9287395e666fb7bfdcf719a30e41e7d1a9246287c0da073216d62cab04a249cfee7bee28bda025c4574aad08aa37bbf94ed7e2d7ad807e751de5a4992e8005"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_12(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "3327cc150eee2a7306b2f817393597431f050e60a3564b1976827ec669845811"),
		nonce:              decodeHexString(c, "db4eeea1d2f80cb85889bd693a0c0f13"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9af7840e1b93cc10959e1e7c739685676acefaa89cb4f6af9945e46c70e0e3c0"),
		expected:           decodeHexString(c, "0a6a24453454d5d0c11208ab72f02eda6d198448cc4c362bab3a55b212e799c923e002de0313380ffab5ee5574504ceac600dc2f442ee72ece4b3ce45520bc9cd0dc44fd2dcf39bfc04d98d9062d5e83fe5d5c9c1b377e9d366b04604f7f44cdcfda4f9da38f7be00671d9c6895b52966c4b6bbd998752fb030792912e2dce35"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_13(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "8516b7e1df5772cfb695b8380b3f0af30544b3244962c12d1b925e936784088b"),
		nonce:              decodeHexString(c, "12083e2f6aff93664a2b766a1d648d22"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4378b0cc9a9320d8dce8612e03cf9c633cb331337596dabd0899b0abeadca954"),
		expected:           decodeHexString(c, "c1b8bc8fb40bba2fc1e2cd2e273e4e7aed2e125954b1ab2f0a90c8c18f54d173ad2b023f87927f86486ee01d38316ed3ce529bec7deb201af3067df7b364205b9d740a1a48ec9fd636714b3c21c7989bb80ebbe95d91075b177758e2696702d77b57ecfc0ba2d284a98e0c89a489490b2f7f6160c13262370fd7cc136614ec9c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed100_SHA512_256_14(c *C) {
	s.testHMACAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "e8fa84bb4ab99189ee66595063f70bd7ea0956cb9969f18fb26bf2f4bd194cd7"),
		nonce:              decodeHexString(c, "d5c5bf47d70909310785080e656ccde5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e758f88aca4285f25e3596daaab91ebc5a2d9fcff4bdc0998ae9ac9bd1e2d48d"),
		expected:           decodeHexString(c, "cbc10c31f494333e2b2f1b2621700bb28c5b2851b358b71072b887bf1a06de4cbabb659b802d463f442ec2a5b99c570c989a447d8f4994be1afb803398a68420cf845a1ac4bdcd3bf3dede446b56854a129431d281bb8ced27c35d8fe5111614ed822ce82014a994ece8b2c20b4069025508b972b56bf6cd5f6bc6b00e32ab17"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_0(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "b39ce17ffc2a0b9bda2f26c3ad6ebaef6b45a0f4664a44c8e45d4e5f86c91207"),
		nonce:              decodeHexString(c, "289969ed00d77c20ee004a856059fbb4"),
		personalization:    decodeHexString(c, "c7c2ee032b45dd994af3ea03358c478c2d250cae000906f2c3d9022e5cd789ca"),
		entropyInputReseed: decodeHexString(c, "3468ce9b746278248bb0b13ff7af3b44e3be696878ab7b605499d622c886197e"),
		expected:           decodeHexString(c, "59dd729ca7f2603e2bf2c74d353f0fb2fb080bbbe3720e53863417b89ab267543903ff2257b6e9814e9aa340af8bb270de4498863c9e8b57b5b5453453cb59387864e80996678058ff10bcfd2000a60150d8497ce0227c9f6b7512a2a9f9839aee5d6b18794c2197b6daeaa528e1bc353c60238369102bddcd93c960cae11fcc"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_1(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "b89ee3bf0f121f422e074e28a476e617c37ec022a2fc0216380336ef52eeac96"),
		nonce:              decodeHexString(c, "f3139d15fb6f8bd65962b397d49da703"),
		personalization:    decodeHexString(c, "81bbebc3f038093d5da647707134725342d040d2c6033b80d5c9af2f588ef1dd"),
		entropyInputReseed: decodeHexString(c, "8692855791f945feccd91bfc113adffd3e1d39b2723d73d3d0e0ef6c32872fe8"),
		expected:           decodeHexString(c, "7589a79ae4987b033a34f0fa35986324d7134a6a3c3c03b20e25137450e0f0fbfe01a4612e25967314ef6ef1de5512338f0b81d8d64d18854990922d2a90415c99f2a4a912eef8fa06461ad6ce10add0bcd155d9e1f9a587a9930e02925939499ca107f295ccad500063d1c6bc7e5013bc458a338a6e40b76a6f170815b28f36"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_2(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "a57bfde2e3abe615dc492da7a3f3ab4c33d0d3e67c2fe99a2fa9c133c24f29ad"),
		nonce:              decodeHexString(c, "9974096cb9f0e5e740acf2b2843d7523"),
		personalization:    decodeHexString(c, "321d07178482e54c2e833123b69cb8d8a8e6117f4ff0d2322e5dbb8f9efe77e7"),
		entropyInputReseed: decodeHexString(c, "47073e3915d254c6ff0ffed45d786b3a469706873ad6d7555913b4a55e2df7d3"),
		expected:           decodeHexString(c, "cb82dca56973556b94a00e122cd497e4c57e433de956d6a8c20107f540ff303ae5158dc6f65d32cf5a5544619b5cf3b74e928fdcf974996ec99fd4f1d54461998cc4c9fd710b40985be0d36aa6709189c2e88fef623602f5dce3d74bb50bb3735a349b7c53209af6e07efec8d8023950b2e63dd68d07aef8e8837f1e29db007b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_3(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "8136c5850f5822f23e90ceac2339de7e3d35d5f53825836d5b2ed2f6f571fb68"),
		nonce:              decodeHexString(c, "e37a9a7558c06c00d72da5710c8099e3"),
		personalization:    decodeHexString(c, "1b2d8932036e093a5eab45c3979e49389a531ec36af52d363b508ddb900af76e"),
		entropyInputReseed: decodeHexString(c, "b787cb020a48e3a013e5c5f2a5215cd998c63663f406fa1faaa9a5f926342aec"),
		expected:           decodeHexString(c, "565d1387abe292fbb54263be5a3ad4ac5cfbf17795c526c0f8dc128abc2679d515cda95ea87497b1510c0bfcfec7d9a303dd6660a0e6d8c93b4344c7b220c757e560c2f8d9c26cf6c17c39e61f4a7ba56e1a974b707d64557e55dec61608b33cabf8c4c69b76670eacfbbf886f26317fc2abea05d5985f3f4885ab25010b87f5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_4(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "4df9b77c1f1f278eb555d3c1a35ca8bf1975e32b5efb9682b21c13c7c18b089d"),
		nonce:              decodeHexString(c, "e6544a1b19df39583f85073fe51a62e3"),
		personalization:    decodeHexString(c, "6689eeac8943e02c524d8ebfd7f3f76e2b642d1fd7bf80b961c10151fe66af6f"),
		entropyInputReseed: decodeHexString(c, "3dd37d7b644eb39aa2eab07b6a197099b33632f64ed7d3a3a6dea0d0d92bee38"),
		expected:           decodeHexString(c, "6c7537621b64256f24be60ba5026bb67039ce5d35fb358e54ca800acb5f15d6f921f06686a16b0931bb737da0e56a9ecc0802e5ac92189230d66e9697fb54c18249e1d958de51a0b26843a36d8bcd922fd8b3d3d49e41531ed2638b4f5592353fde1b7f54805d71e8062ac6dc1d3ba31e24dfe8f203192085e9cd515bd7c4608"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_5(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "5dad40875758e5363e0b1515a010e4ecfab1a7e848ed984b2451a4b78e3563b3"),
		nonce:              decodeHexString(c, "442f84ad59e8139ca481b99b5356871f"),
		personalization:    decodeHexString(c, "e42432538f94a3ccad0ef35a8a77e8b041450fe57095adfd0343027fda6f82ff"),
		entropyInputReseed: decodeHexString(c, "aea9a2c784c633b9075ddfa8dc6ef153da89b5613fc7dfae85cd0a48535120e1"),
		expected:           decodeHexString(c, "63df8d6cf34363c294bfe65fb35e03ac62ed84cc1f8133df39e04837e703d44015ce063de83c10fa49fdf00f2a80c4111f637b1bb0a584e76e6f87cee5ba74407b0951259dce279f8887fffd122409dc2cfe8840455d01b8734f2b41dd7c95c2767280eca14d87a7b528adede8a1c13b5559fbfc0a2fb1b2b58f81ba5d80230f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_6(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "13241e0665cbf845dfa90e28e1d0d014a6e1640e12dff929118b0eb0dbb5899e"),
		nonce:              decodeHexString(c, "1a2c5ef7c2ba9abe0fd5ce7fb77adebd"),
		personalization:    decodeHexString(c, "ca575501f228986a0012eea03ae13167690d1340fe6a6171439b0dc4ec666a6f"),
		entropyInputReseed: decodeHexString(c, "2126f78e9a395595362714d24f77ccfc8409ec6c089fbea6752e10d98173812d"),
		expected:           decodeHexString(c, "2f115a5f180ff337aa1b3e5f1d2e5467f2365304b1906b02642f403a2933a991113a3d22030872239385ce32b9f379104af572506f9ccdf02d55a054dc4564c894f28aeded3c1c7624fa49e21a029209443c60fd5907239ed960890a9604536c61ab12824be5acb1515498e1b1f081ec77a7391829a7007cd2b8987d3c74e64a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_7(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "3fb4aed7ae4742b71861c2b392665dcde5307807e771cac3d18c66497d9e9687"),
		nonce:              decodeHexString(c, "715dffd9d3f21b4587eb149e97a9aad4"),
		personalization:    decodeHexString(c, "676ca455496f356e5c12af24e04b298eb8b1fe6e850a1e1525d28b79ce3b1799"),
		entropyInputReseed: decodeHexString(c, "b64eb4e831707b258afb496c047a56c4d2ab4eb005e8bff1ec24ac8292443016"),
		expected:           decodeHexString(c, "ebcee6d44249db83c8ad550ed0632afed2f37b36fcbf1f43bc550e7317d14728b005bc0247dad5b454c55f40ce86e425031b6f6de5f24f4ad00bed3c0d2ef8304c2560ead5631f83eca09aec2f39f554b695346fabfe543335d4813ba7288537e477bf1b72f304bfbb7f13d89503a599b553f44aec8127fd1ce75982d853d29a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_8(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "749bcc461165df42b10fbc14fa99a15d7b47f43f382d2f6bc4e10faf642b1d58"),
		nonce:              decodeHexString(c, "56e81c36b6553f43499b5c1e1e14d35d"),
		personalization:    decodeHexString(c, "132be85e77593fca6970e6653af67771e10d46e2224bcc8611074d1ab7c669af"),
		entropyInputReseed: decodeHexString(c, "2b7c1eccc2f14fd0e7195059b79a43ba4f9d235ad834a78ab3067637abbcb3e5"),
		expected:           decodeHexString(c, "9cf10f65a719adab107b63591a46de7a8a96c47a464cd945a6433802e0baed12bd1cd795cf5f1505ee9e2143cb60fad11c51df6a8e872e98aa41d22baaac2378b573350eb7ebcee3a2df7d4f69abda3be3c01f593421415f2d5be2d8001be97139afb330cb7e4b155dcbf39da6356fec47deea913f540398b1d7d9e80c511f34"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_9(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "5d13f6a60572ebb21e10f2edb435824fe00bb473edb24a2496f93e0e30b33c3c"),
		nonce:              decodeHexString(c, "3de65b886e46a237e4bc8abd2afbd0b8"),
		personalization:    decodeHexString(c, "10a0e469164953e04efc2a72e6c182ac6ef3f877c5c0c30633ab444c7f623edf"),
		entropyInputReseed: decodeHexString(c, "eac33ace4a4de0284fbb7de51f2a6f3dd6fe734f507cc604a9f5c0bf7e6cfb3f"),
		expected:           decodeHexString(c, "5fe08e167a0702f85f86c27f78e9b5cd13928983b141eeae6f61a2701b8db16fbdb3c3fc33a2a9548f157d65a6629eeebb0a297f273f05b5ccb3c7b40e4b50d774fa746b8cc4d5c8cf94ffe389237f146854e8adaa24097e3f0bb436e32ee4d29ffd079d8d3f63cd225869fa995167b14bdb94a4e15e43f8df909ac6c1b83488"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_10(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "7d40c0351c4efb5fe440c14b77ff7462daea25c0e4eb7b5e56b8222d7324e8cb"),
		nonce:              decodeHexString(c, "79ae4a9900a18479d442e0822c937386"),
		personalization:    decodeHexString(c, "3ee86c680c97b5aece4582f476c12fad4592e219b2249176e448f7801a7bb273"),
		entropyInputReseed: decodeHexString(c, "e445d40a195974a4915bd20f97060c4c4885288431bb99ef38da871ac638975d"),
		expected:           decodeHexString(c, "c9acebc59342326d097d9e339c9783db8e1171a56a67f4681b709e0c6c7146e5463bb0340e69338b801e9854a73b2273e9a7301c18b26a2059e7ae2c1b4fbc1b546cb50a99d2fb9fb3b2c5bee107be92bb3736beca9913b85fc5921bb7edc5b2d6be5b74371fe3d4be3f001d90a8b88230311aa7aa3c493aa8f439d5952d6129"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_11(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "6da52e477e00dd7b562f9022c81cc5c6c6dd89fd19bf6d413bcf563878cfa0a5"),
		nonce:              decodeHexString(c, "5df39ddbb65ed20f73698419e23933e4"),
		personalization:    decodeHexString(c, "e4e3f701bba52c3ef3918928acdfb4c80c9e7c770624bfddfd0909084d3f18fb"),
		entropyInputReseed: decodeHexString(c, "909d1daa16bba6a7d91f1e0d9c4a8c6904fe87de47e6d51d8cf75221379987c4"),
		expected:           decodeHexString(c, "69d2217a07628d7e70fa7efe24298d232f6c2c559fe8ac897f7a14d0764de38b2a8ae9fa96682ba45781a363fed31b2a9ee78326caaa58e0561c6038b179efcc3917b519e4546830954bc688c68979b9f68f91d1c835ae0b934ef4f3ed1e1a2179a16c11dd9bd8f46726e0ed8d8e9b85b3258f91c1dac1767de1eea3215ce24f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_12(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "a14b98a481d0402045df3be67230854a679caae15bc7414070773d6e55505c09"),
		nonce:              decodeHexString(c, "eafd93c68c027a1d9b33b0c1eaa86ac5"),
		personalization:    decodeHexString(c, "99cfa9a68ce9a95b48c92d718fbf9ff65a8344a1c6d3d256b7854f74e5813b24"),
		entropyInputReseed: decodeHexString(c, "19fc823c24c996dba459fd1041ef217152bb069bae9935731edd828138337dab"),
		expected:           decodeHexString(c, "7923c2923ba92aa5c1b33238500a0f6a56d533e9c8ca0f9b2e9a104c6af1c6e098b9340f06cae73bffea248049fc4eb6f9ab91f7a8f6f671c0ac11a96dfe32a09d7429b9f67ed363db6fd56372c8648fcd0597f5e89cf257a60ad0167fb5116d120b1803c1cafabc6bf16e7263073c40b44f41d627417a6f9ffdcd0a20249b24"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_13(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "57f7b40c4532b886d11d6c08de30b43c98a7e3ac0e37d7cb34fc103edc422cba"),
		nonce:              decodeHexString(c, "ce02daf88c6cbc8a87567977f9a0b7ca"),
		personalization:    decodeHexString(c, "d57713f480bdf9fd75d9f3fd09b55bc06265fc26b9a303a931f57c0cf3693538"),
		entropyInputReseed: decodeHexString(c, "76a573f053b1a48b1fe7367b1a71d58c05305934046183d6a504498d1f84b23c"),
		expected:           decodeHexString(c, "dc69797b5e9261657047c1cfce362cb8a9fe4762ce4ac19be7c0012dc69fc230f33ec85745788e729f3edfa315e70efda9bd602fbc4d52e4526d033df4a332382d2a6b03447a2ff0cd797b905c3a38f05881e8821062a12e1e8584fcff87df364bfb727304e25f80e6269bea98a210b1a7f733bf743ecf7a182ac478494fff81"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed102_SHA512_256_14(c *C) {
	s.testHMACAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "db5eb9e806ea8bc9e40965e79fe8f1b69cd5e480c6c6a5e283d386f9561c756a"),
		nonce:              decodeHexString(c, "7d1962d8be810b0e40e55a9f1204f1e3"),
		personalization:    decodeHexString(c, "088897c75048221ab579db8d45e1e71d79cfbacc14fba95c5bc584529a190bf7"),
		entropyInputReseed: decodeHexString(c, "a511f1492f02caf6413fb4428bb2497be8ba57207a92d7734be5d8ad4c1b2645"),
		expected:           decodeHexString(c, "c53a156037e4834d21264cb6c6376970e13b7258035126cc4f6792b95c6b7308cb2ba801905e6935bdeb090e5ce19457aa6c4706315457b0de808a32b87eca9778813d634da0fa3a609f025d7852edb19b62e5959859fb513e179e1164ce41b14340e87e19b7219ee3b7c17ae9832f126fd3d02eaacfd04876476599053ccb07"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_0(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "a1f38d5772aa1f6e1c23db101625a596862f11ca74626182eb9cef501b97e823"),
		nonce:              decodeHexString(c, "0d853f485c24e8a2a41b1bf3736a2257"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b5644774b6f71dee198309c217a42c30d091434e78a62691f52df359bf27d7eb"),
		expected:           decodeHexString(c, "190b8088608b3a7276295fe1930b42bc4b0ea02a8cb0a2f53aea25a5486c4d7683c9f71b95ecaee615c443c15a12836290a9bc02bc3b5d564cc609d16011534f95e58570abaee94db9f2729ae68e50aaba96ae8b08f5afe53c8dea7b5a37395a9043a46509b41c956d21d14ae51b1967b539c4d33bea2cb054a991049e7160d1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_1(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "f17d0c77d43aa7ab018c9c6a1226ad05fd5dafd48d4c5934df71207f635b8b9f"),
		nonce:              decodeHexString(c, "2311bea4b271b69cf3ac06456c67a7d3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8fbf42504dee0df34d069da9cd2a5b4838c8e7e7eacac88caa3b5342f12767e0"),
		expected:           decodeHexString(c, "faf87d07bd60fa4354ca0ffbdbb9195eda202cd0c35fc943cc1d7133b8f7f95969c64fa029888e91707a2c365bd7dcb559651200bd3ffc020a7e23b855f6ce06b2f61757dd4ae49a667563a2b68b6c5275e8bfa66eca54a81d4e16b6f663518f00b10f3cf61f0c22f7d1d43c66687a09d1e788712c47ac1e7aa462d2e6c196c3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_2(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "68fd239fe491b741962dca00904654e5c7c6f348f9f1bae74f8419481e4c6280"),
		nonce:              decodeHexString(c, "6abae5217ee65a1c50b6fa4bd23b566d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "aabbaa06a96381af9bff31bd779996716ccf3fb087a33c4fb2b8b909dfc0e494"),
		expected:           decodeHexString(c, "9094b3601aa7e6e456a5b9ee772277809dd43af3e16cee8941222205213fa553ba36c13112217eda341c068b919aa6c20a4116c1b9a91a6326a78bf7c6a70ee8cf8e0bf7a08c63611217ff0bcab6ed5fa05e9e43b32aa2b5eb22e2e241a35c250f373e632869dbc6dac2e220c356b73cf3dd8eabafa9775f2e5f8ada0149ab45"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_3(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "f792f17c5bb480bf75038ed734c06b0550bb2582ade5d1cd9667e2ec3070e58f"),
		nonce:              decodeHexString(c, "4cc1772ee6b9753b5ca6d5f06ea60807"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3fc8f354d8a6ead211d1311b872a63f55c7cc47e5ebc96ea124b3875a701b73f"),
		expected:           decodeHexString(c, "7c74e7b941302c4ea9845f01060052808831f6cf953ac201a16e8a35c4644890e281368b4ba126a159bbb487cac20137643c1a2773da8b66a5c54e4f2bbcc72319c286ce5e5c5547a52daadf2930b7938ba4551c11cc7ac282b93e65d7f0896ac6b7d70fec89926b2d5822038f7c6f8e8d78bf35264a9bcb684a56c01023f4f8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_4(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "6f01a2c6e7d3a7ae022287881a9e22106f53ea905ad5ad16bbae4cada72c9dd5"),
		nonce:              decodeHexString(c, "ecd54d8a7c82597993ad0c9062c434d3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f58e26a81197491c919407cc7ac8c95194fc01d8da75fa3a05e7a623effcd3b3"),
		expected:           decodeHexString(c, "d4713f6c65166c9b554959f63f16908ceb908a88fc56d49f06d95c5d67cf48511de268d82340b39a8692220a30314b3c32f0810b857bc37cd69f53dcb99aebc7f360a4de41562e4ad3c5a81e41fca3d48c8cdb394943d50ff9167bf6db93567ccb2aec43fa808f65127f2dcc0f1a5df94ee83eb74288fd12e96062c23c4d6ece"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_5(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "3e6e81d60302337f0f3649c02db55434b355db6a84e20b605b178949a6127d41"),
		nonce:              decodeHexString(c, "e4e439a7761330402122ac32cebb6ef2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7e9e2529ab1e92668fca34f3429da2e3e0944a718539f2ebfe380f4f77fa96e6"),
		expected:           decodeHexString(c, "71ded20da6c58282ecaca7db19064ef742128dd638506645e8367cbc4ad8c41fe4ec1f5a589ed8ec145bc6d8948f665d1aa24b20718321106eb33fb3746058a1f37fd4e56d10142781e4951653313bfbf5d437eae401cf75102c7b7a02b6094dfbe7413b0c3dc0c0e7bcdb412144853c21da0016828672281389febcba25e4cd"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_6(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "bc425504beb2b2500aa539e9be9de5f628c2c2359945de9a2eb5e2d3908cba3c"),
		nonce:              decodeHexString(c, "35e17817c306fab1d25be64fcc30b9b1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "dd1c1a4405cada1ec3ce661b2d411e18201fc0a51ef2e11d8852f2aa0e709dfe"),
		expected:           decodeHexString(c, "d4d7e795be5a5e18bea0f3accfcb5ab429178ddca62bb6640140ea8bf30586155fea165e0f4d4ebe48cf6c070ac1c42bcf8497424257e687375a6a181d2f1bfd9a1005bd52beb5f62952f157a91c8b127dc5b2fd2aeb37a257e4720b4fb3a588aabda25fb8bb4524000b52986ea3724612680948d5be697bc362800886cf53a9"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_7(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "5bb77f5b877bbe6e71c7095c6a13d19b933e0dc1e9c8e564753a693d658fa2f5"),
		nonce:              decodeHexString(c, "30ca4f9b40000fb1240cb1ec9829d707"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4a716543bd5916092307c54a4d833612aff9e44ff4086fd81594b39949b25874"),
		expected:           decodeHexString(c, "16b1263e5888bc19ee4afe7fbef90da492998609988a8cbb81d2ce7ec2d662c7a2b7db4b84b250bef4b47966e1d7b675faa917ae1512bea4ab187fca879829b968898580778ff71d1db5b9fa461fb97d559f23f05360b93e4b47a999c760617b90c7744641eee67ed4e356686d1d1469503c7e57a651f5c08cd0358e424330f2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_8(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "ca0d9fbb79cb2edbf55484be53905561dbc12b2992b95fd227e6d844a32db832"),
		nonce:              decodeHexString(c, "8a24b5ea68dcec56ab0e43d2d4343ceb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "978033156dc1e2ff78b12061b9b1b234018f7576eb4244267db9a08a9093c1aa"),
		expected:           decodeHexString(c, "953cc238a09d47e830af24f02fd35e3419d9da2cf7d5444dc5f32046b9bfb9ed27e5a7d97a7178d58098c5db67d75277d24e9a9f30ae2bd454c0b72b7a3573d5bd4de9f584529d8121d3a5c658e8e7245d7f78fd7965fc4e854f69d32e7ef940bfb428e76c49c22411eace1c2bf30e4aa23d5f0f26cf610bbe4aea3443511713"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_9(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "3a3c2fd2d1eacaf2d9ddafb7ae3bc3110e2f018b001e990d158d91ae184926e5"),
		nonce:              decodeHexString(c, "b9351ec199e930e4f652adb35f0c2712"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4870d173909bf6f93538a2d314736eca0116ca9bb9369789aedb9750e9b07b98"),
		expected:           decodeHexString(c, "22691075726659db20963b4b03fcb90df3b62bc72b4ef142cf8ac05b55294845ac911f9a018ceb86e79c79b58cc0f2aa610af5f87f327ffa7be529253fc47e2c29d805f5e25eebed31e088fa3f6cdc76a81d3ef1b215b5b0337dba4ecf3c288975143671ea6b64818cf4512a382fa39c45508ff4abcff01c6cc8f25b839a950e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_10(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "777b57c262bcdf8d974a7a339dee00fbaf0aa587a33a70e29753262078e6aff5"),
		nonce:              decodeHexString(c, "fd05eecca515e1ab796e9a5542f86304"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "62bb85ce9c00fd3444296506c861d35e11446aed8fd63087af07fecc61d4e3ab"),
		expected:           decodeHexString(c, "ca94dd00bc8d1fcb6bc163d880d02ce0552323c53e2c4c7f3c321ad3c75b44b5afe2b9fb993dadbaa425457fb988503db8e7a9ff2761aa357100c06e596585f9d42bdf964490b14f9c26d11524246f7d8e469a320bfe6eef547e801668911a4c240ebbde32e5cf78671b3f8583c1b61edb0b0508af2ff1b6504db93f88dcd302"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_11(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "d85115b0633669fb104e09fa50f1dac644f23e8b1a8011fb186c08ed17304315"),
		nonce:              decodeHexString(c, "afa4331aec5e5c30193e154e60b875cd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ac8adfc8b1d358a6eadb09d44ea4d193328dd1eb968644da63e3f0ba5aa12a93"),
		expected:           decodeHexString(c, "a270692d6ddffb8c4dc3ae453ceae41c7a16d69f369b3cdb759726d6c7e3b8fee5047716d449c3e810bd0ae06e5e3f3422fedc6c0d4e367daffdd5b58aa1117fdbb7e7ede0ce4dd732d36c4b87fde79c1aa58880e089a0c0ec83379800f449bb522a64fff5fbc46270fae4534be90cb54734769acad07ab8c533638f109eeea7"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_12(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "01155b3c4fcdf6c06f0c3d33f09910a148dada794b9e991fe680b8ef662105eb"),
		nonce:              decodeHexString(c, "0d77b0cf2e204a28d71299fa2ae3e402"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "183b6deaf173093b2ee8b4be0741e85c1774acf8e14d9edbb0dd95a01592a45e"),
		expected:           decodeHexString(c, "030fb243f4d72dd247f6fc863d8b354b07a4c767eeff162f9e4026f855e7e0f22b9dc806a1f8e3f7b70cfa9f2053b7a19e00c6230e2f3c10d3f74b268c2b1111e29dbe793237fb57cd9a5db3d0a46f2530c818b809c6df255962a828cc9fc372f3726d18302cc4ddf4bd69772a2245f146e54455da3f2c27a5953e6da9540d42"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_13(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "b2ea2d91a7bc8262457f921708db147e5f3929e33a783ef5412ee7591b1c1946"),
		nonce:              decodeHexString(c, "75083ccd2adde508be9acab7fbfb7cd2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "52f8a8dfa81460ea29d0d304e4030a98e24d6a6ae3161a1417725f13f0f2c04b"),
		expected:           decodeHexString(c, "f1416d476f4685ffc32278771b615e42ae518c9a867bc3909554a71f4c6537c22f0290c6f803d5d216b404df62e428f39849c6a62309564e70a741d4388f7ccbd63a2c37f005a26fa773d6b63c27c5f766e19e8836488dd5ca2fadd7e2072bdd2333ee82c948dd0a2bb82a0b6a9ea9dd1e6c63cfcd68e2de716a437588edd9d8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed104_SHA512_256_14(c *C) {
	s.testHMACAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "a9821be915914294fffec5d385d01418bce04d42e4e06772458c0dca80ed62e2"),
		nonce:              decodeHexString(c, "9723639166b3e1e71133802352573d30"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "45be2557e454f2ff4188977797d6e64098bd12a587d68962a3ab19b81f9a034b"),
		expected:           decodeHexString(c, "459f5802d8d86ac5e03ce4c8ea3879bc88e17fbff9e25a8b176dbb628d4cddd112a60a0950c709f0999405c68b094e4f1a37528aed0a85708912e793792544ebd4cc1e8cd3b0874ce0e8de67742c644835b7df9116180315302f4eca00a629657290bfbd2336c4f6f18aa2bd5bd6699bc9392910d74271dee7834302972ca209"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_0(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "db15b7d0645c0f72b43183c27096de8804df2aae34dbc38fddcb828d39701eeb"),
		nonce:              decodeHexString(c, "3cf6aafafcb12e969ca8ea1ebfadd771"),
		personalization:    decodeHexString(c, "be054575f24b4e81d1540d807f9faf4d61fad6b73839f3c6ab3b0fa665f34a0f"),
		entropyInputReseed: decodeHexString(c, "0669c9d75d0222856456f0b46a92915591518dcd03fe012d903bb9b6caaa85ba"),
		expected:           decodeHexString(c, "c930cbabbb3fbe9dcea45cba12bf08b2b380dc42e583486eb1d02055f3700c1f0f5d989c9923ba7d6dd6c7882f99522c4cead699b3312b255f31e6877b1b586f599923e97806a4078349df3a08cb5d0c92f3443124a814de218eb6e0d364e0fb98f2ea465133cea732405ef75cfb23431689a3d8c04bb4cb4228019156aac8a4"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_1(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "fd2585760efccb4d4012fb6c08997f7f888567ecf4fbf812efdccf6502b841f1"),
		nonce:              decodeHexString(c, "3517823d9dbf14bf40d13fd1dc9403be"),
		personalization:    decodeHexString(c, "a079ce65af17de974fd43fe187a35759856e56349d9ee291816c6b96c8cf0a55"),
		entropyInputReseed: decodeHexString(c, "7ad6a593286ddb40e17a61bd761f9cef298b3b205908f4b324bc9d11073b046b"),
		expected:           decodeHexString(c, "aa773282d6f4a3f9677545272ddeac7a62151942dcc20479261ac6486f1d1d90b8fcb97358017aab4f3b49af1b8f2046fbdba804936175e65fce73118dad33f49afbb7db76131634efa29c037ae8b8669283923bca501ae9e1d40b6a46884e71300cef5331f89a84140f71b848554a9cccd20050082ffbf62742f8d9830f54a8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_2(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "6b11dd36110a5d0a2bf2ad9ad997a599b3d80ecca270dfa4a88991a15840b351"),
		nonce:              decodeHexString(c, "4e846abcdd45c4089b66e2aa7697cbb3"),
		personalization:    decodeHexString(c, "5631d870cc6f4a9fa26faa49b21518a6fcc03be44b02c2ee93ad74035e42c2c8"),
		entropyInputReseed: decodeHexString(c, "7ffff44be8cde569c696cb287cc505e9c02dd2c11a3bf8a9a6f5cbda7bf5b00e"),
		expected:           decodeHexString(c, "d7e0d3bb84baf62b196f12ed685a5083d7c56535d8f721c0839ca75d62bf32585d1efe3a833bf8ad92a340e5cef201fb6bcc5e357c18d512890b3e65b389dd0d960aaa585e7d81b5309b67d84e31cee8067ccac11b1895c63a82a61c08a1a97650e714e5c190f7c2f52a78d6fa36a38d1e5a13304e483f6174ef947098cada88"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_3(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "b56843981e8155b0c7fac559216c4f924d6ab5b30fe7cb481bafeece0f2b131f"),
		nonce:              decodeHexString(c, "1648ca0cf3919b985c41db9a5b594292"),
		personalization:    decodeHexString(c, "d32280279cf0d5ebb6f275c536286883575d1e45efb8175cccbea7bdd44f23dd"),
		entropyInputReseed: decodeHexString(c, "d80f3815fd99bc4aed35b78ddccc9497232e964f7d193313b95a68e2198f479c"),
		expected:           decodeHexString(c, "b2ce4b91e5280f294e3e23bac6e78893c8a8a8adab3c51908f112d5e2f6e8985e1d57ea368f55e52b3d325b168b78371f1507ce4ada16b0afbbc713490d04155a165b1e0245c232d53730bc255cda8c0c2a589cd093b8512fb4033aac771f37b1314ba5102226eef7e10f8f2a4c445889a15d20e7a5abbbb2716bb8a26e7b6b3"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_4(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "7e8fca44ef3189118af8428a0b4aaf663253f7fa299a7f6946c288e767e64fdc"),
		nonce:              decodeHexString(c, "10ab56cd58692255cee914405aa7e48d"),
		personalization:    decodeHexString(c, "323d4d438787ce1be02825b0e75dee6dc4ae15378f118771c426dbb784d4a0d8"),
		entropyInputReseed: decodeHexString(c, "a8071715006c47048fbc25908cd8f2ebd50d36c6fc7320a744488912def5bd50"),
		expected:           decodeHexString(c, "93a56b0aad1fe1d68de7ccc2e79f77acc0f883102a920aee6e3a51a2cedb93f941c12752834728c3e77990acf3928cc5dcb8d371da1e79d5d9b8111bbb0c755230409cd47f5fd852b62c87d3f0ef2ea83db7da9ec516fcbd9a7cbf2ac850a916dadfd3be42b10531e349560135bf1ffac4d6023ba4806344634bb986ace96440"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_5(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "6aa3b1568ce85f33dcca81c33d9d6d32e681b652e82ea881e32abf8bb9ea7cc7"),
		nonce:              decodeHexString(c, "81bb94eec5525435b73bfed2ffe15cf8"),
		personalization:    decodeHexString(c, "a41bedaca01bf8e5012f2ac223e45dec4beddcbbdbaeb61983f95142a924788b"),
		entropyInputReseed: decodeHexString(c, "9dd70bdd10d1acecbbb4c83baf0c0543f93432158c53044468b2e25d76051110"),
		expected:           decodeHexString(c, "6e3ac7f5ff6c3268ac30f5bf3aeff52e155fb19226b76c179c4ed2b85dba4b57aa5dffa60c9b8a63e2ed412960f689c23a3120061bbc0412afe5523f751a0d68df46110e9bbe69afb16cf7c470edd2faf4f08b88f485647ad0162a0d14754eb240b88dc597531e9301a7ccf5a94c0300711ce68457922d8568d00e3af0e5d258"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_6(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "61433e09f9a1027c1b2f0e03eb62f2f70e1a438e97c168d9b52e39fada888677"),
		nonce:              decodeHexString(c, "ed773e081f4ba0429e2c006231c093e4"),
		personalization:    decodeHexString(c, "de5725576a7dcb865301cce91e007106c5308f99f23a892e481fd8a4e0dd0bd8"),
		entropyInputReseed: decodeHexString(c, "3dc08e604c12946bce367c21df0d877b3a8dc350b77cac31ebd1f78a9a3793b7"),
		expected:           decodeHexString(c, "10d805d731f2e3c2d877871b5315d75401c45582b93209fc6267aac18ebba7e69fde94af1bdbf0b2594914289ffc21dd4da55682b483f15e875e56d80728ac3aafbaba8a85c93ddc6021cd184bc9edd3b1b3aa5423cabcc95f7ebcff896869c891ea5305bf80ae0baaf65a628332cfa876d573d73462feb7b9a51dc1b7f6f80a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_7(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "82564eb88c1ee4d8626442ceb5c42ad7fb69bfa73712b212219f1f11fa303a57"),
		nonce:              decodeHexString(c, "4c59df9925a326c82afa0f9ee7ab30ac"),
		personalization:    decodeHexString(c, "f0d1ca76155d67c265ec412feaff8359023764a4fcf37b2dc2a21157150a766c"),
		entropyInputReseed: decodeHexString(c, "fc9d555999eabeccfd000961417fc24576915c79be7c57f098af4cf57ceed518"),
		expected:           decodeHexString(c, "0516fc28fa30e3fa5f33fc96f7bd3977033d08d8e86bdee82403b33dc9d4d19d15083818513016fd1523a801ed93eb6f99ae4cd1f7b2cb79537a6fbad5f1bad5a7352a2fd3b3e425ca164dfb0bd95bdb996f7d26d80b8a5e05a02d3f9eddfbab0a91ef9daa48bdfdab735e0944dff8b9622f1951ad0e72a8f04286f1dc3158f5"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_8(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "cd6c9af1abea3b14b02440a1154ff51471e68a7caec36c5d6448a189270928b8"),
		nonce:              decodeHexString(c, "a652873a4945acde53c1be7148d5c9c8"),
		personalization:    decodeHexString(c, "dc0f1f35e06a4f03c7f11c2edf4afd9909a21d529b6d446f6d5f382b4b2664f0"),
		entropyInputReseed: decodeHexString(c, "468768b26d53871d7f1066523e92627ea5c9f11bd0a86218b0dc4c5807ad6a2b"),
		expected:           decodeHexString(c, "fc53dd32085c4afae0210508949c26011a172af5660bc1e61e800d5ede71ede55b7d3086228b0d5b4670b61dc2579062fe889f5f13168295e179d4a1fa72525d347e4c6d8869778e24c1005566dce4ce85c05754b5fe707f15461ca641827c7aa6f2deac75043a82e170598b12827f61d38ee58737192af0aaf615e0a2e8eb67"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_9(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "a96d0ca8c672c5bec5646b3c1fc24f53d4c26ce9958ddab193ed3f1756b03a3a"),
		nonce:              decodeHexString(c, "52b73692c22ea30255276e9a8a955d3d"),
		personalization:    decodeHexString(c, "b18782b4cf98bfcc3991af12ee61edec6a9ae2b042f49cf8012815e67c35b2da"),
		entropyInputReseed: decodeHexString(c, "d37b88604eec589ed3fa18bc271b7d8df26090ec65eac3a15560acd13ae14e3e"),
		expected:           decodeHexString(c, "4efda889c11fc4a6c48cf1cbd05093fe773b2a1e8dedd5069c084fb0afb88a663ddd12221cbef869cf318c7f96e5b37fe171cb639a6ba4dcd13f89950df7018a4df0b1463a47e5e32ba5b133ebf7dd26dfcff58dddc3aede6e584d464a29bb2a0723c471986c4a26334b5dd1b7ed22cf5e0b43d5ba1c32c28fb7bbab8366c744"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_10(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "a4432b9f47b9cdcf545e82309053c6fa59d89347cc15a8c5a3b5a48ce1de4a78"),
		nonce:              decodeHexString(c, "c826d43af2165fb2a3cf89b29c24e5d9"),
		personalization:    decodeHexString(c, "3bd9be8e7d55fbb6f9aec8785c831cab2dc73f470369df1586c2691f37f86ddd"),
		entropyInputReseed: decodeHexString(c, "5d131c565c51d414a456f1b387ecbca8e7b167906d7c7bb51d86cb30ea33c45b"),
		expected:           decodeHexString(c, "a433fe8abed42530242375fae6c00b8f9bcf5be594ef0b76effde6374d0f31123d60edfd887d9d158554d414571de5cadbc42d24045ab4bd30cc340a3eeba451d524395ca682d6dbd296c1b777d61ea62040c39cc4a9e5dfcdbfe816dc71cc532b7206e860e9bb4195eff50b2fc7d91dc95b550d6e57a10c9a295396b672ee8d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_11(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "310f74a9a050dc5aee78db2358f272c582924354de77206d3d06d11c33ac43e0"),
		nonce:              decodeHexString(c, "817d83dfc12e9c35170106c4ccb19471"),
		personalization:    decodeHexString(c, "c211d866c138461b406e7eeedd6fb5450be4b9d170ea15608cbdc09e4febc276"),
		entropyInputReseed: decodeHexString(c, "18590acbb248c8401c7ac5180529465f16ad050acbc89e26cc2e60e441e21acc"),
		expected:           decodeHexString(c, "c66e145f770db1d6ebf0a80f2df364710f7115d02abd99828fc207c1f9f9fafd21a06812b3e8ff7b285750ed32e0f17353dd81fcafb16a86cec45b737727523f9e6c93bec916b4c69232962663b0724aeb6b92920ac46a658f7348a8b34dde853fef079a2dcfc6167fd077c37368c786668da20cc0936289f64e649c258a1b1f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_12(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "83c88a3631073b4885be62c982f2016ea24fb0635862f4df4c7de472e53fb5cf"),
		nonce:              decodeHexString(c, "336fc27659540149615f2f4e32602f28"),
		personalization:    decodeHexString(c, "7196e299cd06e3ee96e77906d0bc620d8bdb66a46b99dee8829350244b121454"),
		entropyInputReseed: decodeHexString(c, "2de9fea24ae744df63ce67386a27ed79cf146d894112b42d16b6d920b430fd23"),
		expected:           decodeHexString(c, "6d0378edef338d7997e065e0303a164150442fe1670074cce86f168623953b8d55513ae53053e33479c7bba1cb037bf457430b23b65196dfafd4f1a0d5f8fc48e6597b8735a2d33e76e31a39dfb25a7f4d99d9418ed6f5c7208da4224367283dbf3bce75bbf1040c9b58b797a8ba8ae9160d197cb543b102c5c798bd0f0c03e8"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_13(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "eab3bba7e18b50e7fd67bc9aa7824369139cff54ffde8b6b7099debd084888a2"),
		nonce:              decodeHexString(c, "792f937ae30c488b8ea1f22976ea5b5b"),
		personalization:    decodeHexString(c, "5a62e03675c3f74046b1258f6eda11b729e81865f1baf060916af9b675839a32"),
		entropyInputReseed: decodeHexString(c, "6df33fc2a11d8ed891d2d4efd7b1401c35cf9fcb95d2abafdf9ec1b845f62752"),
		expected:           decodeHexString(c, "a91caa67b844bae49aa3a16844d5a8671abc4f6422bef56b6baee4885120e2cb49579ad892085d8f0da726bf63ded3d299889eefbc3c348d744147b7ebed6eccc3758b6c0a575890a622ab61576f796520c07f56015358c3f6b17c7f595b0a137f386421456a9c39c201c13a416a5e4549ac535fcf0cc9ecd20bac4d056da630"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed106_SHA512_256_14(c *C) {
	s.testHMACAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "11bddd2f39db0c74ca84604f09b1c62a4cc22fd0b4a39e5730845e7802c0c271"),
		nonce:              decodeHexString(c, "7916f8865893308b711443cf2709657a"),
		personalization:    decodeHexString(c, "70fdace833554cb3f9bb20fb0bc779a09bce6725f396feeeca3e9eda762aa019"),
		entropyInputReseed: decodeHexString(c, "6f4a3464662396119553e5fe9b48047b84ba5e445280d24816308d548c1b0c26"),
		expected:           decodeHexString(c, "f0a6c9fd5462c77715e83df14fffde0919b0a54611ba90c347d213c74def9914cbd43f58b43d72961f9ecd1b6390fac2aaf21e0fd1e09123c8cfc924d0629e6d5037bedf22fe5cbf979a14cbffe935d77f4a83f73a259ab977c296696ee25ada127387ceefa8703992006ef2028f5918a9ac017d78b1a18d80bd6babd3550e7c"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_0(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "be62350ee67dfeb64edb4867d8a6e0222fa5693de9e3a02ddfcc073f857fae1e"),
		nonce:              decodeHexString(c, "b133fe4d7114c16b6ca5d90889a131f4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2fd9bdd35dd4be2ed01755242826b84b96e58e06e3e3a8c5de61aafdd5c74156"),
		expected:           decodeHexString(c, "62273993ac371d0d7eaeb96452c44a6cc197461da460d5e1e28999e42b57d19591c8d78f1c5bbae1ccfdaf77fbbe589bdb664adfe98c9bec25ba5895ee61253c343796c56888d89c7c06f4588656ef786caf0f174158f985a0e521f4492987e00a26ff49dd4bbe0ca5c11300b678fa67bc6f5edd12faea67b703088893324e25"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_1(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "a9c300f85b859d434ec6e58dfb2ba1a86e7138676596451615c93527ac02b4b4"),
		nonce:              decodeHexString(c, "a908377810aed5a8d4ce27462cf77fcf"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "95801b36f5eb32b6ee40c91c22f7c2d21a0da3b0af9b357a7b1258ad9595c4a0"),
		expected:           decodeHexString(c, "fb1970bab9b12c8f87cb6c149cc50a2d7e512088e3837e3ac2b9fe0e0706c30c398e276549cacdbe98a4147e38e904fec71dd603d104cb2aebc0d1312ebeb442f69595b613f756746f3f68431fd1b39daf881e0c6f1587c5a02e975345fd20996ae909b2412d45e40785f59609a7a49bca3b103d46ceec1d5675dab1f6e5fa06"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_2(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "531816cbb6297b416b7f1d95ed695081b22687b36c794ce7ae9247863d791ad8"),
		nonce:              decodeHexString(c, "586b3a87cf94b0ede65c0bd0716c292b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6833ed6dc99494129118d33bfa3ce19a35635ff76ea72b9dc5f0351aba0add3a"),
		expected:           decodeHexString(c, "39f7fd8b2230c0de4ee629ad17dc258be947ea6fbd8ee85c5341253994117a4d74d7e2211c5df08407d804cc00b6fb3bfee2c9908c24d2cfc61cd2d5b26308ea504e499dbd3e798c76cf5885dbf53a79b1b756a84263e01a756955b02ea5dd28bd0900a3ea359a43a332162e69ec4bc50531692620596b8b0bea5c71a4a72162"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_3(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "8a018f819172e9558f8bd620427efdd4f3c6b7fe5da5884c29a5459b155db8b4"),
		nonce:              decodeHexString(c, "6661710a9e9d6a2087bbaed8b7cd4f6e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fceae4af7da04c1e10457245cd9baaf22ed02d354437fbdb69ac0259ffa78f7f"),
		expected:           decodeHexString(c, "1e4613b02ce733edd7f962d75f8bdead5cbc067bd7b6acfe087598b1ab00588ea83a9666afd1a7f8b27787cc8b8ee8779f611803304686905fca1887d41838486f6a81962b4f0689b52255c4c9394697e904f7af53dc1c7ba1c9ffcca4f0d3b68a703b271e577a18f5eb8734603f71f99e81b6ac2fcf83348d98ee9a3a755038"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_4(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "352071e9179b379a9c8cc8cb6846aa0697cc3f0b8292fd5e87a4457738c1ce32"),
		nonce:              decodeHexString(c, "049732e1bbd565fbf636ae3aecfa50c3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2b043739dfb6573a58e71cd2393427bc95e701bac46a78abe874ab1a2ba4d5ea"),
		expected:           decodeHexString(c, "75317417f00a3dfe4a1ef80f675fed3d30357ceef4f1baeb3d8c5800d9d7911bdb49946705cc900149fedc62928221dd67c5a6ef13a47915b9744c84bf10620ecfe9446959dd7ceb43c2095a589453401866733c06325c4fa2dc36b79d1c224246fc958faadd98bfebff05633f0f7a0d87c37fb9393270cc9b965548244efd9e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_5(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "4be26388d93da07b023b249abbfada948532338404776f43e6d6acf146caea3e"),
		nonce:              decodeHexString(c, "ccef0dcc61d9f2f059e3568f9ab1b3c5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b43d4201f5d1c19b041c34e378e5f580a3f1a130d4fcddc876e9994450ccbefc"),
		expected:           decodeHexString(c, "1a8f57fc18081cce911668d8f373b6903761a059a604e7c7a4dc3cf3abb81bf0ab3b804d215e65ac296c83d332977a8881e98cccd15d6f1527c517829ef70376dd1c4d94a0e8a274fadeb4742389665dfe97d6b8a82dc66d9c679d37d65a7fa1d225af57766eb352760b90188352f402e94dfdd717664147af7035d08b489332"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_6(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "4bf20a3d0d3dd3d4b7b8b31e46f69cbdf8946f448241f9da6f8324416eb0b367"),
		nonce:              decodeHexString(c, "26a9f1e38b35234db89e623a0ea6740e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b3434c8b81e728ac6558dcc399bb82a8651cb5b0b9513544be3b7740c8afc2e3"),
		expected:           decodeHexString(c, "ec372fc474cb36deec209b030660f46c7397afcf4cfaa7ebad3e9327469efd69b19d92260220013965be81505d84cc4d648ff300b42e187f2bb72c93dc990910eb7865e714d76d380e46393f842cef6b73152af5f969dfec8d4efb149bd2c581b037540e4e30c01523ac463ecc7a789087c12ee6b08b2a3be045c2f550dab21c"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_7(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "d94364c681813678e1d4e58d75a5614e1c2d7a2ed542f12fadc5f10ae55318a7"),
		nonce:              decodeHexString(c, "745a89b7b5d452d0b7a9f78cb4933a41"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2a549438047bfe6ee17de4ada7f10b0580833c53737811481eefb53261a759ff"),
		expected:           decodeHexString(c, "536aaeef67355d867ea4c5bc3b75e1640cd5157f0f200ff6bca93346207d73c2cdd253b6d3e90744b9eb3299d232626b7f6b07a2ae5207e30fd39ecce6d26bc802a0555fcea24c8b7d3b471355d1ac3ffdeeef67a5266239c0262682ae3de18c43c82fb4ea0824890095e3cfdb5133307f0477380f8b78d5fc1a472b1d64445b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_8(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "4918e6d10f2e460dbc7b049ecbcd9610117ed6491ccbd3de8fafebe9753a3626"),
		nonce:              decodeHexString(c, "4cce8ca5cadf2492937080cb0163b53f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "80b7e60f2453877909c7410f75195026fae916d26ca75a9cace0edc7ad7c4a38"),
		expected:           decodeHexString(c, "40db5d953fdd719e7eb11737670ea9d2d2ab100319e69ba36bd6a17714ebe8c3ffc1859687c29d1d051fc319e1f3ffdfe48ad7ec2993cb900e24d56ebe02e2bb4a6e933e1fb04eed2da0cb61d9fe9dd2e1aca0173ac154a593ad6ea9d3f054dcc0701cdf0e2b8054a2b9528415746d6c7632f95b047a0476ecec97efcd61c37e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_9(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "656dcecb0a4c671aedaa04ff6f8e172cb2e2ef516ca9a685566a108b162080b7"),
		nonce:              decodeHexString(c, "f8845e23fb78e9847f2a67f8d2ae9f54"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1c45b7e2de2956c86b288bc8bfb90526c299c8d1966deb3a491ecac7162f955f"),
		expected:           decodeHexString(c, "7b1371447c30c66ed26923709fb9d8306c53b78cb4be99686f9c2c0a891f0fc48e2f059913d391181cada4321c592b539b4f4f3ceb40ee4a79871171118dd71bb3caab7bd439c2fe990d319c1bdc2aecac94928bfbb7be21b95f2aaa89e784f7a92a89b80731931cf9f5eb44194b42ade8e66bb516d6ede3597ec10daa427bfe"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_10(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "39f76211ad696c28b19ff22b40192a610c4436f83b0bb2d87f5f08f7356e0390"),
		nonce:              decodeHexString(c, "88fb50e7d971d46e9a53e3208a7aa2e6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b757253121a7d42e5f893ab8e0cf96319a8b699c1bc0d769946242b41745aa2e"),
		expected:           decodeHexString(c, "7198b041952b24b76ed68c77118f7292cb91f26910de74e0f1022816bc67947e72dc51115f0606933664897836d12c40a03c4f863304e401d9b71b3e2fe421bd71434723d35a3b828604bdfda66d8de294c78da3c32799289d314130ed30e72df9b09dd13584ef5641f94ca133150a7da15902742c5e5a0e8809b709dca70f1e"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_11(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "8742ebeee23098e0433d534313a6b53bb62359d88d5ed66d04a22e66a5f07d7c"),
		nonce:              decodeHexString(c, "c3834b0ee189054204669e1ec2f8f302"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a8def902c9a189d651d6333cb82df3500d7ac1c947450e5d303c5b5f3fc5e8a2"),
		expected:           decodeHexString(c, "3487e670c75d7d095c36f203dd0522fce632f713b61046fdaa998cddf6ba57de0c984b18195193181a182bff5c0da3e56bd8d28484f834ae385d5b1c6abd14a2d175bb2f4809d18eaf33f08eaaf1005204ac0ada5c4ce67e422152305d74e611873fc359e29a76fdf4da5130e2e2fc6a7126d11cd94280c7c99e7028599d01e1"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_12(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "5173097be7fecdeec994158b179b74d14e4a80498d6e8a4ffe8d44812e9429e7"),
		nonce:              decodeHexString(c, "c09143cb2758c675d08ce8963d6f61cf"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "089b014800f4f56b7b41c499fe7d25a26733193f19bef0a1e2a93603ebba75a1"),
		expected:           decodeHexString(c, "3957b3682dc5bf93156a272b86f16ad9f6640a075c5ebcbdc3b9e7d37f1df540fbeb20cf389b0bcd30461c8b895ebceb2294271d7bbb3e0c3e5272a978a170f403b2b0a18402ed237fd129900d819959149b3a4e64de5c236e18644950ad254b08006b1ccb9166fd014a7f5ef3e01e932f7b2d678b23663b5847c8e506bb78ab"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_13(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "7ef61747523f9061047575a9dfabf2c2d69fc5d0a7c5e73566e67e8cbad1e739"),
		nonce:              decodeHexString(c, "dffa13cb6cdbe9c6eb908241eed8dec3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "caa74f8726a5604418730756187731282fdd075d199b1190dc5dcdb9b9f1dc9e"),
		expected:           decodeHexString(c, "86248e8b03abdc4a5a01dd03f03c55e67b652e1f84aa4230b7e0b7692eddfc5d29a87ebd90c3c643aff2fd87729b68c986eff162c8349f5e71fd4592aed6f3a941767c4d3ae37b26638dbe94328e69555da7c7af70202eba09047dd99d263b0eb9f14df51df8661c50e5116b596d57b88ed5200f2b0162677d49ad1f5edb0d70"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed108_SHA512_256_14(c *C) {
	s.testHMACAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "8fd5db8b441a5b7b53d1041eecf640c0a15de9523afb7ccb4671b269c369ddb0"),
		nonce:              decodeHexString(c, "824a201e83a0155d9b184dd8a4ab0b1d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "eda4f1b4623aa6b4289335fb1f67f1d343b5ae46a951dda9fd4ea1e6d8aaad15"),
		expected:           decodeHexString(c, "f47f6a001dfea0288b600eacb80b54dbf03b5676497227807bc8eb974ae12ac3ffdc8a279265d633fdb9d6a8a012217088b9f4122519360ef82ee05e9f5ee1f57ee0bb07b350291faf11f43389aed4481f5520428fa2c7721a72199476ba8431d18421a03d76d0c1a06b078e0cb02d797b24f9b719290f3d088c2ad1bf9fa7a4"),
	})
}

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

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_0(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "b0172555946d1b3a4121aaf22d22901f4cf57b4fec98ace4a99cab40ccf2aeb8"),
		nonce:              decodeHexString(c, "251fbb2f6520f6b94eb2d9fd4dca8117"),
		personalization:    decodeHexString(c, "eaf287330a2005e36614d9c4d81f279f664fa965ba5afff080f5858f0e6724fd"),
		entropyInputReseed: decodeHexString(c, "1171e320b02ce1923ec5ed98bceed593cd5cdf7760ca0a60d048f65374d25793"),
		expected:           decodeHexString(c, "0eae5ca70881b41630bba063222f1d82161afb87c7bdea50b30d6dfe286f17f79cf577b9f5c844f1e5b7030ad9c37de95de8bd7a699f4ac2801729c06ca1a879caaa4c924dedba5aa0ee510dd6244dc1101a3c3634b65af1b6c1d7138bac1b6da3e2f3917f1794e6a52804916628b195b8eb17a1cf1d37cb07ab75a46a104e55"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_1(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "590e3e6af8b3a085469a7890e533cd1ff766360f813d78e6ac2da50cf3f3103d"),
		nonce:              decodeHexString(c, "7b1fe4edab3e5cf647f8718b916719cf"),
		personalization:    decodeHexString(c, "b35f832e9f105994767590fc3ef8165bf5a0d299be9115c7d299acbf2df382d8"),
		entropyInputReseed: decodeHexString(c, "a49dfc0dbec023cc38663f3e1a0daa2b7db3cde958f165ac8799c89708557163"),
		expected:           decodeHexString(c, "3e2b6f710fbc414beebc5f28cc36f59501d31310f880abf3174343ac2eb7f97fca90b13c28bb3b8d5cafec4f3f33ed918ceec6e60e309d60c9ae43fc6b03a231576ed1bd372f5fc29c106cfc738d327ecd5c2e6f6d2beaaf571d8b9546cc813cae045ff24a4cb4c5153d8987c1e00f913038acce76a44fb12abf2a024fb4357d"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_2(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "bf8d1f9a177f009004fe186ff51477573f3066ed7e0799d0b2ef262a34e02dd4"),
		nonce:              decodeHexString(c, "cb8f23c875e6bea0f598346b02d30ef1"),
		personalization:    decodeHexString(c, "8ac7d57e7ed0b6631966e2ed30449a0d344c9ca5daa9566e60288a601438868e"),
		entropyInputReseed: decodeHexString(c, "c6e61aa66917f69086d9ce0e527acb0624a4c996d032d14c6cfc9a810b98a61d"),
		expected:           decodeHexString(c, "ce51091236414053e3d0722eae7f0dc3dd24aef87a4cdc98f03c3f45377c4470a77a884878f1660c9990c426256b87f43477815c4d1757e85de9f2d82913d6b75d5fcef8579b8d4a87422d76b6e19efc9f97bcc50696f6630fbd08254d3775b5513c913503c737ca835c22289dd0f81e8f05194613fd17c5f6ce44752e6a9f84"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_3(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "ab1a8a116e0ced3005d8b10aea211340d747d8b8144399ad151a5170366f24e8"),
		nonce:              decodeHexString(c, "330ef39c329304b7bf4d1eed4daaade3"),
		personalization:    decodeHexString(c, "d402b56fc95b991d9a8c7e256af09be65175ed900cb71f96a06754d67d7dcd90"),
		entropyInputReseed: decodeHexString(c, "2be9620267dadf5e3cf3d8dfa4b6c2b475421513ec60764108d8bd20a5e0fe22"),
		expected:           decodeHexString(c, "b724a4a5008ad9613cff1e031b58079c820afa92e32032b597f6f2066560440996102ed3e23ab8c95312f8bdff81a37cf7aa3cc2f0ceaaf99830b11934db50ad2284eede40c4fa45971154d7dcb081f449aef662d2dbcd0900ccf425af64ec98fc65741f3674794e9abfe930af52a6043769fd2029d1d54e1d918057207941ef"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_4(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "b72e4f0711f20411c3f58a1108aba8e6cbee0990df101e33944331e299498987"),
		nonce:              decodeHexString(c, "c33a31fc2c52e11526b3bf37d209e052"),
		personalization:    decodeHexString(c, "c6b572842db3deb06c727d25f42950d3fa7bc497f25999d013180cfd4e34b2d0"),
		entropyInputReseed: decodeHexString(c, "eb9e6c675a9c5d2a1252497adcfad86d17780cbd785a9471dcd2e2e47dd62d31"),
		expected:           decodeHexString(c, "b898ba43a7b6941f283ca53427633c674b07a710fcd6ca9a2fc6d0de75ba46f75591d8e5d35b599e0314dbdc9d79a5cbe7cead4a728fd795c11489faa25f47c047bf85e16ac4d4f42458b8c60bad3bf0518868082e4d5f0b49fffa3d9e63d0d423eba7fe2196ca69e89eebde525f599d7193b02d650a873eb2e193b3ab81ff5b"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_5(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "0692607a1cb3628b481b2e4b4e318965bbe4247ec3a98a2489228ecb47cf908f"),
		nonce:              decodeHexString(c, "732a4179e86ef8c6aa6d06aa159d71c2"),
		personalization:    decodeHexString(c, "6ef1e3f15c5d495e0971643d954a1afb7a4974581ceefbfdd89c9f1c4ce143d7"),
		entropyInputReseed: decodeHexString(c, "10003639589b9610bd5e9b39a11479fdd248e73057ecd57b275fe6c79eca84cc"),
		expected:           decodeHexString(c, "cc3c4cdace89d708b51c6eedc0af3e94874136672035010afae73296e8d3fe07ab721948242d132dade5473ac8d6dad4440c433f97ea62e51c751a7135adf206bd3d3d22eb75058a292c67e6329e0ec606869de999fdae0c6b0b79242cb2b8716109d42e9604d6960200d07b985c146a83c73f0bb4d84d65ec676dc952e96aaa"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_6(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "9ad2bfac9a3fef466e251cea5f95577f9484dd0a2ee1251e0a29857fba3857ad"),
		nonce:              decodeHexString(c, "6ce44ff7ed0abceb58a6acc3e252ac6e"),
		personalization:    decodeHexString(c, "be44cab92c71590a3e8b1a8fd907586959457a63cc26720049ce5f6fd1e354ca"),
		entropyInputReseed: decodeHexString(c, "eb601afdd5633f4e8b9ac7dc6645c628f0cdfd5840dacd0748df42c3d23d6a93"),
		expected:           decodeHexString(c, "9044d2daae0ca50c545642cbd95826e2adbb4cc5c7e8ff90bce05426bcc8c1d8a75266459e1d7feaad321a8c82a685d2509e04976a819aa339ab101167099636f60f786fcc0d11a0974b5e26eecf3cadefe305bb303c6e60c6d2a8373d1b2b3f174b156714e9d172c11d415db4e2f5682cd60fdaec70b39e651b5a95ccad905f"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_7(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "0a01eb0e410a678826dd2741372c4b924966511c0bfbe2e5baafeaf3edc74c6b"),
		nonce:              decodeHexString(c, "425cda0be6be591c0b643e800975fc0a"),
		personalization:    decodeHexString(c, "a02a8b6462a6e076bc461622c5f8890762eff077a9406543e5a373327d77281d"),
		entropyInputReseed: decodeHexString(c, "92ccabd2799df243109e12871ace13f8564c884f4cf6d0591691685812d27204"),
		expected:           decodeHexString(c, "8c0d844022954bef0411750d57b28069e18152bc5a4387a54efb484c4288750a324a4b60381a52c21c182e12a1a7d00910b33444d320eeac321f44e0b3bd494f4883b86fc1e561973f0d2f108acf0734e6ef93cf94a08575f3a09d3e9d64e114e88fd11af05cdd7ddaaa65f9362e507a6dbb4c327865c65c0e607e5b0295e735"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_8(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "0afa3e94f78dd64630fda1a8ad0298432692b5c1c19a97356677acc878389764"),
		nonce:              decodeHexString(c, "4ada7c89cdce0641c2eb9cbc3f75a1c9"),
		personalization:    decodeHexString(c, "933683e41a546d9db05665dd1b73107b1208746b9705ea94b83f17164d39f9e3"),
		entropyInputReseed: decodeHexString(c, "838ac6c90853a589370e9e1147ecc9be2e915f76dd7f193a2bd484101edc1d0b"),
		expected:           decodeHexString(c, "74b0602d6c503ee6b8d428b3fc870f7e2446fc6f02074828ec99654504f2198415710cd2f9bee4aae5007c0cd3c4b90c33bca8815526b4dfbb87929b9e0eca411cc9aebd3a0bef4edd61da03d47fce1c68dead607f877965e1eb5c64e321d7017f73183e231fd085dded9460814c056d5d6f0d84d21d2ab1e2bb23daf7276ea2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_9(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "9432357976b2445cadeaaf8b62e7d4a01326ca9dd3c16286e4f6c45b44854167"),
		nonce:              decodeHexString(c, "c77ce1f2e3ce1559fa21c293a8243da2"),
		personalization:    decodeHexString(c, "8b884ca261457eff6c3126bf516f854c6de3aeb0bea02cca708a03e64067596e"),
		entropyInputReseed: decodeHexString(c, "37e3883dd365e4b3d44e1b4894039f5bbcf377dc0f9a0bd247f76b04d4b8161f"),
		expected:           decodeHexString(c, "d310ff161075fc8f679ebbad3688875b775bb4cb351bce8e912f69679170147cd4f4151f5da1096eddd0e33d67d754c0a4695e20c7790572c1d104340018dd752065d8782c687a70f61130f2450b9acb04db48fbff703abd61103713856d3a19b9f5b058f3fb55ef0f2995129dbea59c783cbb89582a4379cf983b8da984d694"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_10(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "60fe629ed7a253a01225d4d4a05d96eed2a4a3c3a633be0363a4c32f20552da3"),
		nonce:              decodeHexString(c, "05af54d460b5da4e8c4b9a152aeefe1f"),
		personalization:    decodeHexString(c, "233ba39ce7a428f3eaaccbe5bad418a9e1ac16f904a34391b3b14ffec1611a11"),
		entropyInputReseed: decodeHexString(c, "0f22a190c30b04e6258c7b08e4fe8135209b91ea2eb6231fa7335a99efe6c77f"),
		expected:           decodeHexString(c, "f3a692f270c24aac9c469149a8d529b15a56cdcf2b95ce640725e328f4b27af190c871d260b5897120952d3df8cbf7a41d02e945cc9b34ff6182e2350a5d03a209e7cd67ce4f0f1ab1f19d8d8ed81f00fad5fa24f77d312afe25792294243351bc9c83fb67c915347d7924b4416a65fe9982ef089b8edb9fbbab77086e898ce2"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_11(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "d23bc1f954e2f6aa32b83633813900c25cfab39d6ad0e10e2d1426f6649c796c"),
		nonce:              decodeHexString(c, "e89592da614c83554fe01352b6ab58de"),
		personalization:    decodeHexString(c, "e22ee6eb64b94c424efb4e650f61f4660ff68dcc90dc68ec75f817531c4f6df1"),
		entropyInputReseed: decodeHexString(c, "0a32233c8b4a525c7c15625646e79eb51c4cc918cc4663455492bbfdb3617f94"),
		expected:           decodeHexString(c, "1dcd53785fb9ebc6d0035119e6c4ef9814e7a60128a864cd1ebc484ea585adb9d1881d70c9e984c57d006965b5090b43a6016a3eaab08f88c9b9f5ae8c5503a4662c62ba2c9d0861dbbc3d0766994b07b34d645f1fcac5f7f960b1245386d08bf57a1e2803566de398249a6b63f83546d3ce7e716e916312fab244034fbcd7b0"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_12(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "25fec449dbfef835fae8896f5fb20ad12649f5032302a24159b18cb82afbbfdf"),
		nonce:              decodeHexString(c, "5a2140bdb9b5d429cfd3a6c722063880"),
		personalization:    decodeHexString(c, "5ec2aaeb5439d91c900722f115aa06c413f7cd7fa0fb0cb9fb0303f4d5be753a"),
		entropyInputReseed: decodeHexString(c, "42229d522cbf79e0828581740a376419e8df770424be70b27340fb9da3a45e9d"),
		expected:           decodeHexString(c, "47f4b2d8d7cb78d426fe2e436948b0a30608d1e1b9e8aa4af55aff0ff07abc78eae2a5a143eb1bbff2e53528e388efe9b8814ae66b8588defab5b25cc861e791f99fdd2b92c04ee8406676547b3917d67b65baccd07df2f0073567d417034d35ee88da52e8f9c5a06152c424b9cf1a1c474ada645a2faa235dc503bcaee2fc5a"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_13(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "003dff168ece519944cead612d64405094ff38f5b5ec5f690357b090bf2f3c95"),
		nonce:              decodeHexString(c, "0bf0652a61f1c358f6ddb555bb2cc641"),
		personalization:    decodeHexString(c, "9b0695d606abb66db0178b7f0fbbe7d91bed91088bcebba0c7d340f8b86e5da4"),
		entropyInputReseed: decodeHexString(c, "f39ef47278148f871ddddee7fa67def8db78bb418baf75a121a4803d64e2d4ea"),
		expected:           decodeHexString(c, "88114f01f3027bae6cc79c5ac9fd1891995214f2ce4b193b16e46c9b02a53ce0a5966d61abec3b219ce4408e7fec3c86674d6f53c7cea70c37ad61fe8984c07830e815823dd83abb9ab998f4ecab993b98bbaf20132be4c0ca40946e9fdf7aa15b588cacefd50bdce6f704db38d49a614401daee9f384e337698594928d2df07"),
	})
}

func (s *drbgSuite) TestHMACAfterReseed110_SHA512_256_14(c *C) {
	s.testHMACAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "978ff9cb5baaaea04e076a5704faaaeae2a71f1737baf095e65c94d0c52e6acc"),
		nonce:              decodeHexString(c, "b3d5d0573beb8e96514f73771df910d1"),
		personalization:    decodeHexString(c, "9ba3aaa00cd9fd53921a42a6a35a2b261f2ff3fc127684ba41d8db6a24e0aab4"),
		entropyInputReseed: decodeHexString(c, "a47aeb9cb4b287c6e6e48f55c1af4084f6f99e8f4f6e67e7771e3a452a67855b"),
		expected:           decodeHexString(c, "c5b179d2fad24da651500a9b2acc1ecbf2e80722d44561d873f9089054512e353665e6e9156d5f8c9546631a6f53ca27754de38a9a877ac75d6252511ef376df4b0f42e0e93bbc3b00c7627f9ff7508740ed2e24b8a19b47e589bae4a3285d8d7c4db4bce2c40e1530e1458112ca5d7e9932ce871e4b9c8acef5d77efee00095"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_0(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "7d7052a776fd2fb3d7191f733304ee8b"),
		nonce:                 decodeHexString(c, "be4a0ceedca80207"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "49047e879d610955eed916e4060e00c9"),
		additionalInputReseed: decodeHexString(c, "fd8bb33aab2f6cdfbc541811861d518d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "99afe347540461ddf6abeb491e0715b4"),
			decodeHexString(c, "02f773482dd7ae66f76e381598a64ef0"),
		},
		expected: decodeHexString(c, "a736343844fc92511391db0addd9064dbee24c8976aa259a9e3b6368aa6de4c9bf3a0effcda9cb0e9dc33652ab58ecb7650ed80467f76a849fb1cfc1ed0a09f7155086064db324b1e124f3fc9e614fcb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_1(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "29c62afa3c52208a3fdecb43fa613f15"),
		nonce:                 decodeHexString(c, "6c9eb59ac3c2d48b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "bd87be99d184165412314140d4027141"),
		additionalInputReseed: decodeHexString(c, "433ddaf259d14bcf897630ccaa27338c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "141146d404f284c2d02b6a10156e3382"),
			decodeHexString(c, "edc343dbffe71ab4114ac3639d445b65"),
		},
		expected: decodeHexString(c, "8c730f0526694d5a9a45dbab057a1975357d65afd3eff303320bd14061f9ad38759102b6c60116f6db7a6e8e7ab94c05500b4d1e357df8e957ac8937b05fb3d080a0f90674d44de1bd6f94d295c4519d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_2(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "0c0d1c0328a384e697678ac87303dd62"),
		nonce:                 decodeHexString(c, "c8780b4ac33f1867"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4ea4dce5b190d4e381eb7a5b5e12b4f1"),
		additionalInputReseed: decodeHexString(c, "0557bc052aa8eabab0baa42ca38fbbe9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "985865c180e0bfb7cdbed11b58b5e509"),
			decodeHexString(c, "f40452f8c5b8f4cbc1675f70bb803740"),
		},
		expected: decodeHexString(c, "4a1f442eae6c861b622014b079dfd47543176b82bc60826cfa02d3923ef0563f8deba8362c8d1950a70e80d67189fb4d904b855ed0ac39942aa8673e0951b4876354b849a6c1c51d0c35a3f4ed4e2f22"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_3(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "7cad65e5cc2888ae4e960f5d143c1425"),
		nonce:                 decodeHexString(c, "fc0785db471cc55e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "66451d29cf65d899a281905ff9b29e87"),
		additionalInputReseed: decodeHexString(c, "800d583b2560d2a2300132ee2d13f19f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "42eae705c2225d212fa0554ac6ac564b"),
			decodeHexString(c, "72081e7e70200f1982c3ad9cb1d3ddbe"),
		},
		expected: decodeHexString(c, "953e92258be7ff61b97077252ab9835231e366dfa5b635fb889c337562a2641d3aa9e46feeb2a4ea03cb73f1f801594c3cc71d2945c11a52bb0e93419df5d0854ad5f2e36d223c119e145cad507495a7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_4(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "3084c8811564168bf7834d9a6c9d0ad0"),
		nonce:                 decodeHexString(c, "821b13a0b66dddc5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ec2c90278236c08b6f657611a16636d7"),
		additionalInputReseed: decodeHexString(c, "9a7665b3883bed37a48b07f98efa4b8b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "28bfe9605ba856073ee69145ccdda4e0"),
			decodeHexString(c, "c26d7c962574aa587b3eb7a8c29b2e08"),
		},
		expected: decodeHexString(c, "36908adee4c1e7ea4e2f266b65aa7d7b5113e4b4377adadf4406bc573e04374a7e8b9b9b36eb0384e9336a9e7b4f308b463bd7aa9476154ab13181da5c2da9675a376b9c82ace5391e378fdd0cd4ef28"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_5(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "a0410a32703720abf2e28e252b5b9176"),
		nonce:                 decodeHexString(c, "cb96935082bc9ef4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ca7bcab78fce7da97b0158379041bd6c"),
		additionalInputReseed: decodeHexString(c, "b70982af7b5e337cfe989703bffc09e9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8df8b08f648518f7526c24bb95df1e44"),
			decodeHexString(c, "6775865f451ee055ed2242076debe237"),
		},
		expected: decodeHexString(c, "548f66f0acd9ed887ceb7f95d1c9a0c29e2f6007b92c581e615139256bea63d0fcd7a9b950e3e89419d2142c5d8f5bbcc2ba5b0dd67689b7ade01d984e303a529165dbdd140edd69c3ec6a4ddd63e091"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_6(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "c2e9a6e2e29f47dee0e808660c446a4f"),
		nonce:                 decodeHexString(c, "aff465073a97862c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2ab6787095e944c5276d29bbbbd7a777"),
		additionalInputReseed: decodeHexString(c, "358ffeab6a24f932abd4c9577f84cb13"),
		additionalInput: [2][]byte{
			decodeHexString(c, "37578c2d9b68d43d6c83164a4c43ce37"),
			decodeHexString(c, "02a7c9575d9527a33df9fb566373db3a"),
		},
		expected: decodeHexString(c, "fcd318c83563f72e5a21d4a93a84254e0c3bb6d3ded55c3d5939dbd5d1525062fd587a422012437aeb88589e669e5a5d57f7ebb16e30590f6debd0eced84f8e57d47a3d123a52361145a8fab258ed19b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_7(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "c93859e7fed1163b070bbefcf5ffb0a6"),
		nonce:                 decodeHexString(c, "6a6f5b986116adbd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "959d37ea3b79a197449169bb01e0143d"),
		additionalInputReseed: decodeHexString(c, "c62840816ae06eb725be9dd3e2954cd5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5dc60578a6a309fae33ebf162c22fab4"),
			decodeHexString(c, "00d0fac12a9b66b7ea936411f1645d4b"),
		},
		expected: decodeHexString(c, "ca2eb212b29d5a38cf72409cd8cb4bc401eacbc6e59c84551cdfa12c1c8fb39c29c9d49905b25953f727ac24453ccf1c6f20a4c3fa7c33b052e4e82c7fcbab70ade865d249b6a27e0b5eddccf0567d6d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_8(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "237a566e4a46994fb13af5b2d4321a03"),
		nonce:                 decodeHexString(c, "fdf5cc54f461daf3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0949f86b7b223fc341ddbe525c533339"),
		additionalInputReseed: decodeHexString(c, "bc252901f8f5c9357722a424b0af1bb1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6020d93df16b10c31d8802f6bb9ddfac"),
			decodeHexString(c, "f9104117190d905a30c65c0a76148c7a"),
		},
		expected: decodeHexString(c, "70e0611f1cf70ba93e3cc53da83fc3d6064b293e90c117ec12cc79c5e4edf845b6a5e2c4ce75ffce5d18a75e24bf51300bae6443f04a71047a8f522edb370689ef1b2cc13769865b69dc232963d90419"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_9(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "80c2b6fbd576cd57c38d1d1197b9e7ad"),
		nonce:                 decodeHexString(c, "43216111a1ec8b5f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "31dfc1a4e05c15ed96288386d0768951"),
		additionalInputReseed: decodeHexString(c, "1af215d9b991e4f7ddc2a89fe23388a1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d889e43410eeb2a83cb6982f38077756"),
			decodeHexString(c, "c77e7bb93115c10a56db1245e610e8b6"),
		},
		expected: decodeHexString(c, "af9f8c34654f44f42914070dcf1e971884902b428c7332913ddf2e342e776e01dc2fc73cd803b3a492edb15e7cc755babc23d8a5007bb0bebd7f02bd168d055948e6a5b66a3016951697617eaad371a8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_10(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "d8041e31215f7c843effaec3ab722e1d"),
		nonce:                 decodeHexString(c, "271753acf2ec9ace"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8b5730e21c0c30f9daa98580695c4572"),
		additionalInputReseed: decodeHexString(c, "347fc86229e2e6f6af2ead186248c2f9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a09c1b813fd11102df392d116f127de1"),
			decodeHexString(c, "0ab6c5c7f689bda8a3a7f406bf6df33d"),
		},
		expected: decodeHexString(c, "e09414c8f5ff2d8d6b6523729556dc1b4bba6e4cfc7a929e4561cfd32e5484918c7f21e0b533c3e3827bb8e115cc6a2aa5def3d946001564eda8cb36fa5aa771651e4837ae60beba32e01f5d59c0be0c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_11(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "b0f69a20531c5b186bf8c16b25fa1de8"),
		nonce:                 decodeHexString(c, "d6817ba362a9a00e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a3aa59b018b7ce8648b7f84ab925050f"),
		additionalInputReseed: decodeHexString(c, "2905e4b0803d221ccfba43bb4f1e3338"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0460c4ba1738dd7c662e0f4337a454c5"),
			decodeHexString(c, "b5a7870dc99f5c2ead93dae773ab55c6"),
		},
		expected: decodeHexString(c, "a542a3ba51f4024d3876a32fd6fdaa136c024ff36b9662ed82cf580bb1d33b531b124c0e28fd0b8ec06e50dcc11132062a55bdb961a908688ddccda12be8f1242f8a5ada53939e32d8c0381250134686"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_12(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "188ae42fbe0f4e9e17c7b0432712aaef"),
		nonce:                 decodeHexString(c, "b1667157132f8d62"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "40fd9d19ba9f5f56f58bd08e9842e2a1"),
		additionalInputReseed: decodeHexString(c, "88560712277f73d457f62b3769189381"),
		additionalInput: [2][]byte{
			decodeHexString(c, "892957bfbacc684af6d31c8befca8e4d"),
			decodeHexString(c, "a9e8986ff89479fa506780b07b09c2c9"),
		},
		expected: decodeHexString(c, "e77187930ac661bd1a422e29cae4c67370d9e8ab0e44ea9dd86b11b2a1c5271162513587ed02df4c91b0e04158406763e72a443a196b6a2e22af72ef2732e3916cabf518fa58ab89fea5528153818a6c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_13(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "ad490819bbb9e937e0d0a749eb834654"),
		nonce:                 decodeHexString(c, "70fe146ad9f3ae0b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "104810bbb28773e538b466319bef5d6a"),
		additionalInputReseed: decodeHexString(c, "e01882c8b9bc52d584274912d93367e8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "20a03700499444028da4c8fc5ba42d8f"),
			decodeHexString(c, "6574be269d5ccb5d10ad5fd6add77e2d"),
		},
		expected: decodeHexString(c, "5662845711b5a6c04715dcb3293f091709d87703f1a449858f074858958260ccd833d9699fcd0bcba7956f9036808984828a3a9db2041556c77b1644a7566bd8892ed53e418cb74bca1a8d65f545c3e1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed1_SHA1_14(c *C) {
	s.testHMACGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "aa4ea001160441917ac60f6231468f7d"),
		nonce:                 decodeHexString(c, "a993e136dcce8208"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3cc6c81b69e67ead392721ea79b63e97"),
		additionalInputReseed: decodeHexString(c, "50f89606e793786a14ed11b3026313ce"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2445d7b670fd77bb62e0c1db75671863"),
			decodeHexString(c, "32b79488b44093ee7fdb4441bc302b70"),
		},
		expected: decodeHexString(c, "1b803314c8ed124bf6550bc63babf09f189e59df3d8d4103567c442b6783c32b236a107d4accd7ab3e465d29f6216349baa298ebeafd3c5cc198f0880868b8c9b67d94fd53626651200f5dfc939d4128"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_0(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "03e7b41c95818eb0b667bfa8a175a824"),
		nonce:                 decodeHexString(c, "66a1e417a9b6b92f"),
		personalization:       decodeHexString(c, "126dded5eb0bc81be37c10bcd9d5f793"),
		entropyInputReseed:    decodeHexString(c, "d17e98c2e50ee0db00d25c3364451e95"),
		additionalInputReseed: decodeHexString(c, "dc596d188e2343802240bc7f5cc60516"),
		additionalInput: [2][]byte{
			decodeHexString(c, "14c8ec10f5bdde6b9e75898d7f9f03d0"),
			decodeHexString(c, "31aa842afcc1daa94098241a87d6ddfc"),
		},
		expected: decodeHexString(c, "4739b1bcf87404a2290829bd7a61f0b391a794c71c055c7cc513b28dcb5fdc88645bc9cb490f41fab134c6b33ce9336571762754343961de671b02a47960b4b4e23c5bfb87dcc19b260b3bcb921ae325"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_1(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "5810043ca63ef5e573e118abd09d5e9c"),
		nonce:                 decodeHexString(c, "aa873d3a2a2a1c7e"),
		personalization:       decodeHexString(c, "0ef00fe3e9126bc53dd61b8d2cb9a2a4"),
		entropyInputReseed:    decodeHexString(c, "b574167bab56e4d1ab5c1725421be3aa"),
		additionalInputReseed: decodeHexString(c, "4e19f01001d1f550ce0dd0bd4cd3e216"),
		additionalInput: [2][]byte{
			decodeHexString(c, "684183426fb6d102f8e2ce55c599b740"),
			decodeHexString(c, "1a80710e25c78cafb81cc119adb0a2f9"),
		},
		expected: decodeHexString(c, "eb4c7059612d0ab63c0f28ceb7b8f89760c3d2b508f98441412bbe0ac133cafa7e2981ac2750272ebe503622b477c67e86930c9198fe21f7288394b2e11a5302e3db03b59780c49907ef720199ea1362"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_2(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "c27d1abc5afd30a3025d42bf9efeb8a6"),
		nonce:                 decodeHexString(c, "f2608470db9a90f8"),
		personalization:       decodeHexString(c, "804004607012ed7b40ff0ad8f5ca085c"),
		entropyInputReseed:    decodeHexString(c, "ec4ad2a126b799402ec8a1f210d708d1"),
		additionalInputReseed: decodeHexString(c, "eb2393df0be0ff471d354343c43bf2ea"),
		additionalInput: [2][]byte{
			decodeHexString(c, "92618320cace6c075dcd69a634e76666"),
			decodeHexString(c, "da54736df5d2e0daef664e905864cc1b"),
		},
		expected: decodeHexString(c, "eeff317050aa3bda57bdfef2d46408b3fb2e64d34d4696254c9d8a09fa1b325bb3e3a973efe7918eb03489865f5e13e9a28a0bbb43822b9ca3b209ccaa1cd5bfa5139fe59e16248e1f468f944a0228cd"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_3(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "3f34680939ba128c07c5dc5aa161a870"),
		nonce:                 decodeHexString(c, "3a45440ca68c8d5c"),
		personalization:       decodeHexString(c, "e423dd11cf92c537509499eb891ef5f3"),
		entropyInputReseed:    decodeHexString(c, "2b706e7af101ae4a669b46dfa262ada2"),
		additionalInputReseed: decodeHexString(c, "cd32c88c56858cc5f6d39199abaf4543"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2b24bc6db1ece7a32cfe57df3f6ff74c"),
			decodeHexString(c, "3c6dc6fb353ce7e131f8d09635465d2b"),
		},
		expected: decodeHexString(c, "9dce0b5b3c8201c98f54501afce1595eaaa6e3e6b89abb6f6112b5bd5d1fcf549bd13e51fee87f0aab345571cfe7d7b61069660bd8cb8ea33406b6026ba28d02457e2bd3ecbe836829a4d91481fc0f75"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_4(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "94b31b718bc40b28cc5a67ea5e891c14"),
		nonce:                 decodeHexString(c, "e1683d0e243c4868"),
		personalization:       decodeHexString(c, "5dd27ab3ea94ac5c04f4f8c13c767354"),
		entropyInputReseed:    decodeHexString(c, "db7a613beadf1433550003dcedbd227c"),
		additionalInputReseed: decodeHexString(c, "fe1fbaabe7a2bdf4ffdcfac0e7e214e4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d71d9f2a6887681bef91f5c1aaca50b8"),
			decodeHexString(c, "06cfc99087437ab7754c5d626ba07083"),
		},
		expected: decodeHexString(c, "4186f2a9518371d123473a4c96d23a44c89af9bafe17eb2ea702902b5a955a42b05188b8daf7ec7baee352b365f46a3b880810af5c9678df5503b5e2cf9d02897be81e409145c0cdbfb83949ef327f4f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_5(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "6b90e0e1496de9735239ab6ec2876666"),
		nonce:                 decodeHexString(c, "9c65e1a4bc0f5c04"),
		personalization:       decodeHexString(c, "99455a5df2b13410dcb912f37c266093"),
		entropyInputReseed:    decodeHexString(c, "e446388a90d86a1f060ad436666204fa"),
		additionalInputReseed: decodeHexString(c, "a47f245fa6f0d928c17ed8956d1535a6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a88cdbf82362f1a2ea78ef5bbcbec7f2"),
			decodeHexString(c, "eb8da8a49c4917d71df7facd8e9399c4"),
		},
		expected: decodeHexString(c, "99b09a0bf4d00539f7c1f3c28b60cd86b47a33961da7a649e810a97c1388bbd712c6eb0f7df4b68cccc01b25defbec42b67f4a341c0460e7b20ab67abb34cc2a3ce5b5d7d06a186f48d95a7607ba0510"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_6(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "05474cf1bfa15e12bbea7cfa9852d152"),
		nonce:                 decodeHexString(c, "ea29f8442291c64a"),
		personalization:       decodeHexString(c, "70d00e37a88b30c450580eaed5d4d60b"),
		entropyInputReseed:    decodeHexString(c, "8c9dda22ca653f755d5a5f128972d4a5"),
		additionalInputReseed: decodeHexString(c, "651f8ad6d3ed2bf04262dc79ecf164a3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3e693ddf993d63cd4c9d464f2c84c8a1"),
			decodeHexString(c, "53db0c0c12363bab7b1ed57d420998ac"),
		},
		expected: decodeHexString(c, "590e747956e6d01eadd1c9b7b1387bfb5c20693dac84f70e2c2931459b3ca9534325d84eeef1b245d17b8cd059e05a3bf998ffb517feba0b047553633dad642e8cce5c4b7110bf57aa6416edd204f780"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_7(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "7e9a4732f5841617395ee04ade213b80"),
		nonce:                 decodeHexString(c, "785d2e4fef267d51"),
		personalization:       decodeHexString(c, "0e725f5e2e3f5b9cb5ec36c4a4f99e0a"),
		entropyInputReseed:    decodeHexString(c, "fe13973b675bfac30716d753cf2f6232"),
		additionalInputReseed: decodeHexString(c, "02592ab8e4e2096733e6b300eac278ca"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2f3f8e2504bfe008aa1fee1150b47f05"),
			decodeHexString(c, "2491177e84e06c3c6b48235b29c316c4"),
		},
		expected: decodeHexString(c, "ca50da0839de54bd9fec1a4b1d6edba1e68b47970adc36fbf88e7757af6962d9b8ead266f8aad696f920a1bfc702d8ca43c4504cfa42d7a603a55fa524c62fe49e698f21eda7025c9b840ec1b9795066"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_8(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "fc16d69df6254a9b7743ca43a64e9d1f"),
		nonce:                 decodeHexString(c, "5986d771b6cb069a"),
		personalization:       decodeHexString(c, "82fdba5fb4c04bd550eb5a8e2e4b0a31"),
		entropyInputReseed:    decodeHexString(c, "65484fb4311a80479a4d00a42ce16cd6"),
		additionalInputReseed: decodeHexString(c, "998b27a8e314b99b4ca06593bf9d4a17"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b97706d6068cbf8df35b28a2bcba3b55"),
			decodeHexString(c, "c24e22cf478a61f1adf5beece947e16a"),
		},
		expected: decodeHexString(c, "29573d54e80e43625024d149e6ea55cce5728bb456e86b75175d38ad95aeb4ae5c47270ae774374ca44e2230c5d1861ff954f9fd432a5e8367abe49a88ed8eda504b991747ea9c4cf448ba504cb7de14"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_9(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "e917537e534f9433e40f8271a799f859"),
		nonce:                 decodeHexString(c, "524ce9bb84a53caa"),
		personalization:       decodeHexString(c, "682088f3ce89ee635f5c8ec25ea8c8c8"),
		entropyInputReseed:    decodeHexString(c, "f9eea9984d8ebff701eb7c5f627074bf"),
		additionalInputReseed: decodeHexString(c, "085a9d20a2d017c4d3e57d20cba52714"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b07122c8eeb299295858a2fd1d3b6098"),
			decodeHexString(c, "1637261b4b3e7761b5923048a46d1eb0"),
		},
		expected: decodeHexString(c, "be40786139aa3966fcb85198d861f5239cbf8886ae8e814571217dd4454c8646c4c8428558ee3d80c5297add64d6d1a991c4fdcd72cf42f82d73a89b8bd2364cd119821b1bf54f69acd01a7586c53925"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_10(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "85ed8611ac58af2d6b878ebca74256d3"),
		nonce:                 decodeHexString(c, "f2f20a7a4f174822"),
		personalization:       decodeHexString(c, "f2612085c5d8338c9b77b9b1eb8092af"),
		entropyInputReseed:    decodeHexString(c, "de6ea8d0cd0bdf18d395785f0797d371"),
		additionalInputReseed: decodeHexString(c, "f414629fe7ae0a21b211e09fb66512b9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b943191d1882a390032339bdefd19351"),
			decodeHexString(c, "4adac9816998cb105d1c4f7cd3d53764"),
		},
		expected: decodeHexString(c, "dd79426f61e81d86561a98853b7e187eff7db3e8958944cc10a74e7b12db3b08bb4436bf64694c5b8bf1857e791ae7194554aef6b48d2b33ad6854bd2e9771bbea3e08c2c083a82cb07d7242ce22db2d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_11(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "6652b1c0403ef16416db88e494561191"),
		nonce:                 decodeHexString(c, "15d3901cd7dce343"),
		personalization:       decodeHexString(c, "a580613da8ff7b06580db9a42bc0cdbb"),
		entropyInputReseed:    decodeHexString(c, "c718324222094c25d85c33857daf5b28"),
		additionalInputReseed: decodeHexString(c, "923014039cd117f924900cd330607d0d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8b42f93d2ccdfea272f7a03bf37b831d"),
			decodeHexString(c, "28ce97668d6cc92da8ee25077cb25de9"),
		},
		expected: decodeHexString(c, "d31dd59237b3c8b2885838840261727ac116bae673b554fe9c8b0c64b1573a25bc4a14c1942d80563fb4165c57e1aef5c94c1f6b1f88ec6bb2bbc10ccd8149d175e4965d07341aba06a9426df0d0fee3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_12(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "f297186aab4f63f6fb85c4f29d659d6e"),
		nonce:                 decodeHexString(c, "48fab200424d67dd"),
		personalization:       decodeHexString(c, "9414f702fd050f7edb9a648cd833f8c9"),
		entropyInputReseed:    decodeHexString(c, "52fcacfe725ad65c0a47de25690c0ac5"),
		additionalInputReseed: decodeHexString(c, "91d5eb7962ec1051004041f5d23ffc34"),
		additionalInput: [2][]byte{
			decodeHexString(c, "94afc7023650c2edcd8c957e320b04f0"),
			decodeHexString(c, "b6b79df82780297261e00ef05389b693"),
		},
		expected: decodeHexString(c, "ebbdde904350c6d803fe258a3aa7a63622f2e9540f03b1cf687e20ef35fc5ba6b616254710cd4515eaf69abfba0ba778b87e4ce1f9f1fef34402c6e8d23efbdeb7da53a3db733e69527d36f24000251c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_13(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "90899d2da97759cc609f956f5f391a0e"),
		nonce:                 decodeHexString(c, "dbb422f45afa0c72"),
		personalization:       decodeHexString(c, "23261c0e7226d749a0d7d0166e92dae9"),
		entropyInputReseed:    decodeHexString(c, "74a2ef5da636fec70c6d926b2670b88d"),
		additionalInputReseed: decodeHexString(c, "8ea2e411827c5d8b54b24da8ab41a841"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b9ee1c9923240523e7e4745ef93581bb"),
			decodeHexString(c, "bb0f785972cf68222a5eff4c7dd3e28e"),
		},
		expected: decodeHexString(c, "2af35b1fba0c62aae991c12d50c86ce2cc633224b158b157459c41a5444072e918b4c777bfc84f8000aa238a46c5d5258057866f2484971d2708c33497191a2686f8ee9e3657616e00dfca61e0ffb8ff"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed3_SHA1_14(c *C) {
	s.testHMACGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "4e8227e8422d674cdb79e52cc30b7b84"),
		nonce:                 decodeHexString(c, "f81cc05b03339704"),
		personalization:       decodeHexString(c, "2d6e4af02acaf230bf746157ec624ba7"),
		entropyInputReseed:    decodeHexString(c, "dba3e731fc81949e679a4257c5fd68a7"),
		additionalInputReseed: decodeHexString(c, "deebb368a79c1788528b589056b1194b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1dbbc7a131e98344fd748edc6fec11a0"),
			decodeHexString(c, "0266e8a066dcabaf6991c7a91e1c6e56"),
		},
		expected: decodeHexString(c, "e51fc833a60b099e56996a66820368f5332822c8f9dffe8459c80d2512d451e1669ecf6e562a1c295fa6981fa651fdd3d8d936c18f88d5844393a2a371aaac8f485cfe92926f1a54980500edc43a0a6c"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_0(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "8709676b915ea6171229f79367c1e8da"),
		nonce:                 decodeHexString(c, "2d7f08c26dd4fb26"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "964e10bc6b822c2413f61d9a3fb353aa"),
		additionalInputReseed: decodeHexString(c, "188c1d8ed94dbab388217f056c936600"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e2ba17f4757408bb8b97da74998704d2"),
			decodeHexString(c, "bef0c60ff759b6ff4e373f75f0bdc2c2"),
		},
		expected: decodeHexString(c, "fbd16fc6d36d8e17f30d5b8627b287dfd34d338a779d8ef65d012ede5e37970a70ffeb4b369dee49cfcca0ee561ee1bbed2c8ac7bb68bcdf0ec09dd89f360e3c1534ac937abda46dd5180e71f760f6c8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_1(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "3eac2a121dbb7204932f5018b34c05ec"),
		nonce:                 decodeHexString(c, "5e3569c6b0acd9bd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8f588a3cd773b1ec0b28b716e85babb7"),
		additionalInputReseed: decodeHexString(c, "2a6a72c26a5f8ba560459fe75fe55b9c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3cf33b16f3e13b7f124e5aa82da06258"),
			decodeHexString(c, "c3c38d99695770a67ba574d6a210556e"),
		},
		expected: decodeHexString(c, "b99899aa5eb069fc9a508bc5417c61d023f139f7c9333512195c922409b6992231c7a8e442e69f0fd4e7ff3023c4516718cf12b038e517712483bc1724e3ca7c988266d9c39c09d09ea2167dfc359e02"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_2(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "e207a5168ec7bf1e1ce41ced1ede10ab"),
		nonce:                 decodeHexString(c, "bee06268023d0df6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0106709d732609042f11789124630521"),
		additionalInputReseed: decodeHexString(c, "610acf26014bc59c55ed3c66d8410ad1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d2ca5d29d18fc8e21fb4e75b2371ead4"),
			decodeHexString(c, "0e06604a0f3517d9561fd95662211ae4"),
		},
		expected: decodeHexString(c, "4c2d499fff3d98b9ea637e491297c93eaff5592837986e607b26b0cf71147af468711b017514037ad95d4f278ce7211714092b5a569cb0c2770620e75f8220ac0f9052cbde15c67188e1ee096576408a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_3(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "873256c1590180abcbdecdef07650008"),
		nonce:                 decodeHexString(c, "31e822d39d9c9fdc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ca3dfe9b1a0c24bd59414300b5f58c49"),
		additionalInputReseed: decodeHexString(c, "e9b405d3a2c07e07bd2995c46744e11e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "db734a41fec296258216d5016aadd710"),
			decodeHexString(c, "16887f7485974e71d362e9d3d8af92cf"),
		},
		expected: decodeHexString(c, "7fdcfd2590f8b9fb964f2755832cfbcebaca36947c424aaf9c766f6747b7cacf8d2e5a033724c0706465e1a263c44baa2a14c1691820488f246e03755405520b27c05ecb01ed21824691ec66e467af70"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_4(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "b7b44c2f1ca65103f0b8a1d97b03fcd2"),
		nonce:                 decodeHexString(c, "27769284630ee9ee"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "94bb957f6c1f9403ee5e5a705d33506b"),
		additionalInputReseed: decodeHexString(c, "c3e1e1a6e21a3ccbdb8c7039fc4a7752"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c515e8014b77a853fe9a1266902f2d4d"),
			decodeHexString(c, "9297195e4c5d94f4ad811891666ab150"),
		},
		expected: decodeHexString(c, "a03a0012c88a4c93b781ff67ed767ccab54a7c86d2090021d790825d9e898f98e58d399bcc7b4c622cc34315aff512a3047503407abcbc8cec48bb72fa899818f1623679b7d4abff872f06fa7db22358"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_5(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "4976765ef957d389cacf5ba856007fc6"),
		nonce:                 decodeHexString(c, "18eb3fbe12369a9d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "200b890d133d92fc7cc18550296ec357"),
		additionalInputReseed: decodeHexString(c, "8dc0a42fa8d276bb284dd1f908cec0cd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "31ed29c33544e2acca2003f5248df24f"),
			decodeHexString(c, "a1a36e45725165f78f73bdafa784b356"),
		},
		expected: decodeHexString(c, "488f0d75726615a88e0baca524b09153e9368c213a9ea445ff024a2939def1fca8ca995ba7be6532be08fb563433cb3e33b35f08f4d2ef425e236e92f8e02a8dfd2260b681a4e89677178898ec0fc526"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_6(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "71e316c1b653371e940f1ccb3a5a99b3"),
		nonce:                 decodeHexString(c, "39fe4a165288a370"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c38112bf75544d0e330d9ac04eb4fe2c"),
		additionalInputReseed: decodeHexString(c, "cba66c75d1b5d79ff1736216faf7a775"),
		additionalInput: [2][]byte{
			decodeHexString(c, "249c0464f8559e27a5597e83aabeb635"),
			decodeHexString(c, "f681dbedcd2437f2d9a8aa66e9552f03"),
		},
		expected: decodeHexString(c, "68ba10d3c6f647852ab59bb3848afc4c9d34237da6a8b25f2a875f9a6b5f3c474ff3d403bcbe95cbe93bac7b03fbe23ed8ce2667f5863be299a7d133a54783b2b36bc69f101f30da298659d9e1610f39"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_7(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "61eab17a00a01594fab7dc717219fc9c"),
		nonce:                 decodeHexString(c, "4bb5e54c248da1d9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9a88c53085286b73e43e6137d772a67f"),
		additionalInputReseed: decodeHexString(c, "4ea3200a9155c455c2d8e5f3b4dae32e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c4c78c8a03950eafa5103eaad5b99363"),
			decodeHexString(c, "86c28fbdabf27c3ac8ab43b6147a7c49"),
		},
		expected: decodeHexString(c, "b9c3a37ccc4f599858b49d479725c45a0f17d7ef4f183506ad6b819c9831eadc9b60c38f9f5e3fd51ef55d0dd23e3fbbe6d05ff7404b526f6a36e9e7eec899b45b2da6fb2b56b39c6c665b8f5e4f8392"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_8(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "cc950c2f11326be58cabb501ca9e9ca3"),
		nonce:                 decodeHexString(c, "3a3c12c7b948d302"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8382fba530dcb824d9ae09266b484fbf"),
		additionalInputReseed: decodeHexString(c, "415aa7004362549edfadfc57b4b5d1f4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0a2df5bedc61cceddf034ecc5c43efff"),
			decodeHexString(c, "bd96d85e29697ab9f4c4bba967bb4371"),
		},
		expected: decodeHexString(c, "48e0f8bfcf8d856786656fbed96ec70e17dce5148edc5684a23358a42c405d5030108a4ac73cc861447349b13f005b5b5e22a0fc70fd5eec939cd28535577f8a9a62d6e8d144f9958af25947d63d4891"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_9(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "6b822f9bb1e5127aba42af106c5655d1"),
		nonce:                 decodeHexString(c, "58ead933a8ea9b48"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cb7b50375cf785c9a02fd59de989c0eb"),
		additionalInputReseed: decodeHexString(c, "d758c26022712739c51a44697eb70cc0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "87b6a74746a3f23177e873dedaad683b"),
			decodeHexString(c, "2bbc5535b8a5dedf7b645f806bcb608e"),
		},
		expected: decodeHexString(c, "8cb481b24f24c51f29b9769c90e79bf50f0da5fc1a7f4287cb33dc2b6c3d358858baf25ea2a67d5c20dbbdba3911c38a94b05e17af80baca2fee5a6fe3f47b3b7f6a85e9db9be9d58bb510609249c0b5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_10(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "d6a5eb4fe45788a2694b1ce1bdfab994"),
		nonce:                 decodeHexString(c, "89a9c7a21ce6b2ab"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "bf969403ac8867c17c405ef0d5ee0103"),
		additionalInputReseed: decodeHexString(c, "cec9401c46efcc8dd47decfccc3c4ecf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d34c03045167446397a20b049e72cc0d"),
			decodeHexString(c, "dcf866abdcc522b70c6ae69a654e019d"),
		},
		expected: decodeHexString(c, "5d5e430a0c9df6c83414ac0162f207a522988e0ce8414f7968b445799be6a45c6417d7b77349b7e3884b282a1adafb81867b0a5bde68d04e9ad2c774084dfb9949ca67a816406981679bceecb241480c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_11(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "e1e8f97fab82b107857eec6ac1dc88f7"),
		nonce:                 decodeHexString(c, "920157811cd99eb1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2662fa0b43339d012dcc4ca152819c1b"),
		additionalInputReseed: decodeHexString(c, "434808a37155d3e12b22eda58df97f51"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a2775ac81c8d0906cbd66d6926b060f0"),
			decodeHexString(c, "640067b71ad0d1605e27983e2f67691b"),
		},
		expected: decodeHexString(c, "561a979e6e6852304d2864c093cd127f7288c7f71543918e0ab0fd4183be522a8e4b3e82b9be4992e6ff51efbae33418ada11b8931644b767706e11044a0693964d4b849c79e0f6bf5d68765830cca39"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_12(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "1dad15a3ef8cfad9999cfdc2039b3f24"),
		nonce:                 decodeHexString(c, "4a9438e0db626664"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8291c7b5856e8873455a913ce83886cd"),
		additionalInputReseed: decodeHexString(c, "e03b40f7ca46a954ea4e1fbf414be9f6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2b79bb6b91a94981d79f1891b23da99b"),
			decodeHexString(c, "7fb9c973636d4fa2cdd2dda10afa5340"),
		},
		expected: decodeHexString(c, "e6d43903d52786fb5967b87275652b8f7af5b97ed8a9333cfc0586d3dad9840b53adb67db02ed2232e374b145cde582f54c3002e83950084043f51a286836379d10bd0d3d98c2fcb6da22c507c01d333"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_13(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "ab523f1ee60c55275341ec9bf77c7dbf"),
		nonce:                 decodeHexString(c, "f396408a9cf41956"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "bdd09fa363f2e531fbb3655fadc43279"),
		additionalInputReseed: decodeHexString(c, "a2f0d95201d3cda8bc4019ec40807322"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d32ec1329e167902c26c814f0e719094"),
			decodeHexString(c, "cec85cb7c277e1c21169ea5097b67cae"),
		},
		expected: decodeHexString(c, "14a7dd4e6231e600ad3d1ad6cfd327f58509077ba9ddd832007f6431344ff4503d8a3b6ae71e1ce78780116d257189a257d94cd503e82832904dcc668e1f4a6e63fb7c33f92e1bbbb71acf40fdceb7fa"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed5_SHA1_14(c *C) {
	s.testHMACGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "e669d35aa760d27c359ca54925a05eca"),
		nonce:                 decodeHexString(c, "4f12d70a6a9ec061"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6836daf529c363c5bb2dc00b3c014bb8"),
		additionalInputReseed: decodeHexString(c, "2ea98698b24aaee2c1d21b9383f5cc4c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e5167fda1fed23d757bdfceac2f6404c"),
			decodeHexString(c, "490e7d3e46022594da1a339002a3a6e9"),
		},
		expected: decodeHexString(c, "679987fd60d4194298ec93bee975a85a9067e784852da42b20a8699f7dc45c951f00d4b585d87214745f10e3258f568a80cdd55a4e96758e8f9ff8c1f85511980588d40f68873783997c0c9742a0356f"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_0(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "ba6abed642938168d88ead387d44db1a"),
		nonce:                 decodeHexString(c, "ec70d18c01216a7b"),
		personalization:       decodeHexString(c, "c0e525961ab9ae58fc72bde3023d2b5b"),
		entropyInputReseed:    decodeHexString(c, "9a9895f7a2f0521e4a43ec62b08ef15b"),
		additionalInputReseed: decodeHexString(c, "51b1151d6a8f7c4e5d9817ed38383849"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d12a45c94d603d45d0b9090ccd56a41c"),
			decodeHexString(c, "7eef8f4b0a03dc5c5b3ff447fbf007e3"),
		},
		expected: decodeHexString(c, "8ce561c4ff2e2af6b38b1189e1a1c6690af6c8e393478802f7e40b2e84756fad8627dda6fd9079102cddde9559af5b82731771a2245afb0d563b03e67838d4dd0d5716bf63a440ef5fff832879b0e380"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_1(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "c01f419a621644a59533348bccb01c29"),
		nonce:                 decodeHexString(c, "61b746f57b44773a"),
		personalization:       decodeHexString(c, "b44ba6364b25375a53a2989d70ebe318"),
		entropyInputReseed:    decodeHexString(c, "b5838340d5c044320d7802e1c99f23e6"),
		additionalInputReseed: decodeHexString(c, "8f2365a0a09898dd5efed98cb619dbe9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8d8bd3bc6ac23b8410e22dcd50021e05"),
			decodeHexString(c, "eb79141719787902f297d54f9ed29393"),
		},
		expected: decodeHexString(c, "d53e67aec6b8e193c8dfa5a4657295d988ad3ea4b94d9638bcc492d1d8bb73fdc4805bb8300a25fc4907ad85d43db14445d5ac2bea8d193da0f60964caaa959006c112e99a7b9b68f333064fec2b7f9a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_2(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "6a19fd0499c0f2be1168b86ea5d28049"),
		nonce:                 decodeHexString(c, "c74c06d4f748695b"),
		personalization:       decodeHexString(c, "8196291e0f98ac8e13cdb57df1d1de74"),
		entropyInputReseed:    decodeHexString(c, "a8cb86e4edf8a577603009a4ad73a3a7"),
		additionalInputReseed: decodeHexString(c, "24f97741d451cda7e48c6d1a7ac4a82e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cdab8471277c33a2c84bbd7544e10bca"),
			decodeHexString(c, "820456eece723a690f0032d35769cc68"),
		},
		expected: decodeHexString(c, "285ea40afad186c14a7f3b05780146ac85ba33996c617e7d4b13252916b96ef7a3cb61e3c1050d8fb7d6081bfcddc74715ea82bce5a02a27118e875ca682f73c9f8dde81e99c69830d7b4a60779c1b0f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_3(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "353ed6a742213e38a55996cd66e47d7f"),
		nonce:                 decodeHexString(c, "b9c3660f051fd0ea"),
		personalization:       decodeHexString(c, "17033197c41ac8170ab298342185db65"),
		entropyInputReseed:    decodeHexString(c, "8546a98b0cac372dd9aab53b39927de0"),
		additionalInputReseed: decodeHexString(c, "96496c4d2fd10dc5156adef22944fbeb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "da1addf3522ef2a2e552a7f8f0c4554b"),
			decodeHexString(c, "b041d48d77fd64a5034337234feab527"),
		},
		expected: decodeHexString(c, "45979121e111030f0f5123d105a1bc2f4c8e6b390042955f882a187bf4c115f849cd3b61294234c1a90bd54c2cc0fdd29029faab9f3788dd05231c7aed6db386058d9ed2a162f77850c358b24d2be933"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_4(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "55a47579dcb78e687f553477c5bfc809"),
		nonce:                 decodeHexString(c, "3c8fdeb8ebd1e03c"),
		personalization:       decodeHexString(c, "3d290467a8c5fb5f847905d31b893f37"),
		entropyInputReseed:    decodeHexString(c, "ad548984fdb2697ebb6e7dcf2958cdf9"),
		additionalInputReseed: decodeHexString(c, "189b709b9bd6bdc6b221d0ddb2c8421e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "41190fbadf94216847d8d39a2ed4124e"),
			decodeHexString(c, "cf27077812e34f7b9b009077f2672284"),
		},
		expected: decodeHexString(c, "e9de4c948418fac8a2c1338611c7056fa9cf0ba2c5302a5ffdd61c0748ca5ea6189616105e6686d777ac6f28255ed56e812305f41c0e9bad6a4dd16ba5f4ef6b36737274960ec4d723200e461a7aac68"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_5(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "1adf49c84a9df47cbf46717cb2b2434e"),
		nonce:                 decodeHexString(c, "2bd734040eb7cda8"),
		personalization:       decodeHexString(c, "d2980ec76279bad4de93b4622ea1e399"),
		entropyInputReseed:    decodeHexString(c, "50775400951810dcb8fc10443e239e04"),
		additionalInputReseed: decodeHexString(c, "251ef8c244dabdb342e9d1002f07f9fc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "faee840920c8d328fb86e79a6e618c13"),
			decodeHexString(c, "5550d4aebad33f9a54ae2d545b227205"),
		},
		expected: decodeHexString(c, "be9d36fa33e13aeede48da3560ba9ec8772400ebaa43e4f08a9d2968b64242589912b4698d83046dab38c25e6f88f1cc35b0b4549a868b3ddd4d64a193fe57b880059a347519d8dd9b3fad809da8c8dc"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_6(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "7e136be33f95623257eaa52bc28ccca9"),
		nonce:                 decodeHexString(c, "cd77c05f4d71c2d4"),
		personalization:       decodeHexString(c, "213312b29e0955bc1e94fa48be80109f"),
		entropyInputReseed:    decodeHexString(c, "ee1613ff36c6ec3d118a30696e21f98e"),
		additionalInputReseed: decodeHexString(c, "123ed916b103220c725cde18532f98a8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "834c545b69a936d96e20162353ccccbd"),
			decodeHexString(c, "dff2102e80ee0a202c3cdfecb331aeb4"),
		},
		expected: decodeHexString(c, "0a73d976e43d2851883f996c61f28ad02ba6b21d80a276e5ddc25e2cbc78473374eb9fc75e7343643bb4179a24b8ffc1361e3d700a538ba4c7711574f65a091a8ab84499cf5d37ff22f9ba2831b92ca9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_7(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "0736a083595a8397cb9e676cb37bfb5a"),
		nonce:                 decodeHexString(c, "0b184a6d0a630abb"),
		personalization:       decodeHexString(c, "c302503d86a2bde46a0c63561a86cfd9"),
		entropyInputReseed:    decodeHexString(c, "4b50977033483277647945ffefa109e2"),
		additionalInputReseed: decodeHexString(c, "4dad813744f54324b3046a85be3cc3c8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7441fefa60f7ee48ff387b587efcb3e6"),
			decodeHexString(c, "f0d005289a9d3993c44bb750d96cc1bc"),
		},
		expected: decodeHexString(c, "c03971897b854585994eeb8e3d6b556e1a8df18a7ff88f83e8fe17e6dd9071070a6dbef67cb612acf122caa7f817704b3efc6e1b1fd6c330e0a732abea93c00818e12c504fd8e0b36c88f84a95b49362"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_8(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "dec6bb6824d49c28ca06942ac5924c75"),
		nonce:                 decodeHexString(c, "7a94e6e859c5cc31"),
		personalization:       decodeHexString(c, "3e1f89d809af4c16d4e5b6193b721395"),
		entropyInputReseed:    decodeHexString(c, "201012915bda4e6c72b8ddccdcde21ab"),
		additionalInputReseed: decodeHexString(c, "ca3fe54add673ccaefd13bae3f609263"),
		additionalInput: [2][]byte{
			decodeHexString(c, "08726462b141dbaf769f9ae341f76f12"),
			decodeHexString(c, "ba0f9aaa0a505f45326fd9143072f7d8"),
		},
		expected: decodeHexString(c, "0b84059cb7b91ff4985af0ac76edb5d815c587c16236d5ac1d1966bb0c0372429b10724c5acf2f5e49f81eb09d71231172affc925c0530ba73035b3922b2a814f9945789a017016ba7ea8c135a10a047"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_9(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "423ebcadda51d2de406e0b4a6d3c9ccd"),
		nonce:                 decodeHexString(c, "a8992ad9c9205b10"),
		personalization:       decodeHexString(c, "8ae3b91c6061c0e41afd6b7f5077d8f9"),
		entropyInputReseed:    decodeHexString(c, "d2466179736d32539407740774260bc8"),
		additionalInputReseed: decodeHexString(c, "ffdd4b741a214555cea6254215c3152e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a6de82eb7e460a742ce54e321fb4ad38"),
			decodeHexString(c, "f9228086d7acbdf578d60ee7d882dc27"),
		},
		expected: decodeHexString(c, "a0ad941fa81688fa16012a72068a1c856a5e032912c55b6a2921c3d53c948e88690e6bdadfe6c24eef2a5b1d3082df982d429c75cf9e207c6dcb9bbd7437900efa1b158287286c3ddf35f235d6c0f219"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_10(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "9d56aa480176534276e039622b52d8d7"),
		nonce:                 decodeHexString(c, "cd7f45a79cb28cf1"),
		personalization:       decodeHexString(c, "13bb01995873c88e8426a596a5601549"),
		entropyInputReseed:    decodeHexString(c, "71cd80745587e10862597cb14c8ee60a"),
		additionalInputReseed: decodeHexString(c, "103f8c49d81b8da70d862c6c4b282d2f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d89c45efb2bdc71c75c02c85f86c44db"),
			decodeHexString(c, "ab0796faa11a90e27612700aecf6f88f"),
		},
		expected: decodeHexString(c, "1f05d7f9764763643130567168175cae82901f952b5d12b8ed46a86a3fd6f43e6ef30f02ec2f12855912c530e1f61e40c85544aab78d458d3c959494868ac63a04638d37c4d7e38377d4423dfa776ff1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_11(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "8c21a6d554fce12aabafa3830e72f586"),
		nonce:                 decodeHexString(c, "3ef819e18b4510c7"),
		personalization:       decodeHexString(c, "310dbfd99f4ce777e24142b5b3dc1cab"),
		entropyInputReseed:    decodeHexString(c, "bfdadd4e7f16b6326189f2a79fefa895"),
		additionalInputReseed: decodeHexString(c, "658aef06e0cd17bdca8615a629bc8b9f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d997b5be70601a668c50b6fa679bb095"),
			decodeHexString(c, "6aa272cdd21884ce7b3e9fa0428ad171"),
		},
		expected: decodeHexString(c, "18875bcb9451e188d24c8a23f5ab5e5508078a7623234e233f66c857ad3f2d1a76be2b69b9861a0290532f6fd710b634bfabc344e87ec656f9eb719bdefca7943313afc89601a66ee98027fcd9894a8a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_12(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "725cdc8f78c52ccdc85c0ce67b662d5f"),
		nonce:                 decodeHexString(c, "1b19ffdc15fecdc4"),
		personalization:       decodeHexString(c, "b749f4c60a1fbc153ab8a64cffbefcc3"),
		entropyInputReseed:    decodeHexString(c, "405ea28dc06bc10b0fecdf02ce53a724"),
		additionalInputReseed: decodeHexString(c, "c2421737b222a853f7cef8af4c6c519c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ec3e3f95023608fcc90a4edd789e0084"),
			decodeHexString(c, "ba1caaa50f9f1ee0f1247c2156efdb12"),
		},
		expected: decodeHexString(c, "f99e51dc8d9646b5afc6fe0f744235aac58a0a3f4b1265c45c57c483c704d95bc4768fa4fe16e7bf2a552d6df32f657f5dd051f6eb7c99d0bb2c8662746158bf46ce3b075a8f885714b247fca06c6eb0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_13(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "f3f8c2a4c504b4dd5cb3dcccaa3f67ac"),
		nonce:                 decodeHexString(c, "13e8e0bd04b423bd"),
		personalization:       decodeHexString(c, "7278980e1bc9451173c3b2d3a1ae52a9"),
		entropyInputReseed:    decodeHexString(c, "cf494a8396a93e12f7a9e89dbba24b3c"),
		additionalInputReseed: decodeHexString(c, "df5e532692070dea4d4b002e20f56ec3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "110bab0c7b3ed3ce03776348455b694e"),
			decodeHexString(c, "ee095104cc8e65ca55b37f024fa3afb8"),
		},
		expected: decodeHexString(c, "0d7cb33651281f827559c6f6d1cbb8c1a60c646dbd6a51a072f0babd63865e1358fad3522e432fee9401817ea01a9f299c09aebf5f7369e97ec26d4cc76faeae6e418d50bb2ed9f863dc4e6d8f94d9ee"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed7_SHA1_14(c *C) {
	s.testHMACGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "ef29b4c45ea0067b9be2be87f44bca0c"),
		nonce:                 decodeHexString(c, "ebeb3251292b693c"),
		personalization:       decodeHexString(c, "93aeb83c505b12f159ed081283245442"),
		entropyInputReseed:    decodeHexString(c, "8814dc65495c9f82a9bb16a03280abf8"),
		additionalInputReseed: decodeHexString(c, "4b0e2a22040fed46e12f193b6b02f5b4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "23fe574a28fa74d5b1e8d26957260d78"),
			decodeHexString(c, "58944f71d5691eb2cf3b9f857c9a7aff"),
		},
		expected: decodeHexString(c, "fc00d7d72b245c207cdf089b5683af280990b0c819160bbea6c4f94ff0bdcca99ba0d6ac033ceb8663b1310bb9d033084e22d5ceb45d984ad4eeaad1d600f686821557ebeef98be91d499a4059f9f616"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_0(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "a79509b8d65d1b16d5f30e691b091002"),
		nonce:                 decodeHexString(c, "cd827c9d65d8ac3a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "740c66d4755700102413af9144b9db93"),
		additionalInputReseed: decodeHexString(c, "de929b43ce734e7e3961627cd5e105d4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "602a1e21189ce1a31be1a61bd1797b0b"),
			decodeHexString(c, "09b09c7e75f9f6b8485d76d95a52a5b7"),
		},
		expected: decodeHexString(c, "f3cefd9d94c05bfcdfdc01b52b9b73cf3a558bf0fb03db77281b8a4e5a09e2a08908bb87aa965c168b91ddb7bef1ae3cf7c0b09a8f448b8ad8688cd18d97be6438fda447f9fec23db024ca3a9eddb16c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_1(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "29ad43273f7b22e7e7a96ad89d951ee9"),
		nonce:                 decodeHexString(c, "6dcd20355e816631"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a0bd338cccc31e281fdc4f5ee02dc147"),
		additionalInputReseed: decodeHexString(c, "754bdab143c0f5525dae6c7907582ea8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f8b071567607e115fe911d8aa8adecb5"),
			decodeHexString(c, "15da7a28d228ad6c54e1352608ed8f2a"),
		},
		expected: decodeHexString(c, "16a47f8a673cee4d77557f7c4ed163de9c981798dab0cc28f1e7bcc3442e2931e41622daccd4c26025a57100a4d49f3a2411d5c3a6ef2474bab2d526dbfa12083575e19998da961b24ff8bb42d820f20"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_2(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "c48a52d2324c9aa799ae7ba9ab3ee748"),
		nonce:                 decodeHexString(c, "9fe3483de1b6effa"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3277274301417894ed1914905d413f81"),
		additionalInputReseed: decodeHexString(c, "423e3aec71534fd5d5efa4f519459ffc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9042c0fc0848d8d837ce8021bdc0a429"),
			decodeHexString(c, "43ff169df7daf34d68e57248cc6a53b4"),
		},
		expected: decodeHexString(c, "888617a752404a22537fd21bd7b6a2ad3a3c0f6a08a5e84ec31fd920cdf132941159e8bf2aa6c4c975a61cb771d207686321ae25df211816f0ca19a7320ae154e55e93ed8d009899a14cd1c3ed57a28f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_3(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "145dba56d5ace91790a86e227214ce0c"),
		nonce:                 decodeHexString(c, "48095a47e49ac061"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0805b537da95648eb504ced8ebf1c252"),
		additionalInputReseed: decodeHexString(c, "786c0020ed111b8fa1a67eedc8154e51"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0d585ebd9e02f59ee2b221c14c1cfd13"),
			decodeHexString(c, "a1851a83f48c86c669240c92a20f2d9d"),
		},
		expected: decodeHexString(c, "e1081947cac4f36f82e81c14a2fb752b98c149bc3adea22308409f8bda9ddc592a91b99b31c0985ede37d255ab163221e5be5cb65b8b8e759a3f484b111ce3befd20c7159fd3bcf677c014f6f6ab8a67"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_4(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "d42c53c76d17f33854ec20097e090340"),
		nonce:                 decodeHexString(c, "50aeb4cfe4f353d2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2723244d8d423767d1c5fa525bb418b0"),
		additionalInputReseed: decodeHexString(c, "29a7ce3ea7efbd335b5984938e32be32"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9a6e85b90b835722c7e6d7b5afeba173"),
			decodeHexString(c, "02c8fc9231528b51cdd87ec0e25f619d"),
		},
		expected: decodeHexString(c, "a10cac5d26903db10edfb6cc317c209a1e77673aafe2b2d522a5f16bb03ebeafc5c66c2246abc70e74de7cfc2235d00a848d8dd8c04adad8c33a836275f06f0da08a31925d94a3ef736cd93e65b83c7f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_5(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "057a19f0d86a0eaaa3eed542a0ed0842"),
		nonce:                 decodeHexString(c, "0ed4b66698c95610"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "71b3cf56aa8337ebf8edba7a152257c0"),
		additionalInputReseed: decodeHexString(c, "c8bad72eb4ac43d4fc61baefce904509"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9679962e0ea3b4e2b42667a375d486ce"),
			decodeHexString(c, "17fdd94422a443baf36587cc5fe54c05"),
		},
		expected: decodeHexString(c, "7e4428ec6b93f55f84ecc49fa6e32a5580bef8484688c5731fd12b07f1a56e50853ee5597e9cb0f6786648a891227d50ed32d6c126df5147c95169d758f56735f97d92b0db837248167d0ba86fbd9070"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_6(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "232e969acc934cbf980c9be9d257f2ab"),
		nonce:                 decodeHexString(c, "6482ca068d25c6aa"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4bb2f58474306229cd18213454137924"),
		additionalInputReseed: decodeHexString(c, "bafcc4190875b53769b7c4ac45fd185d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2aa5da34f65804712dd0d20dd11c5786"),
			decodeHexString(c, "05993c607edf4a267c48956a5130a8af"),
		},
		expected: decodeHexString(c, "eb3a5e5b6cefe491cf71666231a4851e37905ffe2a36229896ec5078a92e31f5365d0ad3bcf0e6bf68b931b3415d76870350b47dc6215df6ee8195c4f71e58b4ec1f718559808bdc3dde0604e9f0a46c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_7(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "c6d2ae6a4120ad9579cc6b9b0f20138f"),
		nonce:                 decodeHexString(c, "4f17ec7d4c2db7dc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3663c6d13e27b70f9d9a21f5408ae787"),
		additionalInputReseed: decodeHexString(c, "57a20b870c0ec6157bcaf309bd17b3af"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d7f7a125266d57bd7e447d3f1ea4041f"),
			decodeHexString(c, "eb80581d03e5464ce760e2f4852d0db7"),
		},
		expected: decodeHexString(c, "0787a3d8a19a3838b8738852eaa67a17da6f95a872adad80e7667ef418ae01e0f85497494991fdbb6cc865e6015b3ecb67e20a2d7e6c2bd74240411d9b9633d0768270239230c7cc98f64aba1aceb339"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_8(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "56002b7648bbe4df8621ff33b12a8dc3"),
		nonce:                 decodeHexString(c, "243919a82bc27db2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4d2291b38800c3e706b7da830e2ec3f7"),
		additionalInputReseed: decodeHexString(c, "e933185166fddc7245b82464ab8fe19c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f00d917b6970e664f51a4f5c9c784813"),
			decodeHexString(c, "7d6925a1a45504aa323f55d48d0b7428"),
		},
		expected: decodeHexString(c, "cde8c781701bca2dadffe287a9b5b20509a056570d6279d221b2bacd731b501731268638c0c3dbfc3f6fc60362cf7e8134d06915bcf7aa58b1c1e69e4207f47ca148f3764d876699b87097457fc30baa"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_9(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "014eb1d1ca7a9e365425275dec87d7ad"),
		nonce:                 decodeHexString(c, "e178cc28c3234472"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "258d9b7a97340402af81179fd3ddfcb7"),
		additionalInputReseed: decodeHexString(c, "c62cc1fbec1be7268ca303d18c78add2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7ee3293d3a4c58c444a57485a0a57470"),
			decodeHexString(c, "bb2cd1fb6f6628c5b8ad058c0d61b0bc"),
		},
		expected: decodeHexString(c, "2a968678fa17cf1134a39766c4ed4985a6b61dfd16ea1f6899934e7e037768023ef6f6a7200d005c461c78cc6ca54723998fe67545f789828bd643d6437406511e9c60ad10c96cf3aac4319731416796"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_10(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "46acf73e320c79f12ad98c31ab938ec1"),
		nonce:                 decodeHexString(c, "d786a2a249147247"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "65b2d523ce74f0ecbb561d31bbdbc239"),
		additionalInputReseed: decodeHexString(c, "afcb19f073330ebe116c1efd3f65f559"),
		additionalInput: [2][]byte{
			decodeHexString(c, "105bbd42360aebc02a01ad3cba0da120"),
			decodeHexString(c, "dabde1bca2375e8e7218db8e7228397e"),
		},
		expected: decodeHexString(c, "2d70c851e221c431c6da613fe36f37c508aceb3695eb7864409a3e4da1af336b53434c28f262c805fc853e9bfa8e43c5aecd2e8e56081ae821d6b769e78ba1413947b510874524218cb2575f33e5f4fa"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_11(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "0255d8fbe31e5abb0deadc5b3981780f"),
		nonce:                 decodeHexString(c, "bf29970ba84bd45a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3625f9d6f007b72ac781d290d5641f97"),
		additionalInputReseed: decodeHexString(c, "274df0c603e9b568adb0387bb43f8678"),
		additionalInput: [2][]byte{
			decodeHexString(c, "641b6ba924e4a2791250e5a4a5e20ddf"),
			decodeHexString(c, "9c3e00323dbcb6cb8e922578ecfff052"),
		},
		expected: decodeHexString(c, "28ac7f5ff1241f52a8bf94ef2eba5fe6bdc5046bfc57ed56dfa79bb784cbd2d3eb8fef5800ab8c524b1d595c10afbf2b900a831ba6ccdd3a93da824c53ac980b630aca68f6389de62bf3139fbcefa9e1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_12(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "3856c4fc62490379ff60cda24388e4fb"),
		nonce:                 decodeHexString(c, "1cd95dd406a2df4f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cf9db51e0c51404e4f878151522633f1"),
		additionalInputReseed: decodeHexString(c, "994102a7e08ff126c3e8a7561e0dd042"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bb9932b8345d93276dda0b93481c0449"),
			decodeHexString(c, "95dbf36c066aa7ab9c5d45035a7a7840"),
		},
		expected: decodeHexString(c, "de88e50a7a37e5cc41de3113e60e02c44ba83f29a8ea4eedce8d765f8359650f2ded95332ff3e1f9132a7afa9106d8ad49735ad97108a41eed95b3c0f91a660386f5d750d74ab5bbff8e1b106ad462e0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_13(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "af59baef8820d7776a895069070cbcfa"),
		nonce:                 decodeHexString(c, "4e46b51e96ec49d3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4904c1614256a2d8de517283a709a638"),
		additionalInputReseed: decodeHexString(c, "dd5c3c196c105278d63d0c4d9d243e2e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2de987d3ce6078066bf91c127a4ecfc5"),
			decodeHexString(c, "45388f80a492b1c402d374a7ef688b70"),
		},
		expected: decodeHexString(c, "f068067e1ed3d248f826606e5355585ce4e55f0f99d066c74d90d896919cf96c3699985dd4ba843ec5c1071f1d2011e620382cfc41378273f4905991581d3a70abed28b4bc236cb05a7d106511048784"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed9_SHA1_14(c *C) {
	s.testHMACGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "75d9a2e8df60eace1480f8b6be9768f5"),
		nonce:                 decodeHexString(c, "b5c00074bdd4a2e3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f02967047929eb1f3304ef2c49d54f57"),
		additionalInputReseed: decodeHexString(c, "34ea773ece2e8fa3f60f5c686728f2ec"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4a5e0e0397918c5f18e142008d386451"),
			decodeHexString(c, "5e7133baa56eb408208fd32be294623a"),
		},
		expected: decodeHexString(c, "05103eeeceeee8a68562e4c2b352a744665b927fa64fbf40377f53355f1206131330110648b48b9d43d0f6c16939d5a766aa141274b2f75fc7d44d2cc350c4e8b735edd3b06bcfd97e47b26cb3f7a328"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_0(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "1e1d5cda6d3293f4de7024eb807f1221"),
		nonce:                 decodeHexString(c, "5f46ac05c020179e"),
		personalization:       decodeHexString(c, "1b73e2538c621cf08762cb1c368217e0"),
		entropyInputReseed:    decodeHexString(c, "d9bc5bf243868f4b559a4b34436be4bb"),
		additionalInputReseed: decodeHexString(c, "e3d96f10fa2a1a415033c4b590a4f21b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "36cd39fcf5076aa17301f0c0b259e153"),
			decodeHexString(c, "83ea3a934c69b67f6b1adfaaddba87f3"),
		},
		expected: decodeHexString(c, "46522dd83debdd779bd680b35c31415bfe48f0fdcc701a2ebbb438d4421e58324b7e6d0f4bd89f2409161e5d0ae0b41105ad0e4610d40ccae2fd293de7248d688d8b279dafae2a8c6951fccbbce7038f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_1(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "fce3dab3bac8cac9199e1630b229230a"),
		nonce:                 decodeHexString(c, "4d568df3037d9f18"),
		personalization:       decodeHexString(c, "5dd8b44ba784965d0bc17e7c3211b3a5"),
		entropyInputReseed:    decodeHexString(c, "f1631d60ffc666ce1286a695f29c0803"),
		additionalInputReseed: decodeHexString(c, "8d4515927e79d687b42a73170c8dd2a2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "432b1e35735328eea861acc804c85a21"),
			decodeHexString(c, "a7626fe3fdb5094f0a1d749de9549c3c"),
		},
		expected: decodeHexString(c, "d84a2a7cc6042a3982bec2ce097055a4358e98b99bcf8dfe91f81c366d7ece2bcd9a1464df3f98d1681b8d413d83aaf229b54cddf8a030211b281ca9e831b561fe6fd99d0b9ad6ff11000e4742b87a98"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_2(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "7e9ec17cba66e7483a7745a4a5d3c15b"),
		nonce:                 decodeHexString(c, "3896d9c4fd2b7696"),
		personalization:       decodeHexString(c, "ca5336c9b80572bf4be14fc8b9bdedb1"),
		entropyInputReseed:    decodeHexString(c, "6516048d51365f4734f0d948100e101d"),
		additionalInputReseed: decodeHexString(c, "989c2bfd588c26bb38674da6886b2843"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bd163381c0170166560ee8a086147ffe"),
			decodeHexString(c, "b552364e04c6c8549ab1b9f6f8541ba9"),
		},
		expected: decodeHexString(c, "23d0bdddb6fd83e5feb7dff2326f34e9d0d1fa9ed79c3e15079fa6d1b3953c80e3d32dfb693c7abd0e7c0d100d459420188fb7b0307a85f13aece23a2293ec41599d0515ac697edd82a13e71457d27c7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_3(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "5abfe8fc990659d28725d00ddacfe5cd"),
		nonce:                 decodeHexString(c, "b6fa3e81fb144375"),
		personalization:       decodeHexString(c, "afd0515e300ef53f1a167d9a76eed4e6"),
		entropyInputReseed:    decodeHexString(c, "6cc1d8974bfbf85fd0ffb1f1058b6053"),
		additionalInputReseed: decodeHexString(c, "958b5cb335604f7c3d1809818e8db923"),
		additionalInput: [2][]byte{
			decodeHexString(c, "86bb0f0f9c5919eef4db529b6b54288f"),
			decodeHexString(c, "07610e6a0453e2c3577aacf564468553"),
		},
		expected: decodeHexString(c, "f68c7193a22faae219aecddfd4102c3552981d08aec590747c7e95c8336dc34f226d2aa0efdcdefbfdf5ef900c7ab36575f485749d92818ea900f8c8f1d1c769c3b65f2f7ee04b70666fec2fb4c5b62d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_4(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "755110487f412d8559522b7cf4391d80"),
		nonce:                 decodeHexString(c, "ee693ade2e7864db"),
		personalization:       decodeHexString(c, "08ebacda49deb0723942fe9409f93a2a"),
		entropyInputReseed:    decodeHexString(c, "05c9f39fb36fae3d067054ca17b0c271"),
		additionalInputReseed: decodeHexString(c, "481e6fed5d0f6256d551785ed4577cf2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7dce6fa8b53efc1aa5f4101adf22e40a"),
			decodeHexString(c, "f35db0d2e299bebf1c2987f66575634f"),
		},
		expected: decodeHexString(c, "374c7724fb997d64a78a60cfd8b1eeee1f68d5557db892e0ca781364ce36b369f38f046ee49844a2aa07dc842320ccf72746e28c08eb378cbe6175302eecf4436e85334a0712c30168d50d10c4686c47"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_5(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "254eb62711f7efa58a2176ef11d209e9"),
		nonce:                 decodeHexString(c, "01f2ccc333516825"),
		personalization:       decodeHexString(c, "27c2fbd7d49bf5139b74ac01556fd21a"),
		entropyInputReseed:    decodeHexString(c, "8005aaab0bbf8d1e1ac1d7bba1c5bcf8"),
		additionalInputReseed: decodeHexString(c, "2039d9f82dd7f8bea4ec3a0572666a4f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b1a5f3c75327ccf5257ca62b6dd1833f"),
			decodeHexString(c, "21fc074daaeaf20d6447f16a669f4622"),
		},
		expected: decodeHexString(c, "8f7165d2fbb95b6d295016a6e50aec7efa3d2d8ddb68dc772b4ac4dc8e907527b0a0d6c5cf0d4a2db3873d1a3f5da9064f50611b8b344d5ce06d73187adbcfaea2c632d1dc5e3866c39941896df1e873"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_6(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "77c747f76b5a4d328f51b04742e77804"),
		nonce:                 decodeHexString(c, "3d784faf80a6f089"),
		personalization:       decodeHexString(c, "2d143040cdbcc846e19d9ca2b647d58c"),
		entropyInputReseed:    decodeHexString(c, "9d9e82ebf6d74cf8e722495e03dd87b1"),
		additionalInputReseed: decodeHexString(c, "a2414832dfe9980f253ed43d9fcf9a2f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0a5e985c92c1d2866a9c069bd4c983e1"),
			decodeHexString(c, "3bd01af26f38c2db3c12ad73cba8bf84"),
		},
		expected: decodeHexString(c, "86ea3fc84d1658405f03505ea0340ed17f28c601b54de43c5e0b72be2247fcd446c80d80ab418b501e50462a1f5efa039a43b05b0e8f8688f3550e4c136f7b0b4e250c58e392303e62ec2aab731272fa"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_7(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "edd342c885718575492d2bee9052cc14"),
		nonce:                 decodeHexString(c, "8826955c8eca9aa0"),
		personalization:       decodeHexString(c, "6fe4ec2852ee480a2dc8dedf1906b095"),
		entropyInputReseed:    decodeHexString(c, "84ecc71790c71e9d7d55928a50974737"),
		additionalInputReseed: decodeHexString(c, "40035f845f050905db9cc97d74ec09fb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4c52f375258ec76be537ad61aa96b5a6"),
			decodeHexString(c, "d7c8c1905034defe16fb028e365dcefa"),
		},
		expected: decodeHexString(c, "90d64714ba11aba3777865dd1ab6e142e6bf89abb9a2b4e5461f2d454558575968641a536fc542f218c82818fd7e8d7ae0bac091be051e8fbe116c4c0ca8c1c999a8f7359ebf5fe7a319af932e2b5a9a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_8(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "9ea41449a9484475594241865f05d07f"),
		nonce:                 decodeHexString(c, "42473787ced7d5c0"),
		personalization:       decodeHexString(c, "0baa8da8418ba9cc2c00d6c22b871620"),
		entropyInputReseed:    decodeHexString(c, "63fcd2f00ce6acb2f31430b830d3886b"),
		additionalInputReseed: decodeHexString(c, "f22729124c7649545389314e8088dcd5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9e15fe5ec79025d52d31acbd9a53b0f5"),
			decodeHexString(c, "4420b819060b699156327e5c1774c119"),
		},
		expected: decodeHexString(c, "c7d6b1071f9c1562a8a4d6bed341e6aa837504f1e4c96c68cbeac9e9fad5e598809f2df37aee1d240a6f8b9475064a578fe15472d2b400befe1fafc8c83e7f56151b2b83259e6012db28ebe953e56003"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_9(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "98f4b367616494d8ebb3e4db1e4a0310"),
		nonce:                 decodeHexString(c, "4f59f11f5c341c13"),
		personalization:       decodeHexString(c, "c1be30b13cbd9e171aecff500b2ffeb8"),
		entropyInputReseed:    decodeHexString(c, "1df32b7c84df7a6e54bbd046c1ee5bc4"),
		additionalInputReseed: decodeHexString(c, "90161b12a6570ee4eb3821fdd7898ae4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c4f8de88411ac77637fd8631419d3ef1"),
			decodeHexString(c, "cccf6995f86b9a32800fb2a5ca71b804"),
		},
		expected: decodeHexString(c, "e650f2d90f589f70d171ac4bf25f361bbd99f4b40a48811b30cd6347f4d172e8455c03df447e790282fcdb25faa886c57e2bb140940deda0d8a566414f89998937925020dac9143ae72cba1843f5f4d8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_10(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "16f35be8ed1692b2bd01194d43bfbbbe"),
		nonce:                 decodeHexString(c, "c0bfa774321a8c75"),
		personalization:       decodeHexString(c, "a87e29d8e0a59505dac998e2c2d56c15"),
		entropyInputReseed:    decodeHexString(c, "b9fe8d749a0df36d18a22cc53f99ebff"),
		additionalInputReseed: decodeHexString(c, "89f922f7d5f45b02a8f7325059eaac6e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b3f45daf357417bda85a8ebbbf8c51dc"),
			decodeHexString(c, "e41fa5d284f081ca0baa2a40ee38d8cb"),
		},
		expected: decodeHexString(c, "1b0f1d8ac677fcd8d4b8f38d4db3145948bc5fe39ac4d1bdf1928b66ece4b5639aa2e6408cccd48530f6433f5bf92f2e5c40df28918d27eb5e06b517038c0b2b1ce7a474fcbec07a40e413057862db1f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_11(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "233da224d5f22fd48363c1c14e046d68"),
		nonce:                 decodeHexString(c, "fbe1f9a62e90c1c1"),
		personalization:       decodeHexString(c, "e690b9fc7c63fbbbb8bebd6fc230c767"),
		entropyInputReseed:    decodeHexString(c, "0a8aa09fca433fbbfa39faae0ab5763f"),
		additionalInputReseed: decodeHexString(c, "9d73bd9a910c44de41bc0a0b1ed9cfa0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c8944f8b2e1703cc494a075f90630c0b"),
			decodeHexString(c, "bd695d7f88813af1e81765d5f17b01d7"),
		},
		expected: decodeHexString(c, "15249b160b931f4a17eff12f81e1a0d1ddb351c61e10d21271375a68719f5561dae7df6e65ef1a9e84f16a09e76d678560791f0724d34d5ece63b4ac10be5cde7915c2b3276da0bfa594e1eaafe47414"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_12(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "1ae92191923502842ec7b93d6243310d"),
		nonce:                 decodeHexString(c, "45614111c97ba7ce"),
		personalization:       decodeHexString(c, "3a3a8ade9222a9d42b743dfc0438ac36"),
		entropyInputReseed:    decodeHexString(c, "6e1661255ebb288d7c7f07bb87d52520"),
		additionalInputReseed: decodeHexString(c, "0db2b7302ac46388e6535d040182b729"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d7bd870867f72c8bbb1ef6646193190f"),
			decodeHexString(c, "aac76dce6f5a0efd372438c715a384eb"),
		},
		expected: decodeHexString(c, "4d46123775ec4a516c9eed4b4337f2ff08497afa096196826cd4f6676dbcf8a5a6c2ea4d54456a4c86edbe35a75ad363439194f064adfd275fc0d6645bc91ba7584caef58943e96c0b485a7f30be6dbc"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_13(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "21c768d063c60080d4bdeb50fa79f20f"),
		nonce:                 decodeHexString(c, "77517be52353a2e3"),
		personalization:       decodeHexString(c, "7711d605b32a0f14daca3d43a452de43"),
		entropyInputReseed:    decodeHexString(c, "d1c151f02dc34fe2d02a9e82d3e97dd7"),
		additionalInputReseed: decodeHexString(c, "b8bd333dd26746bb50fb7507a7e599ad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "169b17f98cbd49e015115e42c754ce3a"),
			decodeHexString(c, "1fca530ffcfed1ca4e4f520868972f08"),
		},
		expected: decodeHexString(c, "73a1e210668d5d123bd5f92b1b5b651b380f8284291162290ec154cbefc7c3db1b7c105b009504f83fa026b8212ad0d8e0512f0905d3fc4cb2341ac0f1d4f1664ce09a69116c544947e4cce4ca461729"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed11_SHA1_14(c *C) {
	s.testHMACGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "cbe58da81e9ff08daac265b2ba2716cf"),
		nonce:                 decodeHexString(c, "484dcf66c37e2ef7"),
		personalization:       decodeHexString(c, "8ffd79ea799d3e8b28ea2d341a664e4a"),
		entropyInputReseed:    decodeHexString(c, "38143cc8773a4209f3ca13df4ae41eb5"),
		additionalInputReseed: decodeHexString(c, "fea3253193aa696e02fa906e4b7dc272"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c7cd5c4dff9371c0db3851c0661b5b3b"),
			decodeHexString(c, "baba7b03ec47ad164956ec6c6111e0e4"),
		},
		expected: decodeHexString(c, "41e088839dafdd32b69269ce8f38a11ed7d5d619a99fd3628b04b75e4e5e384fa67e447b83dfbece277fc004a3bdd39e64461c95b84c9d6347cdf58525d83e882d2dcab4bd8e6d3f566eed585dd19bcb"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_0(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "d7584bfed6668ba79f79624ab4e373fb"),
		nonce:                 decodeHexString(c, "acd5005ff2ffab2e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ad42c3cffee2f44e6975b1dd0c613c47"),
		additionalInputReseed: decodeHexString(c, "125d6314483914d74225fe90be341ce6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "972fa6292ce39d0196ea4211e12d5aac"),
			decodeHexString(c, "ccc1f3d201d1b3a1ff10805770fb8e83"),
		},
		expected: decodeHexString(c, "ee952b20dba4f0ef374223383d085f829b4c4ef9b7e55e301770ed57d0ad28b5084a9dcab717ac2cea58c0003f0246d4409b778057555bfc4311d144375a0ace29d3fa16f7105752f4746b6027dfaf29"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_1(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "2a33e98fbd7f36cebb4598d7c54f5615"),
		nonce:                 decodeHexString(c, "f12e32641ab50551"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "06b22aa4aa4aa1d1b5b4abc82e2b02ee"),
		additionalInputReseed: decodeHexString(c, "38c620994bd843814c09c71587ccf6ac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e6b75bea1aeaf4616d771d35b5c67488"),
			decodeHexString(c, "39e65c1292de7a0e7cd95e38a3e032cd"),
		},
		expected: decodeHexString(c, "da1a2c22f054a841f240a002970f7f37970aa1356b77365daa30d89012ed0556e80589265e88458ea714896197010940f1d4f2112fd187b39c270f8903e12a6aec8b2bf19fffbbbfa794aec47c412312"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_2(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "8dadc4362d04be7328f8e78e46568c14"),
		nonce:                 decodeHexString(c, "e75e5d6323a277eb"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f53cf01eefe563ea20ca980861f52b84"),
		additionalInputReseed: decodeHexString(c, "c1480b5a4bd392316bbc8dbfce178c0a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f4a3ba1c55cf2b76fd435ac8273faa99"),
			decodeHexString(c, "abcfb701c8e9e1a6936d76f1d77f34a3"),
		},
		expected: decodeHexString(c, "9a68be9b5df628d8fff3ddc591e77fc641f8b21fd2be55448e30042cb3b5c6d4af40a55fb34b5665c7b0b6553239b4faaa6ecb905652b7421e83e6085b183fd1353b3086e24c639d94a95e82d6ea6d60"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_3(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "74ebc13620af9528a25c1316a795476a"),
		nonce:                 decodeHexString(c, "57a99317b4589c20"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0b1f7858e6b57b7274b823aa0e95e56b"),
		additionalInputReseed: decodeHexString(c, "27b9221a0c6a8f53f818ab90dcbc5147"),
		additionalInput: [2][]byte{
			decodeHexString(c, "98daa18240c9e106dbaa0d9279ab8073"),
			decodeHexString(c, "f22d1220527c1da12743a95843e8d01d"),
		},
		expected: decodeHexString(c, "e052f7acbac035cf42708e5300278eb377401cee7c32d812f584a953875fb1c05fc0b3b4cce739d9dd17ace0c23ee82a027b9df97de560b796537e3a0a8a4e697631a25ab691182caf1d9e342404369f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_4(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "89e1cf969338d3239bd9d3ee71a161d0"),
		nonce:                 decodeHexString(c, "964e647be9b732d3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7fb5997aafe82d3a38e23f17d5121eff"),
		additionalInputReseed: decodeHexString(c, "b59f7bfa518ca93546c64d9e005084e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "92c9509d49f282ba0082723999460aca"),
			decodeHexString(c, "14f3330cc11fc9c179d716feeaa246be"),
		},
		expected: decodeHexString(c, "a5e3ca29cc3273533f5e38713ccc4ea557f66e8f38e12b3b0f235337e5a2d655ae7923972ca2c0888de5934489ae77fa5b589478dc09ff1b13e814912b1770949ed39e602df5be539c756305874d320a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_5(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "343f9dde89a9e3ecc4f9653c8b392dab"),
		nonce:                 decodeHexString(c, "c4fb3606d8f62db1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "021fc3ead46ff8bda3b79701b7893a39"),
		additionalInputReseed: decodeHexString(c, "8918831e15d430616f4bd91046fe0930"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a8772304a1accb16662218a748bb4fd8"),
			decodeHexString(c, "4bf9f2b9d15ec3071ff3674ad7418759"),
		},
		expected: decodeHexString(c, "9782b2111c985bcaab0b8905ad9bcb97eb3f3554c68d79ee5ca1dcfbd0d7850f65090c79d21d1c6253cf493f08392cfb60461fbc20beb4cf3e022123816f0bc597abebc775633db324c7c1c7cd5e8c56"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_6(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "a27cae591e58a47dd3cec93964ea7fa4"),
		nonce:                 decodeHexString(c, "ddf82254c3769154"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0845168c244afc0e5216feaf92593bb7"),
		additionalInputReseed: decodeHexString(c, "10a6464b48cd350f5938c5dfabe82b25"),
		additionalInput: [2][]byte{
			decodeHexString(c, "21d6bfe1572491425032b4e3ac9943e5"),
			decodeHexString(c, "630152a0d5d4fae7881a2922cc87a5cb"),
		},
		expected: decodeHexString(c, "dad0aa2ceead492b14254e6c69f2ef262413a0afb7bd011887192bdd27747c8ca449afae3016ab8985a231aafb6406d9bb6ca660c1ffed28ba286444c2ef73d2faf76c4fd185a3796335cc5faf773fb0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_7(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "c2d755246a53f0306db8ed4414b16050"),
		nonce:                 decodeHexString(c, "2c886cf18fac7ac4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "43d083dc705ba8c5d60bb1c6e7572b5d"),
		additionalInputReseed: decodeHexString(c, "f02dd5294f3ab3d95f99c45b69e76006"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f3bd6da645f33000f24382e965982400"),
			decodeHexString(c, "c3cc5ec38ea41fa8dade394e440af214"),
		},
		expected: decodeHexString(c, "ae4094adeb93b4f564445fccd05a3d829da9360b55d51d9480d2f3c8ac0b5532612e805756bccdd61526f162d8b909fd72d4fffe7bbb98a74bcc26447046fd5869499a6338dd5e621d42601ec34d916c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_8(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "04935e32e0fa6e8bc5bf2f202201b11f"),
		nonce:                 decodeHexString(c, "4c407c0f7e5955fe"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a2db8d98a00865daaeedd2ce9557a2c6"),
		additionalInputReseed: decodeHexString(c, "736ed37a8b67e0d850299ca2bcaa9c69"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d12e7538fad2dd0d79f64f8450a3bc55"),
			decodeHexString(c, "c8bca1e640740ab265c7a8dc5b95a5f6"),
		},
		expected: decodeHexString(c, "2ca4d9454dbd6e905043eaf6a2b39f3832bbdea7de5ed2fbcf0bbbcc9149f07d3dea128216bfe1a944237c8e82ce68c01d926d8db80432bada9682d70b814b30774a21c5db49a9235a75054980de059e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_9(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "3b8df3b9ce4c6cd85971ea346dc475b8"),
		nonce:                 decodeHexString(c, "64c42bc0c69a371a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "22a9a74697007108409affe94422ca29"),
		additionalInputReseed: decodeHexString(c, "0b01058b042cfad010662da0581dc06b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6f64ddceb26065ffdf3a4f848c968d8b"),
			decodeHexString(c, "1c1d78eae25ca92971e22f6f872ce185"),
		},
		expected: decodeHexString(c, "81f3c1955001a3878fdd606c13ec6eb788a6669af45c8de523b5c996a5315b6f5bce355f6f3f92de8023b7a13166d601f2530018c7b69c88935122d5807c1da4bf66bff08bece5ccc3822ed170cc181d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_10(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "5bfc4235a9949e8c9af0d79b9cec59ea"),
		nonce:                 decodeHexString(c, "4491efd080bf5551"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "113611a8cbdbd1de100091cc24a376b8"),
		additionalInputReseed: decodeHexString(c, "d6f7e459db30684ff5d962536a4bc353"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d6176932b48887ef5d3f4dc7ef441d2f"),
			decodeHexString(c, "842a5fed0a881b498d74cdcab579e239"),
		},
		expected: decodeHexString(c, "1ad672ed898e9f5f92f12850835f0a4c24b3d3301277e29d05bba843e0c1568babc997e99ed37f8559c70efdae17c8d7731a6b55eeb9ddf42fc9f2cb0d38128a1d49f11ff8ddec711e64cecfe20e27c7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_11(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "e862ab31ff987b5bf83b71f361df3531"),
		nonce:                 decodeHexString(c, "499b7933108ddec4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "dec881c7c10fbf8b7e6b727045cb6f6e"),
		additionalInputReseed: decodeHexString(c, "18fc60d470c1e7c97d002405aa9b3ba7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1da15f945d0993c9db0e14a982da3bc2"),
			decodeHexString(c, "d6781b076f68b4b60d69493f535aea84"),
		},
		expected: decodeHexString(c, "cb618e1df41b7d994949f40a57c188b0c9feaa3704da2d82d0e73b262499f142b379c4a3b7968c4810d2416325c2813d764d4fd51703b243bfa81fe481a6c6b125ec5364ccf2d10f28ebaeb9d31d3b45"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_12(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "a17628d0b9d10a89ef163595df64897b"),
		nonce:                 decodeHexString(c, "f83eaa42a85e1209"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ae1a44d6c7c346a4032a58c8583f1f74"),
		additionalInputReseed: decodeHexString(c, "07aee61dbda8eeb671773c2598fa7532"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bf488c33ba1633d741a8f2b5d763045e"),
			decodeHexString(c, "44a8ee13f129d95ea956d719640bbedb"),
		},
		expected: decodeHexString(c, "06b12d8133a1f762ac751616185e17b1e90d95b2b33d0f8cbc42757b8b29a65496d5cae5ae16036a5f95ce3c8706c4d5cbefcc1de84c5586275f71be332392fef321e1ed648a40ecac5e048341c2015f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_13(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "a4aec2da71a64f7eb07fbd89b9ed03fb"),
		nonce:                 decodeHexString(c, "fd5ed0fb9fcdffbf"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b8dac4c54a3093c45784a0dbfa218d95"),
		additionalInputReseed: decodeHexString(c, "3a0f607495433626666354ef5ad902a0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "638161dcd137748533d52b81d5462aac"),
			decodeHexString(c, "4660868ece630624ae5b8ff674c34e89"),
		},
		expected: decodeHexString(c, "69aef88b6396cdfa592f012ed0be0cda5a78c02e077096f9a67f1dd4501e4aa7a1b37ce3ad50b111acc64781db4ef94ef45c3e853e481e544599adfbdda9aa68941e474f1e3d49da24e92019117d39e6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed13_SHA1_14(c *C) {
	s.testHMACGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "420e9cdbd0d7cd81d227389c7af86353"),
		nonce:                 decodeHexString(c, "943b029cddbdca62"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "822052fae3b9a10c87f3434338b4742d"),
		additionalInputReseed: decodeHexString(c, "157cf13c57fe05ccd04078355eb8217d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "22267fe260c4f865c9daf5f5e96ac0d7"),
			decodeHexString(c, "431bf75096170c3ec07c59e013280b20"),
		},
		expected: decodeHexString(c, "1dd3b2198a3a0beb0a17f9d784543a2aaa9d5b02f0e2d5544b1f15d12bde12df676beee991904fb896be6f69a9e398ad4cfb72bdfdefea6ca1717cf4980bba0b3a66fe3f5413475c889de35346ce03ae"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_0(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "36d491cfa97687764314f65fcd5d038e"),
		nonce:                 decodeHexString(c, "6d47568aed67d1db"),
		personalization:       decodeHexString(c, "b5bdf7f229d7bcda91d8c0a79b87d9a2"),
		entropyInputReseed:    decodeHexString(c, "1f99d67653170fec17cdc1206deb62d7"),
		additionalInputReseed: decodeHexString(c, "64fb8675aac3a93e981fffa72a8741e3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "78d088e9dc3028e0524c2248f6fbe4b8"),
			decodeHexString(c, "cb61d8318591e2b76b9cc9e1f3fe5446"),
		},
		expected: decodeHexString(c, "3a58d1e2b3d6b8e1ecf49fc7335da4b93b9a301082c2f8063ee8d65e8a51d1148cc9638434718a7a80fad09296ea722a4b0646df0af09a39ac8fb90f25b65c99cef4d4f74f86a067d032dc4ec95e3213"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_1(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "922a3e29cb9d2e9fdde0f5561df37c2f"),
		nonce:                 decodeHexString(c, "cafb8d16ad854999"),
		personalization:       decodeHexString(c, "d9a8f3d2e6a6c360beb72001f9f007d3"),
		entropyInputReseed:    decodeHexString(c, "daa5a3461caa5ef65e98ff5441beb629"),
		additionalInputReseed: decodeHexString(c, "9e35513aed59b96a892c8f55f7ea5e52"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d26764d54f7855ed4b6549879b9578bd"),
			decodeHexString(c, "88fa64ae00b0f57562bbd91d8f3188ca"),
		},
		expected: decodeHexString(c, "90acb2d03298902b4d7096b1b2627ea767999fd2c14e4d21a44de335eaa7be71df9134200180aba8fe7097b21b90ccc3ef86d506ce80d5b59dbe38782266f9e5ad53484f7a49e90426a2e2a789965d28"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_2(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "a53f834505d74986ec6884507ccbe67e"),
		nonce:                 decodeHexString(c, "e2f23d6540049a2d"),
		personalization:       decodeHexString(c, "4cb100666ad3985d3101d7f7bc2c5ba3"),
		entropyInputReseed:    decodeHexString(c, "0cfd23565c886c70ef990d2b1ae2fdd7"),
		additionalInputReseed: decodeHexString(c, "9d5790b0804ca4bea71eaa0e3d602706"),
		additionalInput: [2][]byte{
			decodeHexString(c, "172d4c0ebe11a5d72b3ce03d8d550f6b"),
			decodeHexString(c, "13c04f8a079a83092cc6b5fa1a091159"),
		},
		expected: decodeHexString(c, "1c7d94555b982aa152a6d4766665254216a687ae8c5dcb982b71bcccd80a439e27b08f8ac3c538e728772bd86dd0f6622a4d526e6d85d21e218999e0aec2809f6a5ff96bf4da81fbfc50e9ecfc2bd9e7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_3(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "0a086726f66f2ac9e7daa61908f63319"),
		nonce:                 decodeHexString(c, "debf011d406a5b23"),
		personalization:       decodeHexString(c, "58582da74f8f91db0444beae39016857"),
		entropyInputReseed:    decodeHexString(c, "c92ba2900ab0a4ca3553806392b6b3e5"),
		additionalInputReseed: decodeHexString(c, "5604a76e74ef4b304466f21df57c70f3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e1e4d0754cc306a1752b50c5c446a3d0"),
			decodeHexString(c, "71dacf61875cbf3655e4f7d2e081d493"),
		},
		expected: decodeHexString(c, "afbb3a05e753f6ebf026594a03b22b3f032edb873b9e1e22532e360a097d7e0d4585bbf82f9b12d7a88630efcadeb8ffdc8b7c8a53fe94eea9d2cd6cf90828c3511fc936222ba845fc77995a03855578"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_4(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "f3126e1d790c5c5a3ab11a4b359c1559"),
		nonce:                 decodeHexString(c, "9e05641c2889ea6a"),
		personalization:       decodeHexString(c, "47d59bd1ca69b25a70229dfd99ab14ec"),
		entropyInputReseed:    decodeHexString(c, "98009bc10eb032489e2107def27fe44b"),
		additionalInputReseed: decodeHexString(c, "facb973b942c25cecd6d0d525fe59893"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b15191ec7b4d920f0577fa4e1cb620da"),
			decodeHexString(c, "00dbe09b9370410a8af66f52e55fae7e"),
		},
		expected: decodeHexString(c, "0cbddbf622fa2161c9dcc2e11d8d8dff99aaf62c5e49f5932647d2349ec1ae73d12b5afafe6e99b9425bfec743a5a7a55c80f5a2df9675cb0a1d5c68d40a0c0e3e623f1639674c453235c39e2564a5e8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_5(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "280f35e281f8886e4308edbdbebb7a5c"),
		nonce:                 decodeHexString(c, "8c727ad1bf01f611"),
		personalization:       decodeHexString(c, "89a50bc7a8efd2d66fa854a5cb800aaf"),
		entropyInputReseed:    decodeHexString(c, "dde9e59ec35be3d647f172c496ef0663"),
		additionalInputReseed: decodeHexString(c, "08cfebf0f55dff3dc46a357d77a528e3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8d32ed6752a219d8710d34f9534c5b2a"),
			decodeHexString(c, "18f47ca4a33d573fb64b4b325acc3913"),
		},
		expected: decodeHexString(c, "8ece1b02b6e3ad95ab0d76ce02d1fee090edb64a2286b4c2caa5f1638c48ac3e2cb2740ee340ebd90f66d326bf91c92510c01f6b112f4d791fbca39a279346b78a50c7c6c4662b9c3f11d4e90c103b9a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_6(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "ecdcafe914e7aa28ef6d7960e8ec2038"),
		nonce:                 decodeHexString(c, "4f595ee68ec8f304"),
		personalization:       decodeHexString(c, "e8fe5ee4cb6a5fcee7cff51687275577"),
		entropyInputReseed:    decodeHexString(c, "3a6047087b798ded13a55e7facfcb6df"),
		additionalInputReseed: decodeHexString(c, "ad11464632d4d822c4d08325a5942c0e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "64e0d7dd50fa8eb82a6eaa8a9590d82e"),
			decodeHexString(c, "cd5a82b4e3de0825f9d970c3a462cc5a"),
		},
		expected: decodeHexString(c, "53b984e220a0bdd2f43b6fd8989d47dfa86c325b0d87d178e1d514219b031f481c8feaf9462c5e580b9ffe0ac59c672e0e3f610ea1abdc39aa5fc9f0010029d4c8350aaaec27bb859505daf3cb3d4e71"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_7(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "ef7404326e7ed8895912d1f91391dbdf"),
		nonce:                 decodeHexString(c, "6a8623abccade8ce"),
		personalization:       decodeHexString(c, "441937f2478c9f1ce7287ef2547e1587"),
		entropyInputReseed:    decodeHexString(c, "0c7ff042f078998fd0a58d34626868ac"),
		additionalInputReseed: decodeHexString(c, "7a9af8958b5a35f0235425a55bd91dde"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3214ed59a6a688254a694e26a223457e"),
			decodeHexString(c, "06f141a32bd30b6f69dd3e6e541b0fa5"),
		},
		expected: decodeHexString(c, "454a2056efac929396276bdfebe4061679f1a69bfc31f9ad7180b8c4cbb8b92030570bb206bab2ab30db28dc2178ba04dd8dcad26b301f2137ca01232c7a08e5c302db19066f4ea915b0ea8d027c361a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_8(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "822b9dc77ca92e41bea9abf5f94a3524"),
		nonce:                 decodeHexString(c, "6a45e218eb0210f9"),
		personalization:       decodeHexString(c, "748cf2d2b45645c6809643227fd9f4b0"),
		entropyInputReseed:    decodeHexString(c, "64224f122a462b5cf3d6a5ac06a8ccec"),
		additionalInputReseed: decodeHexString(c, "ea67da960fafca661b59d28581841326"),
		additionalInput: [2][]byte{
			decodeHexString(c, "454f36491ccc2f9f13974cad14c46fdf"),
			decodeHexString(c, "a8ba3982ff251eb8966aeea46aacc01e"),
		},
		expected: decodeHexString(c, "41cf232315a6690fc93ddcce3d0abf9254a91109e57b31d1644f8a558d01ac910261068bfaa81c6f846fa516b0c2b4e8a74632bfeaa8ac8af4b59df53687c7b2c7b575d4f0e40070eb96aa96e37d1a3e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_9(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "bc26cb60db5fd37cfb3f63307dfd9029"),
		nonce:                 decodeHexString(c, "215c57873d61ab16"),
		personalization:       decodeHexString(c, "4e13917cf71759c680c5b128c5b30e20"),
		entropyInputReseed:    decodeHexString(c, "83ceac3a8b23ea47af43af5eeb8cc3d9"),
		additionalInputReseed: decodeHexString(c, "6288da225b57d7b29309558b5bb7c5aa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9b7fe330eba7a9a6756e623144417acf"),
			decodeHexString(c, "7082a7e954f36e7df3fdfa5d8aa89f7a"),
		},
		expected: decodeHexString(c, "174786d98600731a437aef748b758d6be4a2109155c9d045234b45a70fa2db1a9c91252670b06d9fa4c147877574fdfdcecad8c770bad3a294ea579543851e0efe57f91759a001edf5cfc254753938cb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_10(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "9085673acc1d474931121add4889371f"),
		nonce:                 decodeHexString(c, "fd8d4e12d5bb1c60"),
		personalization:       decodeHexString(c, "5b8bf8112a61465406b5baf66bd97c1c"),
		entropyInputReseed:    decodeHexString(c, "469acba510e07215a968e4d6d8263b13"),
		additionalInputReseed: decodeHexString(c, "f8149771539e00e45842b850e483c79f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "17914052692ada1fd7d69778a245997b"),
			decodeHexString(c, "5fad6e14b2403e4ee18a798326bdd7bf"),
		},
		expected: decodeHexString(c, "b978c23b54c9a64865fbfc9d340d183472759360acba3ceaf91d2bcc4a6476ec4566db84995baba94ca63485400aae403114e48a91f751c5f3f2b0b1f733c33717855904b5bdf260bde0db40af97a9ff"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_11(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "b839bcddd74ee47718c2633725babcc0"),
		nonce:                 decodeHexString(c, "592dce979d549574"),
		personalization:       decodeHexString(c, "ff4c0d827f74f1eb7c6b24a1a936bf2d"),
		entropyInputReseed:    decodeHexString(c, "0d8114afcfef3b9f1f72d47f9e6aec7c"),
		additionalInputReseed: decodeHexString(c, "32cbad3e4828d85cc0a669f3771d84c2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "22eebdff9a4e58728e4094eacbb4f30f"),
			decodeHexString(c, "8ba44787d3d65a1231a82dfd4a12e439"),
		},
		expected: decodeHexString(c, "20b89e4482137c5987729a59fb6758b1d943b27565e6ea131c108d3dd163e4122e4b091abb50e12606f6d6d1c9c27ea8ef9bc7108e3a9ad38451048bffbef23eb41498563a613d742059b87943dd1a68"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_12(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "a7510240cba5babd591736042e9e9179"),
		nonce:                 decodeHexString(c, "b22f5ad71b77ab6f"),
		personalization:       decodeHexString(c, "128b57a441d7eea0d7843afb503e793f"),
		entropyInputReseed:    decodeHexString(c, "a1a391302ea9d6300d482769907bfb8a"),
		additionalInputReseed: decodeHexString(c, "78cf8b3e4f7858331b5983fbf189b2b8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1c8c235f3f1974f296625284cda7d86d"),
			decodeHexString(c, "6ca231df9a72572596525dd31d5d9752"),
		},
		expected: decodeHexString(c, "9344e4f8ffa9a3077490c17bf6df535f57ba10c73a7a23c32825a11a953680874c38a5067f576d93828ffec5785644c048898b66501682ed00b8b594ff3934759ec93e594cf53afbf83ff174bbe15039"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_13(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "2682033f78b5f3eed8c77418f29fbd88"),
		nonce:                 decodeHexString(c, "649439e3df9f6bc4"),
		personalization:       decodeHexString(c, "14f0040bc789471225330b499ee1b668"),
		entropyInputReseed:    decodeHexString(c, "ddabe9371e4921c996497eb87903db78"),
		additionalInputReseed: decodeHexString(c, "7f63e106312003a2e8678624b08eb350"),
		additionalInput: [2][]byte{
			decodeHexString(c, "25a6fd102c9cf4d02af67ab6c12487ae"),
			decodeHexString(c, "a4d193f1453506dc750df2d516f10235"),
		},
		expected: decodeHexString(c, "7c71b9d7f4b1d709825b2c39c0b51bf9e104d6ca610d441e3c512b9d65b7004716ffdb8e890d52ff25bf3822cb9661435f0b9f3b36c7cec0f25353f97e4720f3f98f5b32b854ede883129f12d5fa0c23"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed15_SHA1_14(c *C) {
	s.testHMACGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "8e311bb4f8552a39741ada40d64b5507"),
		nonce:                 decodeHexString(c, "98990b5f26a71e4d"),
		personalization:       decodeHexString(c, "a78839eb007cd71d0d872e0fcc244b53"),
		entropyInputReseed:    decodeHexString(c, "71f4afcb90609ef507f895d1725cfc0e"),
		additionalInputReseed: decodeHexString(c, "477acfda51289a6784d014f49415acd5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2e79cebedea8b28374cb44f55221b897"),
			decodeHexString(c, "624cebb0f48370dce902406d56352d60"),
		},
		expected: decodeHexString(c, "3352d891599d63d219ce5df8b4f43d6ed194dacf658486a4fbcdc50542eab24c808af1ec902dcbd258762b2c5c7d5a3dbe3f4a45296b3df0c72ef04b7e6b45068f734add3b0ab6bde06f0d2405a5c355"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_0(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "ca81953d50430bfb09537a318a1a7b90a9200077abb721e5"),
		nonce:                 decodeHexString(c, "5d9ac28946fbf75d9cebc81f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "11cf6d4db712a3b91d479e00ba30d736a763cbfe40b91448"),
		additionalInputReseed: decodeHexString(c, "e50aa8bec96339cf2608bb82cf038d5fd6bf93e65271cb72"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5c5eed0d98c7fc7eb30acddfee002d5b99c965949d4e2095"),
			decodeHexString(c, "a1a7cbc79bfaf4571cd8020da094118d241b3f018ec823ba"),
		},
		expected: decodeHexString(c, "c8b7d9c15624ae018a8612edf6444354c45c6a788272281c16526c689a3dac36679e44d89c4acd7eb58ff40a577c3d1a9f4d0175feef9ac5674c115d5e4cd17f2369e0135e33b018bdc99e4099713ace986a145ef55e868f74846feb3592d44ca3ebba6044a928e9284b5ea75063ae81"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_1(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "b96ca1202fa959ef55a683a9021068e14c75376e15d1f039"),
		nonce:                 decodeHexString(c, "4b1c091a8b6dd6b98b6f6374"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7dae58c29186179b4155b868f5a81ca206a5086a5759b025"),
		additionalInputReseed: decodeHexString(c, "a35096086c1fdeb1fb60dd84fa730eccedd53e5b127eecf9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a3269fa749e55850d4aa9e466bced0beab2edf86b926c2ae"),
			decodeHexString(c, "29f6799f7c78fdfa2d0dbdde8381aec5af249556903f6313"),
		},
		expected: decodeHexString(c, "c63ea73e1ddc9d55bd64a63cf73f730136ab4f6d688a9cd56b945f9875ef4ff48cdbdd8b78b898486a685d8af8cccbc2a834a9804e566ee7138c7dbf488d263fbd387041f835ea46ad27cbd66721428ed5795f6ed044cdb17c8e7e3ecbf61dd68239e8fd644ae85776050afbaa06caf7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_2(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "59af1213cfcaeea29e31400ab6b30f108d4a9a77d3b37097"),
		nonce:                 decodeHexString(c, "2d29032cdc612b7c360c41f1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6b0c9d794219300fe0551e0e66d634a4eec396c50ec9604c"),
		additionalInputReseed: decodeHexString(c, "66ed9352bed73224d35508754aab68fcea10aac06d60e888"),
		additionalInput: [2][]byte{
			decodeHexString(c, "198a3526a67a0ce31ad0348bbdfecede4f82d4203d1d5ca1"),
			decodeHexString(c, "03faa2f4c34577cd8b2ed53e10c68c83c1ebc8d877379178"),
		},
		expected: decodeHexString(c, "5e24f1a9083f13274ed1020ab6935222cca644d0920839c2b142e2780983204453d2e6c58518cb351188bc3e5e3b64015882130d745511f004cfb6b64831139e01ae5bba64b74f1a1ede7e220a6d29b1067d7c68ba3543f4dda2fc97a3dd23590c2c18b85662618462ba2c05231534b6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_3(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "e6cc94c72f37999f28b5fe350bff622b433ae19111786c74"),
		nonce:                 decodeHexString(c, "7d954adaecba47abacfea8cd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f5eab05e2f750c0a679cfb9c2c2c071461178a054af40967"),
		additionalInputReseed: decodeHexString(c, "3032528703dd66e42c7b6b5881483eca41e9eea503852eda"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ce8c03b0a05982ceadb516b1fe513da2403a9e6dcd7a39f0"),
			decodeHexString(c, "3f7ccb55376f23dfac1dc13be617894931f9c13d15fd3dcb"),
		},
		expected: decodeHexString(c, "558656cad7da2ad87a7a29ec5e612addcca96d72ac7b224cde80ce386c6efda12113fe9aa8e511714a42edab53ea0289c75d34b42f2313ac366f51f5dd3f6968bbd4c09ebf840dfd03852dedc1e3b6209d932889cb04062c644482106cf8b7a237d2937840f0c4d752d52725b5590d15"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_4(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "cd4dcc8fb50672611f19e0cc8adcf9285f9d76e7e28bcac3"),
		nonce:                 decodeHexString(c, "4e931163f8057b9f86424e5d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "514a13c0a25bbb49ee485501ec5e21061e006ad1569d2610"),
		additionalInputReseed: decodeHexString(c, "24480094a44067b86ef47db38ec3e62914351196358bd9d7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c6ac3b879adb6c150a8ee44428c333574ed9b0d6806848d8"),
			decodeHexString(c, "92bdc1514d87daaa321655d56c6302878c2bde37700163e8"),
		},
		expected: decodeHexString(c, "21c51a1568aafb56af1fd424f6fa146113d14d6d63e1a24e3168130ebc10dd84925bc4077c41897aa8b3c73aeb5bcf392d496dedcb6487379bfb3e12bc07fcf5c196d59fcc1fa730e55c00edaa2bca7b1e32a40ba06500ed3dd7fcab361995319979a0fa9cdc406a4d20650814e8bfac"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_5(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "fdca0039e8485a06e6a9afbde5b07a1bbe49e13659a21640"),
		nonce:                 decodeHexString(c, "34289639d23dcf3f9874b8fb"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1a1af8495b6b2129b88475cc529c96271bc1bbb5c7c2ea03"),
		additionalInputReseed: decodeHexString(c, "841f765ed5f00be838a270730ce5926659cd7cd9d5b93ca5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "825fa13ed554973768aab55917cc880183c3ebb33a532305"),
			decodeHexString(c, "736e9de931198dd1c5f18a7da3887f685fbfa22b1d6ab638"),
		},
		expected: decodeHexString(c, "dd8596a62847a77da81818dbbeaf0393bd5e135069ba169f8987f01dc756689342cba61d87a79d4bce2311790069d10709c3a53df974c7d6793ae1298253f13ecdbb5680928579b73d73afdcd24a703dc9b391f303d8835ba1129c3d46237ede5e44732a74f8f23b60a3a45ce42f042a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_6(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "e246e3f95d89c166768aac69fc95fb49eec49aa633adb938"),
		nonce:                 decodeHexString(c, "ce1705b68987aeb0fae7f57b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7e99e4f3e3e1b1db2d1fedf443bd2618e95193cefd905e1d"),
		additionalInputReseed: decodeHexString(c, "130701f88cc1e7545980e6c6f6cc76b0336f089bb66cc347"),
		additionalInput: [2][]byte{
			decodeHexString(c, "95533f4cc247c887d6a7cc0ca753009bf034ba95b7b1d3b2"),
			decodeHexString(c, "464fd16f011eb2986d9982879d79349a3ce4f5905bbfe832"),
		},
		expected: decodeHexString(c, "0d4e6b03af7a648337abec2efa585908af40e88d1f104b3e8c352aa29ac79fe8e448f36b0dfd701a1fc0f1d86dcab7e8a8ecada6ba218d9aaea1c40aa442ca51f3116ced3c9b8ba7546688ed4f3a1378f76b8a29ec763784fc82906dc0f688c5e60d59e6d5284fcd96f361bc5b285465"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_7(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "cb0405e58270cecb34a9951adeb694c5513c499cf310f6a9"),
		nonce:                 decodeHexString(c, "9985d4fb3973463e90770574"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0e01aed4ca221d4b03ef30e69fd8dbfb4ea919a913800a1a"),
		additionalInputReseed: decodeHexString(c, "0b57e688472e9a05baa3920417a2e8f9a9c12555fd0abc00"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cac05f79d9837c97bb39f751792624983c397fd288dd1d95"),
			decodeHexString(c, "344d2aa2b3bad1485429b66606bf215acb0a65bf2a318f6d"),
		},
		expected: decodeHexString(c, "b2a13d75ad389514149763199d711092a9b0e4f1e50809355cfefc1884a94f4d4a50ac5c5da0b4e9bd7537e413bb451fdd2fa77f1f894444cb5c81e4c43978ebfd96900a2c8986c885d0faf89a2ad5c6ef922dfba1b5219b0f3c4ac2095340c3b8bf0db037171b6545741c76217b2aa5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_8(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "e38ea7584fea31e48ab085c44f46b4cf68ff24b4a6b0b258"),
		nonce:                 decodeHexString(c, "67463e4a46ddc9a4de23f727"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2af1e9c4e0391aa9491ce7cdb5f96292e0d65cb9a9a4a3cc"),
		additionalInputReseed: decodeHexString(c, "afe267e1491de3934054b8419b88b16731217eb4ee74c854"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bd0f3c43229a0ffc9e143e16738111e16d6a06ebf3eaa5b0"),
			decodeHexString(c, "23bd14ef8cf797cff7ff787df8ed8b87684fe7a9a33bf695"),
		},
		expected: decodeHexString(c, "c27a6ee5bab8f8e93783840e72894f3b024c7d3206a4a1869ce6fa8b5674bcbd24d4aab30f9866d797d850423c57684b7697913b9ef7bc0be933d0e21535bd50fea0feeb293985261fb9d4eb1ef97ab5ec6b691a08db4c8171e63745d14fb4c3a03c41f906daaa2877b7622b254f0449"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_9(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "71dc625242dcb94e6ba2bd013beb2112cfca576774e10283"),
		nonce:                 decodeHexString(c, "0503b7aeda24c2c9d862f521"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2975ccc019ad2ea0442595f74d1d37dbcba0719d8ea32ba1"),
		additionalInputReseed: decodeHexString(c, "0fef9f0934bb4485bfab2431f8811d963ec7fa7953ffc213"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a6a7501c4a5a93c396ef8cc969ebd93cac1c30b4783a0617"),
			decodeHexString(c, "c58ea233f35a22fd9b01592c6026aa17922070b3604c7118"),
		},
		expected: decodeHexString(c, "a1452d85799b54370cff65fd6dd74b575199606cc8fa64880b26972c913c372010b4c3f4ce9b7b565a8f5305072404c7b9d70f7aef6e2709c1694eefae66ffa80f16eb4b91f8041f4487427e69daa437e183e83d3b9718ba6a23fb90365884899e0d2f0bef56b27249f65e1c00c5411a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_10(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "36c1e048d16f9d6035c6b62515afb929633f356fed6a6542"),
		nonce:                 decodeHexString(c, "82663e2284fd4132116d21ee"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f66d29629bc712965d960f18cf3f7dcbf8a3ccd61b5b5fb5"),
		additionalInputReseed: decodeHexString(c, "93bb372b7ae1035de6f13b2a36c3ae5682b9a3ea8f444383"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9715b72e4755993762e11a93857f1d50a051e70d094339a5"),
			decodeHexString(c, "2f1e73945863b237f49d6d20d0999a0203f295b9a046dca2"),
		},
		expected: decodeHexString(c, "ca135891b47f27c26ac891df49c80d085f90c13d236a60f1372eefd81eafc5819f4ae5aee5b32d46681be01629b078ae965f67b81a5268ef0b303d09e048f4449f5aaa11af51f80151b4697b13700930167cdcb3b6e8260eeb8bec7f6a67a2050a6ea569c825d61d4858a1cd15f70fb3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_11(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "582425e13356e7a840cae9fa435b220af6a96fb53ac91e7e"),
		nonce:                 decodeHexString(c, "e22023cf6a0eef3923907883"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ae540be816e0631c894520b86e8c6adb8152e55cb6aed5ad"),
		additionalInputReseed: decodeHexString(c, "227762e137f9eec6d2b3c63476b404dc5b0c68613a93034a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fba72c01a9e51c93ac00c1232c717d32fd4d4c791556e716"),
			decodeHexString(c, "f5258bf318457769a93ef5b3ba95fa2753ad1c5c1b81a785"),
		},
		expected: decodeHexString(c, "c753a84ba7f41af2ab757ac1e4c9c450d2112767ff55a9af8f58edc05c2adcaef7b5bf696e5c64f71d5685593f254a87625065ee0df51ab4f7bba38faf5799c567d783fa047957f3f965571a7b4cb477566d1c434d6b2e22ae16fdf473a6c03057d934a7e25f0ea3537be97238d74bc4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_12(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "836f5d7521f26d884dc34af2ca56ab4a752ea18b909085a8"),
		nonce:                 decodeHexString(c, "7cb6d07dba32b654390a25b6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8ea7ba8fb790271c712f387145052ca46cb40534355c1666"),
		additionalInputReseed: decodeHexString(c, "99d9aec334666d7c399e453455ef6ae884c2173e12e31cf2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d74d20dc22c55c35f0b66a464dfbe8f349616916fc726298"),
			decodeHexString(c, "407b0951404079fb3b54559c0286143d9cb18957bed7fb1d"),
		},
		expected: decodeHexString(c, "809f372d1af60ff972049193fe9f173684a2fc9828b60b32164c1b6738e1ba6aa12cf739287a74c6ad528a3ec00095b590b44705b4975236a0b7ea02c1213f0e830f275f53bb79efd98679c4766cad27738e6fb777e98cdd606b971fa60745289d5ef72a99e1919686a53a241fe36cf0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_13(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "e555ed6c7ab344fea68d73c6432e4e6da2e67d8b33ab79e5"),
		nonce:                 decodeHexString(c, "719a2def258a852d17d93212"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "840583fe23900949c301a29fc92095f4716018144e64583b"),
		additionalInputReseed: decodeHexString(c, "5262cccd138256fa8424801435d118f39b9aa1db4d11ca9f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9b55d76b743bd7fc5700fde8ffca956c0ed6091df1a22aed"),
			decodeHexString(c, "f8c99af8029110c41a6a01fd2d3d12b7103aa39cbeea90c8"),
		},
		expected: decodeHexString(c, "d1ec06e38af7c6e0a70b73ac62bc3556183f99a47bfea0f0c4a59e7ba4b0718df5438e369ba14be84db40d5ffe8a1a5952edfb83f61ee4d984e3d2fa67f557aacc58291cc688fa29be530e66c228e68607e25c013473b4ffbcfeda721ee35f5dfc8809528eaddad8969ce719a411216f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed17_SHA224_14(c *C) {
	s.testHMACGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "12f2cabd3b6f640daaf27ed6cf6bd7d06e2ac372733c6971"),
		nonce:                 decodeHexString(c, "739e36afe2ba1ebf4e7e5e9f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5591480e3fae752fa59bb99a1949bdeccf0c100f6afe886d"),
		additionalInputReseed: decodeHexString(c, "7766c36e6583cc8e3c26a8058fa0923bfeb3ee22033f46c0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "63e60d1bba9aa29adc3f3b8a5db53f3b703c7ae69bcbc2f7"),
			decodeHexString(c, "f416f36717ba5f0a78125ca52ccd004b2f4f2dcdd401f595"),
		},
		expected: decodeHexString(c, "6196b2b4adff14a26d64f440b6c160210266d7f5b77d5e292e94b8c67bd9cc774274741e7c0c9a7ab21c31f1194ef4218ddcbbe94059042d22ef44ecfecef214a73db64505d46d5493d7475d0684fc0e431c5265c12b35310d4404b3c4db6029facbaec88b0c0ae9799e5af0aa49e842"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_0(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "96ae702af50c50c7c38818a5133938bd7ce51197fc78e218"),
		nonce:                 decodeHexString(c, "15b6c5a7ff9c0395d764159f"),
		personalization:       decodeHexString(c, "e96554644097e9932585b7f4bb14d101f24c8b0376f38c05"),
		entropyInputReseed:    decodeHexString(c, "707d5813e5bf47c1b8232b44a007bf7decfef499d758ed53"),
		additionalInputReseed: decodeHexString(c, "3f698a5f6f4fe67ef2ddf23bd5a67c1a2df4f3b19425fb85"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fe1f6a90fc0ed396bca21c0d40a1bb583eb63df78c98adac"),
			decodeHexString(c, "5942b56148f27dd5388f00caa47ffd4925e854237fe14454"),
		},
		expected: decodeHexString(c, "150b9260ce9aa419fe1860332ae7c9f42d9ada1649679b53f46bc9d20de3431186a54afb5df7b6269cdc05540a93fdd50a2cd3a862372d862841768df02846b057993dd6aa32f874b7220a5a1fd9cb573d720a54af5715cedfc16f0d9a467735e253b2b1a6e97421fcee1f2d670dec1a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_1(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "4834717f669d9b599f0ee526129057b5a7c5680724ae0459"),
		nonce:                 decodeHexString(c, "ceb0e0d4eda21e5fe92e63fd"),
		personalization:       decodeHexString(c, "870b7857dae97cd361a005c3005013e4dd55ca76e46b62bd"),
		entropyInputReseed:    decodeHexString(c, "23f08f8a0b094a85f3f377fdf1018ada0c461b5a05c334e8"),
		additionalInputReseed: decodeHexString(c, "522534ba1a09cf9abf29bde66ce1dacd0e273e8954eccafb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "45f54169665f59d92211f266892009958ee515f14d09581a"),
			decodeHexString(c, "4633819c2ae83c71059ec8ae41ed2c68cadf9b2085a5b8bb"),
		},
		expected: decodeHexString(c, "7afd6cfafd9a7bad155b59a8bb2094f76b915b93764e92858821d5c32ff4a29493788d3dc1627ffe7980950394349eba88b9c2f6869ac5086296366b6f4ee37e8529d291c9d962e30662423faf375b7820e0b650db03e3c99791d8042da790cce1a1997ea21441dba4b936bd8b393300"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_2(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "f5d1d27eb344b63e907d82a2e57494b25dabcae440ac8873"),
		nonce:                 decodeHexString(c, "8512d9602ac8bca243018f24"),
		personalization:       decodeHexString(c, "12ff844e5c5bb3fd871feb37ab796002846ffaca5a741c54"),
		entropyInputReseed:    decodeHexString(c, "95599e618dde0261e43ea38d45e7c09ccdc4bf3dd8e5c100"),
		additionalInputReseed: decodeHexString(c, "f642c19602754584afa3083f567d80fdcd1e5c29202ac3ad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cb6dbad8ce1a5677b4825cca934336b936ccf841ff98d894"),
			decodeHexString(c, "c11fcc157c643a943e54274f1d942d998fd1ea0333e21588"),
		},
		expected: decodeHexString(c, "6f25ae8bf8c26d5f0b9d2a81acaf221790a09241b6e83c9e527c7784881d1f7398c2d7771174f92aab45134b4633ad96430df30b130ae34af52de90b425405959ba24a41685a04d2411e2f0e8564bf5bf3280cb6d75d0b910d06c73a625cd56646eebff14fcff81411c055921cdfb4c0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_3(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "49a10569d87a790d34bcc3c8fd77d075a1cef9eff337e892"),
		nonce:                 decodeHexString(c, "9b51bdb8d6c5df3ad3104568"),
		personalization:       decodeHexString(c, "34d6ad434a436a690e7644f0dc2207131148192ceb2e91b6"),
		entropyInputReseed:    decodeHexString(c, "4fd1dabb1fe6f052fc9886384fe43c0a7abc7adca043d35e"),
		additionalInputReseed: decodeHexString(c, "8707328fc5a1721e4d72b23c2b8ca3c30ddd95664ac478aa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "82c8d83a9f5d5639a6a1ce26d244bd30dceb1cc978627e19"),
			decodeHexString(c, "2a53b0b80b29c7d071983b65ba835e4eda66bcfe7b3d90b5"),
		},
		expected: decodeHexString(c, "08e24ccaae3b44b7248b2d735af985dcadb84f74d202bca726de1cd663bb5ea1bb67c669126ac97218a9ca45491df90beb387615474249bba1afd4534be7a74c61fef308f13661ddfcce40f24b410cffb1cc3cbba2c6d20a5e4c4814d44bef07bb697cfcf1e9932e43349376dc04865d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_4(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "9a4232a59cc579867f8330c288a9218251030c00ebe50c9c"),
		nonce:                 decodeHexString(c, "d97d6cff6e49ad079df50964"),
		personalization:       decodeHexString(c, "b4498a32f664d4b489c2b47e67845d2d2bed5096e88f86de"),
		entropyInputReseed:    decodeHexString(c, "4ec2ebe3ad4e515654af383da265d7b348dd4b89ddd49cbd"),
		additionalInputReseed: decodeHexString(c, "b8471ee87531817d81ee32578d27fa3a190df33561da7a2d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2e74194aa62ef911599b37a51fa742817e3a4e6c254ec179"),
			decodeHexString(c, "afc7f13ae55e738cceb976ebdd01698de4d103db797f799b"),
		},
		expected: decodeHexString(c, "340c28cb7cf4c3e143dac3e133de864b1f458c76e3d47f3cbb6845f940be174b8819fc539f42005f4485fddc657f064c34873094e25a9bf7ec341a98cb97014a1d694b1694170ca5a8976e86f6e4e41232f526ec8536facd02394f492fbcc7c298ef0eddb3c5a148399ded7677366cf3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_5(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "b89744009793d2c118365b1d2f343d6b6c59374b41dbd805"),
		nonce:                 decodeHexString(c, "e793f27882467c5342015cf9"),
		personalization:       decodeHexString(c, "f3c02be0a880e194013c21b09b6703a61a7ccf7a73e8a541"),
		entropyInputReseed:    decodeHexString(c, "68b080a88a15fd6a7be3757b05313528525ab1e2cbd08ffd"),
		additionalInputReseed: decodeHexString(c, "bca27f10060bb8d16d499b3f6ca05ed8462b51b0b43a1fd7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "eb6fcf75884be9112219d359013f45fcb1959ea971bd0bc8"),
			decodeHexString(c, "50a03bc3652f50cb9ed1167ea70ec1e74f896f81a8090216"),
		},
		expected: decodeHexString(c, "d2a529722365e7ff3e660964eeb27040a0e92a4d19bbe94592cfebad71047414676ca6ca72234f5127f313cb7f5be613b44d989fe141c9a0ec1f0b4d83c36e744cfb1c72c32a02b68c21d28832da008c57664046255ef18488ed750ec5e73b18eead939f932d2809f12939670c3c1033"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_6(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "6d2918c15be7871cad99dc9e06f73253ef905d9705c4e4ec"),
		nonce:                 decodeHexString(c, "38664043b04f9a150fe5953b"),
		personalization:       decodeHexString(c, "489243eaac215f76a573b92f0709d116bd3c817eb95c2c39"),
		entropyInputReseed:    decodeHexString(c, "fa7aebd926be162b7edd72fdc14ff97e67dae6257ad654f4"),
		additionalInputReseed: decodeHexString(c, "0a84cad7a1cd21a5afe6557d7d2875d9c62183cbbf49a123"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0c14578ac9504902cb9aa654086246d113039f926a87b325"),
			decodeHexString(c, "1aaab1e3a29e144cec825d29c3f42dc945cf2772ed30cb5b"),
		},
		expected: decodeHexString(c, "33438ba4edd0c38db99f2b6a50b35dd89aecb3491990ec4e60460bb32eb0186ff9fdc973b1b0df23ae65da31b8af5a37a69f81ab3e577a4c2c31e51cfcc4e844b044fb597e937524f59a0019ad5120c460329c982fc93e8e7a4b4e1de5619103b23a7a579633fc925d147d8fb856a277"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_7(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "1330c4aef54ff84387e0372f7c8d273cecf0af2ceb32ef6e"),
		nonce:                 decodeHexString(c, "db6a4f1ace802f3b95fa69cf"),
		personalization:       decodeHexString(c, "89d7bf8f5754cedc2e1a249f693e29276170f62c29c5edae"),
		entropyInputReseed:    decodeHexString(c, "578e2cda1d6060ec2554eb3152507387f325d8e26009bd80"),
		additionalInputReseed: decodeHexString(c, "a6b58f33d57570f4df05bbfb792a00087d331e17417e09ef"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f57fc701e4f8f5cc2181b5357824f932f6e07679ec0d3cc7"),
			decodeHexString(c, "586c4e8c5769156cbb54c025fb01aad0b61aa6238c231656"),
		},
		expected: decodeHexString(c, "0bcb6ad4f2acefb549c46271d5a4ed41d7decc095137e2044b60273388c6c6d79cb89016abcad1d6a138621720b71fc11ef82fae04026e08926e94042694a0c008f99281e03da580fbb6543aca2b4596d39699b97f1fe65ec60a70b88770eb825b716a10ce41383f31db596079a9d54e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_8(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "3f0564b9ceee32c8944c8f2bc4b4d2179b38acc880bdb91e"),
		nonce:                 decodeHexString(c, "ed466b881e2cc21df77bc390"),
		personalization:       decodeHexString(c, "5d54fc715556c20f5b2d01d6b0992f1c596e5ad77f81da75"),
		entropyInputReseed:    decodeHexString(c, "1ab5ce5ecf029a066784503f80d1857979b09c4563944433"),
		additionalInputReseed: decodeHexString(c, "35cb6d07862fbab4f50038097cb463aadf14e519c8834651"),
		additionalInput: [2][]byte{
			decodeHexString(c, "abb21e501e85ad1edc66108e3b88380fddf810b10b883317"),
			decodeHexString(c, "3c690cdd997dfa9c5677bee976fa93cac21f5bbf382f7f53"),
		},
		expected: decodeHexString(c, "bae872c9d221b1531f85c15f466b7a3af3fa9c9c6b72bb8f5dad77f3d12df52d10347ba5d6504cd0a285c3be578bb67f0a9f0137463dc01cdcb847e7853c5db4cbb6a115ebff7b80db0406baccb0e3e68a4a4a95364c2da29466e160fece7b8ddb65dfab000c66cc8109380a601d5ed9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_9(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "115c973d6df41ead464e22572dbe0761dcdb9aad930b2e55"),
		nonce:                 decodeHexString(c, "a5558075fb7c51c94efc5f8f"),
		personalization:       decodeHexString(c, "d3079ee3a3c9b2d69ee0fd316a6448bc7d8e3b730948c46d"),
		entropyInputReseed:    decodeHexString(c, "e5dfe24d30175a89f1bbcf146037a07b324f572d0d4c27e4"),
		additionalInputReseed: decodeHexString(c, "2348ee87bd5a3bb45d51a7b6a109043a9b6ee3db011dda28"),
		additionalInput: [2][]byte{
			decodeHexString(c, "937fe1a7a790754bff99ad51782e8ef5b4928d0057b0c380"),
			decodeHexString(c, "3e89899f4aad241a9189ffa127c87c15b5e3bcfd80bc316d"),
		},
		expected: decodeHexString(c, "0ffc883aa19b3cbdeb39039fd3760160a93cd663b8b358e9fbb6300df164689303ee5f2489ab4ab2d522f6a33c93350eab553a2499b15f8ca198303ff45e946a06d8a40959f33a759c5381b3a59da22e68032abf3da3da6aadb410cb41f54b3146ce57f9bb5d28bc823e3e03c0294794"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_10(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c28541425a7cf33e29adaa91f326f216de89976031977f10"),
		nonce:                 decodeHexString(c, "4f44fcbcdcf4579337434613"),
		personalization:       decodeHexString(c, "44650a29972aa8521d6fb9dffeb15c00903a283f20ea9914"),
		entropyInputReseed:    decodeHexString(c, "801fe4661642392db29f15f0924566e72b596b23ff7b18d5"),
		additionalInputReseed: decodeHexString(c, "43cf4de0276483be1382f3cecc6a803551a40602584cd84b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "03eaa10612895db8f66d50a2210d73d1f563c3ca929d9f54"),
			decodeHexString(c, "8d2b20abc4e8890c772bcaa05cb7b3eb5025ac4cacb5f7ce"),
		},
		expected: decodeHexString(c, "aed27ff8eb54a7d2787e73ed2a51877c1250c0d4eaf10aaddb30409624289a9b7742cdebba54218c7c448b57f209182e214014cd180916a8c125ad438af2e5f5ca5b00f9cf063f0c307560ed4378382b4572b97088f8d24e0bdf0fc3489f64074f1155fbb1163b54c93098b841257c30"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_11(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "dfa52082afb4dd137cb5209f6771f04eda25794280983ba1"),
		nonce:                 decodeHexString(c, "d8cd2f3d7f9dee556ac26d8a"),
		personalization:       decodeHexString(c, "16ccfd20408082829aaf8a818885164581c9a1bd09e9fc12"),
		entropyInputReseed:    decodeHexString(c, "5a368d29096ed643089b65e9ab17b5f58ec816570499fbff"),
		additionalInputReseed: decodeHexString(c, "abe13d12a9f0133bdebe14785dfef5f08a133a6cb5c26a92"),
		additionalInput: [2][]byte{
			decodeHexString(c, "485dad7804de594356cf3c571d5f22263c0b7cbd4dca1f1b"),
			decodeHexString(c, "5961f8177b6015ae0119d22e0a45a4aa1bcdc580f7e7f975"),
		},
		expected: decodeHexString(c, "ee48e57f1b5bd72c99c911d3353952c2c143689c3cd9b474a46e4ada83811efc67f2557d323723526809825aa338a80e833c95297d6b16490db633ac1f1648071c3ad4cdcea056c41b4eb157ffc83c3454b0cf001f1e01c31e48a61587381e293e6cff97270c1f157b069df3e591c2f9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_12(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "95f3a1aeacd07218a2ccee44c807f790e568e0032a42fdc7"),
		nonce:                 decodeHexString(c, "c8dc9a71f76bd725aa909ddb"),
		personalization:       decodeHexString(c, "658b7326cf6adbf7208d37cd69547805bc3f58fdd874e143"),
		entropyInputReseed:    decodeHexString(c, "df5457f1dc4e69746426a9c56fbec603867633ee36a7fe62"),
		additionalInputReseed: decodeHexString(c, "d44350c7a668e64873ff97c31d79cb23b0f1620aed7c9d23"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dfefff80f10c3143b82de3392c395ab94ac8a2f4c0a30048"),
			decodeHexString(c, "a6d21a762aaaddcdbae9b9ecefbcb3149d514c94fe83eb21"),
		},
		expected: decodeHexString(c, "4f5e544491b72b84a0d0532d7f9ce01ec2de6a05ab5056fc75d8f73bbcac5ffc38e20745d0e8aa1eacdefea6dcbb92475b5cf9ce0a617e5603b7b9fe34f4f4cb04ade2db35cce1fd315140e3e4ab8472216c7cfdaf004181351f210b397c3147dcd279f6fc2ebd96050e996f77ad6ba1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_13(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "29a1897d6ea5de66e551f8c106f601e421ddd940812530df"),
		nonce:                 decodeHexString(c, "00f634682f249aebdaf86938"),
		personalization:       decodeHexString(c, "d655a179edaf4b8381a9f6a332ed5b754dbf34f650d19867"),
		entropyInputReseed:    decodeHexString(c, "c895c11f9fcb0bd1fcdb183b4f8cf86b3429a5372caafe1d"),
		additionalInputReseed: decodeHexString(c, "31c87be686b6f90f3d1b0ea90c541e16f3430292a5c4755f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ed49403700cebec30d1057503be7baacbeb45bcdfd9a43a2"),
			decodeHexString(c, "952763380af3243c6c327f23cb74f8368919e0b6b9c25934"),
		},
		expected: decodeHexString(c, "fb29067bdb23c0f0153932523edf32d0e3c18e46616e07f39a4b78091eca90349f636ffcf26b68a4cd0902431f2ada91bcc86dc223db4aa7a42e7cb57a852095704a27f9f07962880a50d2ce16c125be1e8d4f54a0cc5eaf63150c32408db6f39b22fc93b853caaba9e49581f13a8815"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed19_SHA224_14(c *C) {
	s.testHMACGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "387e31bcfffa51323a92d90713b438a1f4ded69707be3aa5"),
		nonce:                 decodeHexString(c, "17e1e72d448abbdf0a17989b"),
		personalization:       decodeHexString(c, "e08fff320a493d70ea4cc85a4cc604664a0deec8f6c7666d"),
		entropyInputReseed:    decodeHexString(c, "3de7c43c621e904f52db52ad823daabff9c10b3fca93acfa"),
		additionalInputReseed: decodeHexString(c, "969cafc33e99964833c4d0f88f906f5429b5daa552f53bf0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8d6e6f05301ef5cefba752f3d0ef58a25775d6b69f6c15a4"),
			decodeHexString(c, "72292aaa69fbef6f010fa4d5bb63d6d7a595395d79a8c110"),
		},
		expected: decodeHexString(c, "77ead908484044482da529f9a6f4ca6e6d8d49954d2e2d5c7dc455e03bebf484021673727bbc40adc8812600201b8c2de8e658191422b80d23502329c84c0ca061b212952fdb2ecf3106dd20e6455f1f231e1dad1cfbf2fa019dfe9c162a670ae20b252ae2e5a4ca0eaae1c679a7fd3b"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_0(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "e76a9de247410db3498fa22899a13ce849f070b5d17c49b9"),
		nonce:                 decodeHexString(c, "2e2d45ecb1259f891a199b1b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "bf2bc8345c276834e859564884b013dc4b5d2bcbd9508bb9"),
		additionalInputReseed: decodeHexString(c, "28d8c254dbbd1d1023ecd0d5b5e39c74d01763373b1e1c1c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "28255387cd760e8e0af4c3699194c3bbb9d13caaf9dfccbc"),
			decodeHexString(c, "b4705f4028d4ff0551198b9bafedb348aaf1c818f283e2b7"),
		},
		expected: decodeHexString(c, "37590f7f99bc412a673d33725aea2d2606e844b4756bf3ae1d2ce4f47f412b1afadc2549333a808aa8cca8a4201c8ac9dc12834858d40b88d46f60eeaf3e6350120b75ea83fa467d00c237259a4243bbb1b834f769c24fe6344b59e878e0828e9321636f317e7f33980f23eafc931fdf"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_1(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "57976666f4fe95a6fe125f4afc733cb59d82bae546ec33fd"),
		nonce:                 decodeHexString(c, "55633d8c1e32241fa3b90775"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "08c06191b88f4c34dc8741ab094f60125f3d1bf694d7c58a"),
		additionalInputReseed: decodeHexString(c, "c76c7188b5d837b7af3a6e948cefce76fb42ce72728b0cff"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bb729c5090d32df046efeff7dafc14341a71f03a828bb4cf"),
			decodeHexString(c, "ce4ad460800dee178f91f7e12497a19eb53cb45b2632eb7d"),
		},
		expected: decodeHexString(c, "1cf1b4102f7465d0232067dfb9900b46c1e74d3b672772bd6c7bda04ea17ae0efa34dca3b39ec4e07533296bb8597bd6e3b88c072a1a4026611caff6b8ecb2733c1629d5680edfe0fce391ab0a54828b67129cd9c9c57bd62358ee2398e64cac3db26cfd4f1a0a3b8dc9bcddc471a6c5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_2(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "759b4b7cf754809597a2d69b7bcbe235e6d5684f00b1b24d"),
		nonce:                 decodeHexString(c, "05548e36334335cc196e6286"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ea6448b4ce47e9c298774d47b52d053f8cbed9787b49de5b"),
		additionalInputReseed: decodeHexString(c, "8e540d2c71ad0a1dfb2bc03c4318aa9ec15ddeeabf17ff67"),
		additionalInput: [2][]byte{
			decodeHexString(c, "df8d08cf1062e26f4d98678b9da503a6e7e4e96b92c129f6"),
			decodeHexString(c, "7ecb2d074b3481a1249bb78defd10abf64d7d292d9ad37d3"),
		},
		expected: decodeHexString(c, "e45adc635871c8a35f59b6ef1bfa71cdc3849b93f6b2384808b545192707987670e870b3660729d8b8cd959669963b6d7c79a34b2ac54aa2c732acc987ac9286d0c7d028aea6e757fac25e75f1d81399b632ef59f483897aad2b9ee989fa414db574a3ab85684ce33465ecdaac37a6d8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_3(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "19520c19c5cd2c6eeadaf67f55d7e1708247c25494a18885"),
		nonce:                 decodeHexString(c, "0f2daf086ed7e4039b4ec664"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e13602e3ef32040d48eaa3ddaac6fba7f88aad1488e63634"),
		additionalInputReseed: decodeHexString(c, "e33b93126631e424291036d4e610df4e40d8ce271cc8ca0f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "529ddca2759655a025d25c9253b51321f4d13de5a69846ae"),
			decodeHexString(c, "4f0b73d4300cb048019656af08ecfde262e93d4aa557f32d"),
		},
		expected: decodeHexString(c, "778224810204e3c1ec8eb50bf1d984a6e988acfc34b0755fc3b4185817ee509f492985a9f7c8838bd17d6dc4b7c4cac3ce1d4786094ecd6ebe7ade445c6c66a36486fc11e95cdd1a3f68dbeafc1fc7f36671c1ae8d8e540a0184eb09c09c9d2901372b7c8d251413560b4e70ff50aa23"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_4(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "50c476349ff270792c1887dc3d0958493e77d90367919527"),
		nonce:                 decodeHexString(c, "63f732412f8756ce937e0082"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "986723467344bf52d0aa321697b1cb64d0faa88c7b08ce5a"),
		additionalInputReseed: decodeHexString(c, "57962bec9f7997efd533e22bfe85a2fadb28c6a151fd7154"),
		additionalInput: [2][]byte{
			decodeHexString(c, "94f4716497ad62c6c75314368c5aacf314f36fc13aeaad6f"),
			decodeHexString(c, "f33d8d946e261dbdfbe3e4019375b54e5e24f32184aec342"),
		},
		expected: decodeHexString(c, "c2e6b4228b3f96f85ac6dce517f4c7dde5d5c0465aae7bf640664cd195eb04617fa121308f73d6bc26e5794cc73a1f51b4e9f81a91b5a7768a40adb262877aa7d4ff8470e7966d72c08791b792510c5ec46009d6b72bd64932b7db4c677da3dde7d53b693361369b9f83a4541d95664b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_5(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c6e12f6a6f85896f9d4f49d85b3ffb89c9b2a04a54938c8d"),
		nonce:                 decodeHexString(c, "c637a5b14c65c3cfffba8bb2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4569795ae28361afc3839c221b9f5c6417acdc46766325f0"),
		additionalInputReseed: decodeHexString(c, "6d3f0c8d086613892e0d906860543af6087c92ac855d3936"),
		additionalInput: [2][]byte{
			decodeHexString(c, "89ff32b0590ccefadc2e7ae295cccdadcf89a8c581104520"),
			decodeHexString(c, "85121b645120d7b52741c4efe02fa522932cbf234138e4ab"),
		},
		expected: decodeHexString(c, "d90984d9ab9b77ca73e37b30c0c4f13ee87065ac9ccded486296bac20c35ff440acf5bd3888423a92b0e55c28316d695c33ad1202f546b19365f4e0a31a40b22a5424756707df11d93c5d173051c7e1a5f801ea43097cfd20dbe963ebb8f087ad724ccc767039805224d0cec93f9a461"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_6(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "5c5abd7ac1cb78cf1c32b2021ad2bed42977cdad7af20233"),
		nonce:                 decodeHexString(c, "261a34842945f3d86314aa43"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1c05523f81cb5ee215ef4e841942346b41667d3c5704484a"),
		additionalInputReseed: decodeHexString(c, "2ad671d17dd03c7a648d459e16431de50eeecc79e03958af"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ce3542016071f51d67fc75baf64be5b5f925ed16fe22412c"),
			decodeHexString(c, "91ad7eebc3582079a1529ed3b8612c5b5d24011d3c1c7825"),
		},
		expected: decodeHexString(c, "6205439535746d98c86f3a16d35f4b1ea4e7869cf53c53563aff33eda67d2790715866af9176d1683ee6bae0cba5b3559d1a062f53b4e14e2aa3b776949b3eb35f7048b80818e6293868a57e669b3e8671f582cd5e1891db2a19c48e00ec16b1b3228c7905fe267642347f33b47e852a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_7(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "ad5d87fdd61da2ad9158640d5a4803541cdd5c5dfd4a9f52"),
		nonce:                 decodeHexString(c, "475a5eba235b38b7ae223700"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "19482efdc5a38f36bb22e40dfa8dad2cfe9e56e671535ada"),
		additionalInputReseed: decodeHexString(c, "b9ee2b6e5bbc6d05a24ee606ff798d6ace89ea5a4b7bc4d4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "06533966b457f59f0146fbc8b355fed4a272f5e8ebb10dd9"),
			decodeHexString(c, "2376a47ac59419f4e78c10b1049f4dd05a8ef15227be71eb"),
		},
		expected: decodeHexString(c, "a2229eafcccfbbbbf2f6f6e9586941ce5d108640973e3d86d4b1c9295864a2435644a05ad9b52f60b0b170ae72231850c96e3a8c0f813faa5a6b5b89a6abef0735b7842d2a82e71a528c1007a86f7edb257a2d92066f11f0401c6bf601e0ba5b0c566857fc84c344021ae65f78b0f79e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_8(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c55f8d126e608f1da3c2565cc82e4509b610753f59e79d0a"),
		nonce:                 decodeHexString(c, "3a08da5cd1e74e119fcf0578"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3613857a8862e12908fe0cb1141aa4925960c6e6e419a762"),
		additionalInputReseed: decodeHexString(c, "57051989953968c0445c01a5877be106fe528c65c3244ffe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0c9f6c3751cd855173a5ce1eb7b19f2ebcc5f4bf7ccf0bed"),
			decodeHexString(c, "2b52cd487a0d04755364595f54055ecb2a3478bd9ca10880"),
		},
		expected: decodeHexString(c, "a2a5b9e5f0c49425bef613798c6db34cbf0556966ac29745045a76635f41d0b34f721aaca59ac13d98efe31c8db068cc9432c528517272f1df52fde3ff0e98c4f0abbc5d59ffdd5a1e11ea8b69f205d431037a3f158511f214e42d23010e8251daff262b4320851cd526488046628ef4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_9(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "ee5e5ed17de9770a06f6b23fcacf908652553c57667b1db9"),
		nonce:                 decodeHexString(c, "a30b12e77ab9ae31347b415a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "df860c0f73d332aa9aab1febb71d3bcce468c1947f7e55e9"),
		additionalInputReseed: decodeHexString(c, "ee6b8e2a3b44f98c03706438682a3ca3e61265239ceee512"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1d13e569b56afec5b68b96cb58a6d70972de12b5f76f6dd7"),
			decodeHexString(c, "93fd7d8cc865b4ca4f263bdc420b37ec7e74d53829503f0d"),
		},
		expected: decodeHexString(c, "bf63652efb2edd5f9432dfe1df1c753012fb3868081e60ef3e083106d8e7e0c9e98ed019739452d76cdcc019c60b14a3915dc71f3fa2d89e5c61951fd1f40c327fea53cbc903dd57806f34284307266ebbb875592add76633fdd4fb7d6db7cbede2d9c39677107141b17cfa71312cd7a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_10(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "fca6de53834e64cbeb21cae79f763e0561f13a279a26f78f"),
		nonce:                 decodeHexString(c, "34845558e8778548896561ce"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d60b7effd1a32b36ab745a0d3cd5a72c8e2712a46716eced"),
		additionalInputReseed: decodeHexString(c, "ed84f569aa31936aef3ade81bb00c145128501a4eef0de56"),
		additionalInput: [2][]byte{
			decodeHexString(c, "36b87204fe2e7914886bb30c636f3f6dcc513c49c3393985"),
			decodeHexString(c, "69afa8aedb5925a2401901b471aa471760e4c950714b2db5"),
		},
		expected: decodeHexString(c, "e3541a207dace456876b133a6d53f440b8bc80e59580700c8e4ec1873cd68a0475a930ca87ab6c0dd7673b3d947bea82bbacf2ca2f6c068b8aa8197b03582a002f8596faacc89d056375b7ad22604951baa3233248cca02babd49a8cc681b6741f332183265253dc2c8cfe7e6cd53eec"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_11(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "a4efb429acac02ce9daf4109c0a68bf391d03528317b925f"),
		nonce:                 decodeHexString(c, "149d596acd3a49351ba6a1dd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "477eecdb9f53a77d47997153134c612950390e6bb82b5060"),
		additionalInputReseed: decodeHexString(c, "a907f4369ca854faa7b4fbb9caa3bdb3ca63e9b0b1314fc0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6eb0ac1e9c237274ee0f20a062c559460ee55fa4f8827f81"),
			decodeHexString(c, "5738ba932c241acd8c70be434e441768a497d9d1acb044f8"),
		},
		expected: decodeHexString(c, "9cc289fe002cb55d88f3b43eda6eb0302382be1f78144fb0a9ff0b53759bce714f41e0ea1b9799b592885c7a5354ffc65dacdb25e138b508d09c238f247338bae7de5e0cb8d8ea1a387ce23736aed673b677750cf4517a21d2c9c9dcb5e4cea57cfc00caceb5c359e468f74454803c0a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_12(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "0c516200989bf72f8cffc21886b40595ad3ed81a9dd93c6c"),
		nonce:                 decodeHexString(c, "ba7402f825cccbf38488d6ff"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d397dd0274f3c83f3d118490f73feb37345ac42727e9a566"),
		additionalInputReseed: decodeHexString(c, "8d57e8eef0589645580bc1a68f01fc3c0f9b2f8323daa20e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c56b9f7ae8cca2eacfb11cd3030981c02c442dcaf1406a94"),
			decodeHexString(c, "2e2b33e565b8a454c921792c41d7ac3285f31a078533f0ec"),
		},
		expected: decodeHexString(c, "d43ec156235d466229e92dfe8b7b92fedaa4c689cd549e5ef25ee1053820aa07b9969bd2f8b5ebc9d594ba37c2c6cccb7eb3655c8c8865b5420f55ce6a050e8b9fec60d8ba4cca47dfb13a2faa2a2a1a993179373cf1fd20f7a78fdfe15dab38dd3a46f0b2a133be45ff4e26f8edc077"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_13(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "8fcc5ff3c7dde991c6d25f9b4e65716e46935fa83708ad9c"),
		nonce:                 decodeHexString(c, "5fbb9d9f2d7cdca99c6e7ffb"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "625484085cf5f1dbea28d3cf1bc5ab76625cc7d27db70084"),
		additionalInputReseed: decodeHexString(c, "b03f90388dff70731c9d2148014a2ecf6bea927d2dfc231b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8f64f7ca57fe4c14692e0cb18637122fbcf58786fc3a48e8"),
			decodeHexString(c, "22d6005acb32e980bc6dab9e534ef7cf6dac0a2a7b05479d"),
		},
		expected: decodeHexString(c, "a0ddeee093b5917d9f92dc0ff5ab30a4e4851842104ebd9a516c6c68ee66b1cc4e1c930afe8d97564481d92f9bf1bba0bf9b90554c4f46a2f8ffaa221a67d4423274b5f8284a69659ec868cc66d1320be57df370eebc12c6e377c25d483493773d8e4fcc87ec440a713df65bbcd3d5c1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed21_SHA224_14(c *C) {
	s.testHMACGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "a9cc66f1fa4bc6dbff186daf324e36b326917d4e24759372"),
		nonce:                 decodeHexString(c, "a861ac9a9d4250c106e0995f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c92fae28cd1ee4f2e5d1d0a1913eaf76923825398872196b"),
		additionalInputReseed: decodeHexString(c, "51a35611732e2149bd8a2e03e702f59ee8fe4f45d7107326"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3024f77e70a67e7f5c06f0a4b233d1e0746333b56a5c8be0"),
			decodeHexString(c, "62d3fa1c04c6e34a5a5ff98020df6dad154f3e10a38a12c1"),
		},
		expected: decodeHexString(c, "da604fa35ff14ca2a25ee25ef23e586cb9b61c7bcbe1aa10bb44417911828205ab12b438da1b0a58166723194a81bec6c59822fc5cded74e0e96dc75a0d14df6462e0f05f57496fff409cc77c6ecc22481f5b5f68b7feb5ce9bc4bdb63ac3d4240e0c112cd0acacaeea2e5314e02c70f"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_0(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "9cf60e04dca78047bcd3de94b6e62b046a1fe32d9bb7ac06"),
		nonce:                 decodeHexString(c, "a94715ba0a9621aa70ccdbe0"),
		personalization:       decodeHexString(c, "8743ce7361b96c5b044aa39202a06f3708caf2520fe1d0d3"),
		entropyInputReseed:    decodeHexString(c, "9ea85479da2be2484bb9092e993c213b8586f1122b0c8d3d"),
		additionalInputReseed: decodeHexString(c, "c57b6b460641aa7c16d7452aa33df1aaf402307fd38d15ec"),
		additionalInput: [2][]byte{
			decodeHexString(c, "53bab9d21913eea1bc5aeb326b36e85e893de5b215da1f48"),
			decodeHexString(c, "061eab8499792f51f524de87b31b7fd43f2c28be4af30443"),
		},
		expected: decodeHexString(c, "7d5047275edaf529e84149f6f6855bae69744cf3dfd6c34d4cb9f47a82bbdebdf5e8b684317730e833b7acb291cef3077c1ca9f2320a602ff248249d0e73249d40c9ff182a9fc0711c34b8a28d1d2fbac01e6828f159437a1bd5a986d639e8fda427450ec75c39654513b5b4d1a9cacb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_1(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "09b662ee008d6c3e13dab5def331d72296b95d5fc5ebcc9e"),
		nonce:                 decodeHexString(c, "377ab95872c629e1c79b7406"),
		personalization:       decodeHexString(c, "04c59c869e9d543ee5369cd218447cdec1dde400cb115d94"),
		entropyInputReseed:    decodeHexString(c, "699afec8b9d6b5db969c2a0e7e1bda7b7b4a4d0afaf1432a"),
		additionalInputReseed: decodeHexString(c, "9d91aa79f0738ff30c77717331959956c263439eb727fbed"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3f4a3c94a956e1afa286e5732ae8508ea666443ca80ee1fc"),
			decodeHexString(c, "1264f3de6556fd22a20a25752cae5cf8de2a9c4b3268b7f5"),
		},
		expected: decodeHexString(c, "99cef2eb450be818f67f54f0427665e2095d72d2e9abeeeda79958eac2ef1d0431be65ffc02743e19c14df87c6c50bb859fbe531fa030b2c0511281c965396b2ab9938100e823c7658e174828c569716b522dc4418c3eab966c56b8d4daeb9deb17f4a0234f40693902bff1816dd8004"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_2(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "5565452d83e12c91923d5b1913f5cb7889c42e23c93eecce"),
		nonce:                 decodeHexString(c, "66021687e7dca38fc1a3a1c2"),
		personalization:       decodeHexString(c, "21c1ab746a273d3987e70bb446c1aaeb470da9e4c53850d7"),
		entropyInputReseed:    decodeHexString(c, "d7b49a61ef54654855014851a7de237d5701eba512e942d0"),
		additionalInputReseed: decodeHexString(c, "ac5265099f429b51424815a3f476c4329f48101c743e8e48"),
		additionalInput: [2][]byte{
			decodeHexString(c, "77f89d63a9fa837ddc4dabc7bd7ac19ca898494e6756d994"),
			decodeHexString(c, "4dc0dc2cd8ea8e6934e3c51e86a87ca55ad8b8425bca83dc"),
		},
		expected: decodeHexString(c, "9fdd66251088456f91af9d58b57a695814dad6ef747e9fcd90c251970005c3865debe94c590b7b159d5e4e2a53eeb4a308c39147fca810dcf83feb8540abe701c84bca4999f94cc41bca266b6be876e18ddbd80613aa9864a1fbb3afffd0e72db013531b286b633699305b4d25045094"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_3(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "5477625d5a915403b9668ff219e534169e46bfd29b9212ee"),
		nonce:                 decodeHexString(c, "05ecb6ec51e110af7cdf7852"),
		personalization:       decodeHexString(c, "27dd76ae725a0516850e5d3934eba3b08048015878da4c1d"),
		entropyInputReseed:    decodeHexString(c, "389f9085b1618606bff7296f248f55cbdbd390f0deaa6ea5"),
		additionalInputReseed: decodeHexString(c, "19cb0badf7e815d336fd6086eab4fdc2df222ba133c8be53"),
		additionalInput: [2][]byte{
			decodeHexString(c, "816f37208baf79ad919e866ef275fa5784816c90767f30a8"),
			decodeHexString(c, "bb8b128a6574387f5b229f5a97743c9783fe5a2ecf7770e5"),
		},
		expected: decodeHexString(c, "80ef3a0ba1732370299c5a8c13714564a36b1b2274d307e9a08d3501daab4b4c3ce23bbb440915937bd6ab1276907cc20638bb85c9a22e8334f971d92042a4882accc12c516baf49e30f49c60127975778c1d43c113e44ce88304d75eda325b37f33d66410674c7033b8ccb4c3c7bad1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_4(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "4549e10f445e310ab1dd8f67aef3a2ddbc9421b17081c6dc"),
		nonce:                 decodeHexString(c, "a1d86168e850eb93ac2a6804"),
		personalization:       decodeHexString(c, "0ed2f454e411111ad95a1b997df93a4a2c04ff1114b1d8a7"),
		entropyInputReseed:    decodeHexString(c, "9677bd2c3c4944d0dc1f1e994db92c13e811ad6b9b11bd94"),
		additionalInputReseed: decodeHexString(c, "c0760cf048a0448add6e14e08df08b9c6f542385490e4ebb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "70bab0dcf4c0b51f2b8e51aacf99de5018c330bfcdfc21b5"),
			decodeHexString(c, "47d06936b8c3b3cd871fbfe96567c6d586fafb2b36c77c51"),
		},
		expected: decodeHexString(c, "3b1aa7bbf4e24ef4aca1ee311d485d9fc3c302b920a37f3b2a15044053b3481a255639a82572df2eb56c6ac4f36dbcfbeb717ac3d2149f1f54c8ea728725710a31e788ed00158272335259dd9520a94e225224cd60fc872e8e61dbffc3b21fe99d8e4db450262a5015a03dae908f143a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_5(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "9824da2093dba422254e62a79f981f96a34500a0c2790afb"),
		nonce:                 decodeHexString(c, "ee85d4b55c9980a80641ba2b"),
		personalization:       decodeHexString(c, "e8c3ea2cedcf14c1536786e7c633e21dbf1821886a8c0b24"),
		entropyInputReseed:    decodeHexString(c, "24a272ad7d9631111f09429dc84c78eeb3158f3615849ee7"),
		additionalInputReseed: decodeHexString(c, "6ba38e1f56a1a5a34fc3a1f0ab1ad1e4a7bc9bbad16315ee"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fb957e99c68b14361e8ce95002ad071d0fddf2d4ce4858f5"),
			decodeHexString(c, "53cbb460e6d48b76597387cd7f89f1d6bcde3160708b6b88"),
		},
		expected: decodeHexString(c, "e6136eefb85064aa1c2afc9e1b6bbc7c4512b51bb7cf3caa0fff2f931ac13fc429a7545f3ec632461885677674249018703c36c4c68a8db31ee7681c6c9bb8a79be616e43a3d861168ea18dae258034235cd971864025c6278aae080e507c84d43a09309052b56152135347bcadcf6cf"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_6(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "010f656c4105513df91df8f18006c905b7166269dcffad76"),
		nonce:                 decodeHexString(c, "1eb98b6d09ce837ff3da2d99"),
		personalization:       decodeHexString(c, "03b9ead2b1d8b1d3d9645492ec80ce1cb299ec90a8e07537"),
		entropyInputReseed:    decodeHexString(c, "8bfabcf89f101010ffff584f7abf98472b8fbe3f807ed3c8"),
		additionalInputReseed: decodeHexString(c, "11ff7fb1b5671e2cee6b8ed2176587c9aea2c5f5bc7c0062"),
		additionalInput: [2][]byte{
			decodeHexString(c, "57f63fd8b1a1ca691123b519939458eb22532c94c7d743a7"),
			decodeHexString(c, "9269228e1b24685ea1389b936d1f1eda9c23303b01cb0c20"),
		},
		expected: decodeHexString(c, "3c808d27e93ff06bf5d61e1b5ca91bf391d15c2e01572314f5c06fec64915d38a4e0df425d9946fd374613cff68fc290ee87dd81a131369c395c89fedf255701aa5d75ad754c08f52c7e92590da3a61258b96332a6234b7f86bd8657f1c377ae70ca586d48093eeed9bc454b9d133ccd"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_7(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "48cd9d371745a108fe0eb51f71f39a27427db15d5f04215f"),
		nonce:                 decodeHexString(c, "5f473c19084e3669c5c97308"),
		personalization:       decodeHexString(c, "91d4b565eedd4dea3dba5c75717c8bd61fcc2289a4736824"),
		entropyInputReseed:    decodeHexString(c, "eab71701adce5b00b238a1f625a7ce3084ff9f1fc9e66833"),
		additionalInputReseed: decodeHexString(c, "d44f1c1b8ec8dd0ab2cdb2e6eb6e5375f3c2b01df886a17a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1c216287de1b821089d2dfc2fa4ca5a97a5325f62764bf16"),
			decodeHexString(c, "0849c7bcfd12fa3a105ceab8918d5a158bab29f54745780e"),
		},
		expected: decodeHexString(c, "632598a6cc1043b2a3608485174a5d55ea735fc4219b822f7ecaebec902039941688c3723ba20f2ecaa138f79f9c1a331f2ce4d287f449310b04c5d9ff6e6c83521aee9a1077521eb187f68b3a6a490bf12dfc99a3fc2c1c2c580ee49c8a5e98d63248f2446e9a83e539e1f2d2cdeb3f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_8(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "27ed21814e5437b3e62f7e2f4c78f178a37f31281fd924d3"),
		nonce:                 decodeHexString(c, "9e6f5bcc7c98cc03912cd946"),
		personalization:       decodeHexString(c, "9862c119945fa9b369ea277fc88277bf19bff07fdb1e076f"),
		entropyInputReseed:    decodeHexString(c, "8cf11ae1199cfa199d240d14b634faf58e083dbae46d1367"),
		additionalInputReseed: decodeHexString(c, "190c555fbd524ef09a0a89c0e31ff3ed41327e146f7be3c2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "da6b1182c4881662843060c0ed553fd2935ba3d3e0e338be"),
			decodeHexString(c, "840a61e8c94524932557ab6dbcbac845ea34c6fc911a88e8"),
		},
		expected: decodeHexString(c, "85e71cd096aa088b6e86504b077827f38607a99e5452af6d0c81d93db6fd9230454e34f209549a1eb5a2fd91ea90680330d0c18ceec4d9a8855f9a8e6e6412d698a769946a56dfd1d9c4aafe5b12cf1096d64088cb2dbb5087c7ac2a7d5d9e7e3156d16b2f9538a174c7e7d61c74b2a0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_9(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "51ee2a17299e3aa62007ff80897200a22b73b484c30ac1a6"),
		nonce:                 decodeHexString(c, "4f69c3a7c4c78ffe2ce13880"),
		personalization:       decodeHexString(c, "4656d77ae28e5e6258bcb7009e766b55cfa37a705ea0fd34"),
		entropyInputReseed:    decodeHexString(c, "294080bec3b522c7a52627548a152a48023743a972bbdcee"),
		additionalInputReseed: decodeHexString(c, "fac844720bf841583af762ccbb6f662cbe7a9a99f9d29f5b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7ff6c55de3a2edf9a647db6f2cb59ac07e2c595ff860013d"),
			decodeHexString(c, "de1f04d0e186abe0c728897e5520211d03a116fdb5e18508"),
		},
		expected: decodeHexString(c, "3d86402d86a90b4f4b279b32db00883c2d50a7e0741a5104c6deef2de02ca7ab7c00792eb7d5bffd7a272e937a9a0917a23ed838042fd28b1d072c9fbc6c8d88230d0db8f41c82cb30f84b27fe968bec608cf799b3f4b169c2df2222d42298029c469cdfeb03142b6c1300ad187987e6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_10(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "bf1083455f525a15e864f1d97555b92bb5810f2275d47d79"),
		nonce:                 decodeHexString(c, "2961f1f1fadabbabf111476e"),
		personalization:       decodeHexString(c, "cc14e9435b2dbe5c951840636ecc2729fe8e4d0924e2ec5e"),
		entropyInputReseed:    decodeHexString(c, "f10afa715cf6824d96dfd4b94c0b60f59167b8563d0ebfee"),
		additionalInputReseed: decodeHexString(c, "d9fd144b5a9d545751aa8c24185449cd66f821d33507e5cd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "23a446353e51c2c3ee95a814b2455e1282f7a4d7abf58ec7"),
			decodeHexString(c, "378210cf047757cb10e31c17cf35f3a6bf07786eb45d1fbe"),
		},
		expected: decodeHexString(c, "f845144d6e2550bfab13fca4f51a7db301352e0dc37aadd4af430e3656485d35bf6201e3f3a50c8f70e0f2c348cc2ea769f612443549a8b62baeedfa4fac84ab54526d8c182c91342a348edb4c3be454eb4f84161a45f5ed8256810f49cd48bc3302d50b1df9c8a3b60609e0b35579ed"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_11(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "1f5829dd1c139033783ceb551b0c51fcd5726673757b11c6"),
		nonce:                 decodeHexString(c, "12b463943051849c5d623a2b"),
		personalization:       decodeHexString(c, "32d8c18546ef2cd7da8b1d0cd872c2fc4e351cdc3ef92c50"),
		entropyInputReseed:    decodeHexString(c, "b6cc59b6ed2ab05af28b920123a256240d00aa618a74fbf7"),
		additionalInputReseed: decodeHexString(c, "b6549fb3bc04fbe765b8d320b6f5ce1df2eb51afb859bba8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1a7e921d64d302e29707fa7ffcc8c0317d724d4ebc45626b"),
			decodeHexString(c, "02b57f1bb76cadab591cb2b67ba321e07843475c01f66cea"),
		},
		expected: decodeHexString(c, "057beb95e2102bd776ee5e865313707cc0fda2781d43db6344444bc930c945451c7eb7375971456a04c41e743e0050d2e827828897a1136047be40dadb2c31cce3e6e729841cd4c06611880e111ec5fcdda3610145aa8694fa87cede463aa670ad363cddd33b0f7038b3fdb4a8d846ec"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_12(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "0d914c6aacc85952b7dd334588ec4d019d65aeef9e2081fe"),
		nonce:                 decodeHexString(c, "39176e3dae76773bf6eeb170"),
		personalization:       decodeHexString(c, "38506603e73cbdd21131d0ad0508c48affd478d7b1a94427"),
		entropyInputReseed:    decodeHexString(c, "93357a12e81fff2e56e80d0051f6f520dba4c374ded4a3d4"),
		additionalInputReseed: decodeHexString(c, "e181554f4b8344df00062aa0692071d13b38b59826d23fdb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fe70512ec9ca2ae48a5156e6b9279e06edc4c3970b963324"),
			decodeHexString(c, "11b933a0c4e094680c202736c02c0658604b34e9403baa81"),
		},
		expected: decodeHexString(c, "f9a5d57530d69edec330f385257e99e27d1167314dd6d0e86162a029739cede88731023d98ffbd945863ea6feb91a13f8020de0ea73b3ede3b669e02c2cabdcb017712046613b82ca9d4f504610abcf3d6f05866df37db184ad7c5e9d2925fcdd553e25b2edc58d86a3f9e8220b10059"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_13(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "1f0a72ca6eaf47fa9b29db2a8733e4703dc915f45efcb34f"),
		nonce:                 decodeHexString(c, "8e322149ce8966fa3b1159dc"),
		personalization:       decodeHexString(c, "800305628a6b8e9525427f63460e5c2645dfa7037e8336e7"),
		entropyInputReseed:    decodeHexString(c, "956afe8c613ad1002d4cde4e47d2ecbe1dfb8ef334f7ab0c"),
		additionalInputReseed: decodeHexString(c, "464d84fc3455e72a0ae57ec60a1a6d54cc2917592747108b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "361d9fb6452b281b2916167d3db86730579abf8a55858cf2"),
			decodeHexString(c, "b717c39751228e32879035dc3f2104a0190ad480e9174ec9"),
		},
		expected: decodeHexString(c, "9f4d6b7702dd764c315adc7d28c7eca8369fb7a9cd194e1f098167e766fd3ea7b9090e4aad459766e97ac2bcff0537ac0a694d042574fad55bcca23f17120f8a7094ccba08a5024d6309c6b5e5a6d457ac9750abfb5df2b05ac8d393a1b6b7219e3ad48a31b8d254cb9c0b1a44d8cd09"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed23_SHA224_14(c *C) {
	s.testHMACGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "4dc278edf2cb086ba4c0650c3704f6eb5060221f5055887c"),
		nonce:                 decodeHexString(c, "ab9457764ee2f8827ca0d7e6"),
		personalization:       decodeHexString(c, "6d267d9176fea6572e6d18973ddac8f7d5769b3e5046977e"),
		entropyInputReseed:    decodeHexString(c, "3f4b2b98561faa3eafb6a46c799cb2b8cf6571571d741d3d"),
		additionalInputReseed: decodeHexString(c, "87a9d3f3915258d555cce738822b5cdc149325a2de9ab994"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ed092d99ed9ce4e4c0672334a79c92da03f582f37b005322"),
			decodeHexString(c, "b3f02760c4d3aaae071f4d813951747ff0c508a38c2069e6"),
		},
		expected: decodeHexString(c, "ca5712990184688412da82c602fa2c20b9d13a324e821fb922ea3b0abc140a208ed33d4b16080df2c97d12c19b9e3d1292352bcd432ecece6ae9c97c54d131ec6e8b75bd58014d6482ca25ecdb65f0c7402abf69bd1051dd9bb840123d808e10d8f88f48388acda7f492d81fb87024d5"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_0(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "567ba972e169cb31c72d54789eb635dcfea737214b4ff512"),
		nonce:                 decodeHexString(c, "2001343cd1beec788d7be7a3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6b4fcbec7f956b4d05517c1671b94cf6cf554afa98b21d11"),
		additionalInputReseed: decodeHexString(c, "bab54b854030119ee208b8e9592bdeeb9ac8df8d81d314e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e02beb1fcf375949bd0fac04e2dfda2664186e762c57e1c8"),
			decodeHexString(c, "31c801c27ba328c9ff5186493a15f8ee72f9b87a36c7c7d6"),
		},
		expected: decodeHexString(c, "e46cbe0afa581762e6acefbcd7278840aa57af548105c88a7bdeea7359f2d9d85c22071af6ca14148b3d539af3708ceb1c5379740038351c5f6af6638fd0e0abe3f07a14c15e0cb34b13b3b4ddae3c1ded9e81b56b37bab09136277de697dad9d562f4a72839ff18bc93b38dc29df412"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_1(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "6dba43410e488e982aab577a5a0e63fb8c522b64baa6f920"),
		nonce:                 decodeHexString(c, "8a3a1805174f9a9d43cfbe8d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "773231efc7a6ac40ddabae3443cd8c21a62e1400bf3e0941"),
		additionalInputReseed: decodeHexString(c, "2288e3a46ef7112114b695fb4fab49bbb47e67947e4d2fc6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6de3331c47a2c7ce046d10e0225a474f0e0bfe4094ca9fa5"),
			decodeHexString(c, "16d6a0b550023830eb021fa745d4edb1473c47d9db1c4b6a"),
		},
		expected: decodeHexString(c, "58e7366d20d937b9a4d57ef611438aedd82f59bca632b4d82383531eb22330dbef9c18a97664bc5ef2bc51842460999fb9f719449d348744530a238c6a5cdccc12cca637dab24a68bf4712dce4d95f57d7d82a776ca58d8a5841c23d04d584141ddb1b9170acad4ccae8382457524bc7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_2(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "46ac3f656af8aa41388218eb8326e5837fe72f71d294c6be"),
		nonce:                 decodeHexString(c, "79552d05b4c096f8c32d31dd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e3e6c504883a65842cf2a729b969d71ceec3268ea7910b4f"),
		additionalInputReseed: decodeHexString(c, "96eb9370b023b8d7b891838dc2135a18206914da79e5bd1f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d5346401a31f95edde31e8c1f793d288a330318c8a4964e1"),
			decodeHexString(c, "177bf69a3a79cf822eb8f16025f2a07aac03e78276bab334"),
		},
		expected: decodeHexString(c, "d46b4edcc71bcfd44c2f61f39d7e68ee1e33f2e66b1935525221c8b2c9322162063969fa0290d21bd2f55e9e5c408665e346769d00a3fe7aa4b323ca5287e2cb914e2104c9de3e9400fcc01bd2acd09ffe16dfcad1101dd4e839d908a90acf91841803929f62ce8b37d218842f283bd5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_3(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "50266363effd06b41b928035ae2f4e45d0dd5ee2f55973b2"),
		nonce:                 decodeHexString(c, "855741ae40d54de4c4ebe8fa"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cf15d1af6c8bdc8ba3f9f767ba1953b370ac0c2a56878825"),
		additionalInputReseed: decodeHexString(c, "976923a671040ee03e123cc1f15c0305c2a1b1838788e5c8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f1e647d8db9fef522cca733c838c0d126263e119997985eb"),
			decodeHexString(c, "ef268a9b250412c976f309f60c3fb184b57fc7888ab057be"),
		},
		expected: decodeHexString(c, "943bdef1ccaa74daf64a0aa5086ae9b2d259520c4f170635b7473dfe8156cfd5bc48bfa46b913dc655c1d441e6d2c6b1ba3ddc702405714d7c669663eba9e9d908e78030acbe7cd96f6c4834be72e81e17e0855a0fc95dbb5bbaad0c3fbe7f09f0c8ce40383e5b1618852c8da415bf59"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_4(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "a3671269b0b62a9d9896710c92fc9e82fdf020c46ff72ff8"),
		nonce:                 decodeHexString(c, "6400a4a1049fd5e91dc6a67c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4aacf74ce6f6dadbdf3d1e2e3aca7213b5d567f309e56034"),
		additionalInputReseed: decodeHexString(c, "41007892acb17a5f1f551c701232c91c481370d01b2bb69f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "169496fa3394170242f853c740acf785da1005dda17e4592"),
			decodeHexString(c, "c0625486c06c4396ac170e8c7144ba12fed0ccc0f9f88340"),
		},
		expected: decodeHexString(c, "246a2acb7569f04b37db982a8bd99352964b7452aba708fc306a2b979dadba6ab0818bc23128d08dc234305f9360f3686ef053057030e7d99d77173c6ad3bb2be0b6b8a13705056794faee9ca7fe1681496eb2e1eb523f377aa231789c054cb5b20d77b451f9327faa68a4607333c61c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_5(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "257dedf8453e4defd2bb2c01c4e9ec0cc842ad1eda028cdb"),
		nonce:                 decodeHexString(c, "aa7c6d780a3363d01ef26de3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1f0ef57a019c7ec2a7ab23926e30945d5d4934981ee6dbb3"),
		additionalInputReseed: decodeHexString(c, "db697e173bfd1bd600b8ee45cc3cfd3337a63dd1f4234b6a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9f3324f285cc1bc927025f6e0dfd3a8754178c6a13efb721"),
			decodeHexString(c, "eaa0f12edad50580d1f85c4d4b3fdf359b94c2aee143d9c9"),
		},
		expected: decodeHexString(c, "5191acb51c3367f5984f9ad64e31656c6fd0352c81ef400b7056a7723990da659b9cc3cda5ac1a925b5968a0b51a37d1399dc8e67d092c6887f413abf7faaa7fb7f8cf7973bfb3acbea1d03f2404f171e84167ae5f0a8075985911de8f772b34528418ddf25132c8e7dd985dda29f6f7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_6(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "10e40755fee67581f16bc66df8d9f5c1f56fb7eea6224443"),
		nonce:                 decodeHexString(c, "6ec23fb170cc6d03ff9223c3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d46a574910467d908f19b7536e476ad90d8301f6ef9cfe43"),
		additionalInputReseed: decodeHexString(c, "1cf7d4072a520202e9522b8eeb566f77e800178e0063350b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "832a702323b7c1c9f3e06de09e6101b805ec52a2934db283"),
			decodeHexString(c, "92c5be5dfbd13462ce3aa5153bfa0994116c70e53b68bd63"),
		},
		expected: decodeHexString(c, "1ecda5f539cfd6a1b5a676c57b717da92056fc0d002e807d2707836e81f936856e4e5e3de681a4872bf88380fea6ff5a0dc334feef517d2b9c228400c3fc0de3bd5c020c32075d2c87a90d32ea018e1cd4977d930c5f3c08b9de4c46a3b622c2b0ddf6d1616e695fc21a65653188cbf9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_7(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "56bc792a789d43de72ea9f58c1e9b27713553c5864dc2db8"),
		nonce:                 decodeHexString(c, "1c2834ca90d25f99f61128a0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b2a633300f59ba753dce3ec54aed21a2f1a5efea3d8a8e8d"),
		additionalInputReseed: decodeHexString(c, "d3546d8988a2eba245e1f6df96cc9f56dbf3fbd400233400"),
		additionalInput: [2][]byte{
			decodeHexString(c, "914359d47af137a178dae7013df1a43e92a6308464e676ca"),
			decodeHexString(c, "46928473cc26edb9ae6b91fed7453d736a4f50e30724dc73"),
		},
		expected: decodeHexString(c, "63ebffc137e19bab87995bfc986bf17892995fd5d6a14b2dede82ac8958365a0f33f727c9536d8fd647cfe8f461a052972927a9bb8ee9f230305dc3f992e26ec2eb5d978c0f8ac4ccc23f73c6b4887a97e05cad49cbbb2aa3b476ee105eb112e732c8001fea7b8edbb370c88b00eb553"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_8(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c1dec6622b74d78bc74e70a5b2c08a760c1db79c4904226c"),
		nonce:                 decodeHexString(c, "d34243c6c03c3c3ea3ee6dbc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4a22dc6dc171bc4adc019fd434b7f4b7a23ddf967aa9db34"),
		additionalInputReseed: decodeHexString(c, "b63a03f0c2f40ded67afaa83c9656d816b4a2e1538d4a99f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "08dc210940e33c75a26eb3ec8dea59dc692436eb9241e85d"),
			decodeHexString(c, "2bed86ba3abe28aa6bb3d6b947ebd4b0b2d9e483326907e4"),
		},
		expected: decodeHexString(c, "f2ba21ea894616765ecc1454bc3babe2032aa1d742e1cb0feb5dd999584c59dff3d8f7f01626c0ffd8778e69d4d805aac982dd32a4b9866ca34135c7fdb039bb413b05d50cf2559df36eb5f4e7d3c0840bcce1a631612f2f19d1679dceaabe4673466a1bb85856662590af46ed6ae58a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_9(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "e93d08d9849de904a6d64211cfb9a38dbb054e5305f292a7"),
		nonce:                 decodeHexString(c, "b7c6b194586941b1101e2d20"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7687dc57bbaba7e695731889c3289840e1d004b1cd9ff9c3"),
		additionalInputReseed: decodeHexString(c, "856249038ca9322edf3dbd68ad7f41b708f91a002ebd166e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8e485eb832f89adbf019b6988a0f85d385cdf10c903de02f"),
			decodeHexString(c, "58443a53161f0d212487d6bd9ff01f1a7b7c089874cbb774"),
		},
		expected: decodeHexString(c, "3976db87a8cc04e44301bf98b0521ddec760af48c29044242e0b7173d70f21197039946932d1b8d376938b45068b60fb3fadc53eeb071d84367fbd66973af93e6e6fdff3f11b89d1a029268b51b534ce5151c92495307c13b106e918e307c9aaf1c08bdcbde4c5edc03e978d40e2393d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_10(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "0f05957ceffc4c1bea8d6598f609ed6213f6707246ece1e2"),
		nonce:                 decodeHexString(c, "048df0fd6796f61e6d02b1bb"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0b5056b9e680264dc5c0f83509a4c69dda13e975eb24933d"),
		additionalInputReseed: decodeHexString(c, "685c5bbaeeecf37b4a86f004651b7abe573556668aed059e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "23b7602d22b6770390848c731c7537428d5accf042ba86ae"),
			decodeHexString(c, "0d548f6522f2a43b3a7930dd9c466177c997312ed628d4de"),
		},
		expected: decodeHexString(c, "bc4ba0fa998e3dd9648101719739e396107540f073fb654804715672c1ccafe8bb691813743830a7ff3228779d84b524b244bf52129b22ade255824dbe059e435748a2cb45adc679cdba884bda394b8a66107044a3a163300ce373d3468980e52b845b88ba8a37f35b020c9b58aaef25"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_11(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "a9e725a9c0b6ffa8ab8ab29d3c50c6a9d5cfaeac2dde07a6"),
		nonce:                 decodeHexString(c, "4a6b385fe4964b9faafb8648"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f8d3dd0cf0363823599ca06157a4b034f9f403dd18087025"),
		additionalInputReseed: decodeHexString(c, "41271c6fa6470dfe38d073107dbb4d182871e0c422a0a0da"),
		additionalInput: [2][]byte{
			decodeHexString(c, "044df66570dab9c0eadb8fac4998286d61ec30a19224f1f5"),
			decodeHexString(c, "563d4351b99ed3d6e501b0a85bd049c9a388f0c529406d79"),
		},
		expected: decodeHexString(c, "397ec457d8385b458b2fdbcab0633e14ed249e63e1a04bf0283853b441ec226613374a3d1f9c77ab0d08f863140d003b6d6dd932b99843b3315ff70c480a94a213b20eda11c930f58b82a24f6a24a20cee015651f9f1080054b94132addf94c30a92820c328d9102d92c5bc3a00f8d10"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_12(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "ff64964c5e8eceea7b798f5974b1a713dac51cf3317e2eb0"),
		nonce:                 decodeHexString(c, "c0cd6d190e01516031d47b2e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d88e467cbc3eb58caf97e54bc37b7b2302e3471937170152"),
		additionalInputReseed: decodeHexString(c, "0f01b180a22155494d57cec2600056fb68956589da9027fa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e056ae5582b712141f25e65b4601ee3e4acbce70ded98b67"),
			decodeHexString(c, "f026b5a162822173e234ce795d481aeadc0acddc51da2edf"),
		},
		expected: decodeHexString(c, "c6b94a2968969b3b4503e5dfae60642ff43492357833e3407ee79ddae4c54af5c11ea704c44eaa36eb16ad1de7a05ff1cbe3927137e2bcbe7b1f10652c3d8c3548e8f67b5e25a194898a8b4b74e29781a00fc75f1eaf6a2b0ca3ab49e7e06b92b48a8159c41307abe56c84064d692d3e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_13(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "b277e0e8f322c7323beec86eab6d6e01ec081b1f307b2f5e"),
		nonce:                 decodeHexString(c, "6af3307fc9513c618d3651fb"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "70a987f9f53e067fec57eaae7c7b3bff58e4e4a8f1b50129"),
		additionalInputReseed: decodeHexString(c, "359a932c566b9e015504411a1172b39d4a421ec685e974e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e36e414ed03f0dae3ef0c753f84783825f83f69040d2153c"),
			decodeHexString(c, "46eaddef91f2b798daa79f49bbb046d3c282639cbb0df8af"),
		},
		expected: decodeHexString(c, "55eb86b25b70fabf1143ccbc03f53670f5e5ed22735361f7e9d746241f46957cbf20a62e8d64ad85134c378eed8f99c7264047725ebeec71b7ffa24ce2ca1d4cd0e20fcc1df78627c2462b604edd9be3ed5852d67d909c8183ba6f9ebcf62f737d1128ae34dbe947d28cc0e224ba5b8a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed25_SHA224_14(c *C) {
	s.testHMACGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "7d55ab6467671dd32da0056be163b0bbfd903c97071a5a70"),
		nonce:                 decodeHexString(c, "97b460f2ff5777c9d6fd5155"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8c941abb588d0236651efa5b78a4ca9a0141e0669c6389a3"),
		additionalInputReseed: decodeHexString(c, "7b0a52df4d5a29f23cd0851117dac0bac58365f26acbf8bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "89468643d8096c2711a5dd5d323eb70fc6947504b7ef3b58"),
			decodeHexString(c, "f9f27aafd1ee350424529203c9a11680034567137fc94443"),
		},
		expected: decodeHexString(c, "fbe69d05e5240f16289075219edff0c5e20b7b06295dad5d8e8b3ea9c66f0d970bf742ce3f91ad5a91ecac621a9ee05ee50985cc685b24271210d9fe6992946c55889a8cf2caa51a6c01a52fa48be04f384b76f77e638219d3e50551f9e4ed0ac582d3fa9beb8b0672c44189993a5cde"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_0(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "44ea6bcfa5638e7b090214fa78214a4a1a1bf8f62509d530"),
		nonce:                 decodeHexString(c, "cf23a346b0c39111eb133a14"),
		personalization:       decodeHexString(c, "9bd10d819175b807b7f087b0b9aa3a64d161c7cf1da19eb8"),
		entropyInputReseed:    decodeHexString(c, "4e3a45fdb6fc11478f66a558726d579db2bebe39568428ec"),
		additionalInputReseed: decodeHexString(c, "b5ef550b3af1669590ba3c3d79d7cadb148eb37bfd39ea75"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e08a02b8c686a51d2238ea25248f2e47d125bd8bc85e64a0"),
			decodeHexString(c, "531c8e8b422de0b3a5b971482392a112f14ab46be1cb1971"),
		},
		expected: decodeHexString(c, "c50c93bd30f74f4b7af01f7a02dfd4a511a2d9573f22cc5abd917eec4304e278cf94876f2cf433f73bb56d43fed14fb2b04016b28be66ccd34af806bd26dd741344100a3490b82f839929de2435d2f667faa94f42de85315589173115bb22ffaae9afb67b0ab5eb7651335781d1f3192"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_1(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "44d4ef3f1244548adf47a5155098ff2aee72457e8456fdac"),
		nonce:                 decodeHexString(c, "e683e4e62e5e9c75ce1db56f"),
		personalization:       decodeHexString(c, "de994cc8136baef444c180b6cdf985aae42a62ec2696080a"),
		entropyInputReseed:    decodeHexString(c, "260fd06d16bbe9b5bb79bb4669283803273318130437092a"),
		additionalInputReseed: decodeHexString(c, "6b36ac54f565098c66d145ab0bcbccc18a6d0382aba85b30"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e7dd116b7c75b69f3df094f58e04787bf05d814098fc8ed2"),
			decodeHexString(c, "ccd1e4a534355aef69ca5dad007567ed32f08e0b33a1b27e"),
		},
		expected: decodeHexString(c, "bdc3f39bef50273b73181f87c2753477f025f248e59e6171ccda9344de51ff2a41ec2c10fa7684a53d838f0178f7a964dc5ebc3106399b67a401ea9054870b2e1a57f063ae4c7a4248f4c5796bc6ae4caa2ada1ec8b69f16255b89359171b0b3ebb96c46cef4c58a7ef79e1e41f38e1a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_2(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c917bc9df7c1f1a1c61b17f5e796cfb54054bbccd9591916"),
		nonce:                 decodeHexString(c, "bdad2f6f951256971b19c3b7"),
		personalization:       decodeHexString(c, "8ad0cbfec2189707bbc261d6da16050cea285f61b59ae9d9"),
		entropyInputReseed:    decodeHexString(c, "01f611c3b3a3197cc76623c7efecd932d5e520023de12f8b"),
		additionalInputReseed: decodeHexString(c, "632a83c99d4c3c454e2b165bc0a04ba88742bf79b02e390c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dd0340d1b755847e6c0a881d28e0f53fc1cdeb94b142bc9b"),
			decodeHexString(c, "13f1e8dd318523553eca3216cbd65335ef26ac4b13b2352d"),
		},
		expected: decodeHexString(c, "f39945e5de82905ea943987950f7da94f267bbfb9e597bb045a1ea5b4fb38097e941f157cd55599c755c7e5904d1dfb3006373d07fdf23324df3a890d38a271af79275f6dbeee25ff80774e9570281adf6d5635f2522dde56eb5fbe5b42418ffc51de14e0ebc20db706d8041647a8a10"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_3(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "33112ce0cdfc7a55ecb861fe6ced395799ae95104ec52a27"),
		nonce:                 decodeHexString(c, "0c9b0946af553603df299143"),
		personalization:       decodeHexString(c, "423e66966489a0525c7f4dc72ba2d2912f713372568722dd"),
		entropyInputReseed:    decodeHexString(c, "bb60703165d0365a1eb8d9bdaf7faf314122d5c0706e6192"),
		additionalInputReseed: decodeHexString(c, "e8fa2a33d24f3fa2dd4e50a93615862e1c5ef76684eeef70"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5ea9763956035c5b2f82fb34d0de1c5da2ba4e1d8871e3f1"),
			decodeHexString(c, "0078a0a7072b48d83fa494dc72726ec0c72adcc812a3f04f"),
		},
		expected: decodeHexString(c, "e17db6479c9db75c53c43f60f1d0f2174e5676e295d9ce457b29d82b060d94cda04be1b56c9abb6da634ca81636cb7a52b72b7e0c6b734c6865daee3ce9dbf4a678657ca233868ab566c4d156f286c09c861d5f54dc52cc87f3aeec8c61b4c5a0b51388730eb7e7fb87a035fb5fb0dce"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_4(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "1e0b4d22e1a05e95adb081ab5cae1f92ecaf1abcd86e15c7"),
		nonce:                 decodeHexString(c, "1113a5927401adae94267491"),
		personalization:       decodeHexString(c, "ef3b001be7e97b7b1b9d7869893c9014fb6a013dde3bbd5b"),
		entropyInputReseed:    decodeHexString(c, "c18bde9fa36656e08e04b7552055bb0e4e2a377dc76dc9f0"),
		additionalInputReseed: decodeHexString(c, "331e526719434690beab43a032a349ff797604ad7407330e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aba15d415a5ed3272736004f1f03860cd1490f8407cef67d"),
			decodeHexString(c, "3bc65ca0776cc9aaf918cee9195966b874fdc32d3872d0ac"),
		},
		expected: decodeHexString(c, "1bf89566b33674fbe37fd4071f68d3556655e7aaeee94e0cb91825549c1f7fc7aad45c5931f4a9c076738bedee47ed17a9cf97da6946019ef27ff64da11e31641ad29c776414cfa83246222643cabd390a07b023a327d26f89152d6744d24d4ab8c87509a942ba14f270fcd1a0bbc15f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_5(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "336ccb62774277b42db0d6fa022585c4a4e73cc8cf1b5de5"),
		nonce:                 decodeHexString(c, "e56784d8958a9cee2696dd85"),
		personalization:       decodeHexString(c, "718bfd45176ca43dc7f087e27c2c861414595a2de1611b3b"),
		entropyInputReseed:    decodeHexString(c, "5512428498afa24ce27cf804e58473339f683f508c7f0b6d"),
		additionalInputReseed: decodeHexString(c, "449558bd988a6aeec921c80a1d9d48034f7a633fd74e94b4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "43bd1a540e225bd55abd923c275b56d0d48a1f46bc91466e"),
			decodeHexString(c, "cff4a2ab3f96813a7a2225ebdf9bcd347b2e69df81802400"),
		},
		expected: decodeHexString(c, "21ee1d23e16bf40d914584a487348ca2619a9b4ebd9c94e5fba623709201ee8a8048e61a8122d8044402d1f60fa2e15224d6213edf88103794f35dab65dfcce2c70a5c9b9e70ddfb480988bfac4b273fcde68e1266ac2b37ef92fa06af124f136fa8bfe21e84cb0a25e08061fef1985b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_6(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "e77aaded0531ea22f3f43c58407baa1e7f0a373a3a383498"),
		nonce:                 decodeHexString(c, "6087cb864b090001469e5801"),
		personalization:       decodeHexString(c, "7a2472b8c184625d3703da2c08f0cf84e24e468cdcf0adfe"),
		entropyInputReseed:    decodeHexString(c, "e08ecf24bc5f25873e25cf2cabfcbdad9830b3fe0fecca02"),
		additionalInputReseed: decodeHexString(c, "0cb1c19e5707d9baf679d11655d9390b42ca552c07b37390"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a0f4faff523a1b8b340a71e6180a148243a024a25c9d1feb"),
			decodeHexString(c, "9a6ac1ff076378e4e7d0753ae1f21d3a232b22597a0a4b1c"),
		},
		expected: decodeHexString(c, "0ad6f388908582a0c765c4b88412c91ecd4949dda8d024fde5885b5f03519fa7227f319af00a314e81195f6daefeb77f92d6613ecc78838c38e0e358ab10cf8054e53d29310ea096d405a17d3c363a69140be5526aba159ab5dae360a4505d8f91e930dc258c22d28dd34f523b796201"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_7(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "14d03b4755ccdcf280343470a485411bae4773e835d73e18"),
		nonce:                 decodeHexString(c, "227d47a24bf18d7187f49701"),
		personalization:       decodeHexString(c, "2fbf5b76dd3bd0151f709061a71a26d58f6dc143470a1287"),
		entropyInputReseed:    decodeHexString(c, "6a737f8ba7986a6428db44839536a0f1e739c4d77531bb58"),
		additionalInputReseed: decodeHexString(c, "3de711f9f5a15ddde55f1498b30f22b880459fa0afb3e9a9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea754354b2b744e1c7a323d751846c133c8e18cd495a9bd4"),
			decodeHexString(c, "04eab80d5167b6eb92098b8d1d89d0143a34c68a7bc2af00"),
		},
		expected: decodeHexString(c, "f7fb414d4483667d2c40ba089cd07446e427a9b9b91364468c09b8cd4e030d9463096ae0055f97163283659d657ca9f679992bd22f4d04f13bfe1cefb1c65faace2b40930f06cff0d27357b4bfcad99d18908fb0e6f0c5a3e3c9f46572c6afcda37b85141f6d41bddf3ad906ad80d22c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_8(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "6fcd95d2ecd49ff03403e47ca938113a3d6d069deb98e4a2"),
		nonce:                 decodeHexString(c, "8a4438cfa80b60ec3d51f0c4"),
		personalization:       decodeHexString(c, "4e7d882250b26df3b4d672a93dc7dfa45949551b16595959"),
		entropyInputReseed:    decodeHexString(c, "78f200247945512c029d29ec667f94314fdf77dc35c32654"),
		additionalInputReseed: decodeHexString(c, "85bbbb2ceae3f975771af9dfab19db7792eab9605f43cc88"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6fa12aed444dc1adcb54538b2a53c0bb290c43d3589b30f9"),
			decodeHexString(c, "e13d2d9bd56e6ffa1b3c93e81be6e5461f54d41cbfaa4984"),
		},
		expected: decodeHexString(c, "e3e75f5f6db33fd00fb0871bc22d9ad8cec87b1cf7a823b27fb84087f66a05344c6fa09cfdca1fda55f9be79ccc6d0b254a782cf906161172a84a3aca3ff0aae741ecf993f0324865a342063ed411b2843a079c339268029ccb017ec1214068f1c0f9295fe22a09a975df33835a94118"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_9(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c9df08d01771847ef66246b006cb7331f8c5a2d97c810dc7"),
		nonce:                 decodeHexString(c, "7c115ca4385913a17f706d6a"),
		personalization:       decodeHexString(c, "2821e087c1ace271654a5783cac4e0294daf66dc94d0fa69"),
		entropyInputReseed:    decodeHexString(c, "f1bf06d6315dbb4b59e0abdc54fbf6cb740cb71237ab1453"),
		additionalInputReseed: decodeHexString(c, "6b535849c28e715ff355ac2bf9252b5def24b9bac690e2a8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e3c30064d900313433f42b69c3b2219c16e585d0f3ceebd9"),
			decodeHexString(c, "4f50a8d40df106ceadd286b48da8a0d1a9bee2a4b8820e2b"),
		},
		expected: decodeHexString(c, "57d5582447fabbcd9b09d0c6104931b5e1a5abcfeaf361efce44d4173f163b32338c678011100c4ce11d33861286e672233146ac62171a33acdc1e8e21aa85d741ad06f619e5b8556c1e4c44ceb37d341362600e16b9c489f508007d09dbc44a7bfdb293f2fb0a90ade64035c5e6e28e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_10(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "3a5baff8971ab5a0ab903050a8182cb848315141eb385a74"),
		nonce:                 decodeHexString(c, "d168fffb333557b8cb623a75"),
		personalization:       decodeHexString(c, "72b87a17527a047799702e98a129e6386282dbaf6d57d712"),
		entropyInputReseed:    decodeHexString(c, "9557c587755ffeabd9d18acce3c719886f8bbe95612c6dfd"),
		additionalInputReseed: decodeHexString(c, "84211f815a86adeafc31f824b18039125a026ee9e833a017"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5f91a926b4c0ad64ba592fb083dae4ac6f54d85992425c20"),
			decodeHexString(c, "b28cf5b3e50fa8ec99fc4f9faf7e3ebb99f0fc726c3ea460"),
		},
		expected: decodeHexString(c, "95a32949752cb203d17ad739673d6f99de9646d05e4591ad000131f7deafd7e9c40305d798af6bbf6c06cb488e7ef587e386d61b784ba7191d4a0161a7f8378834d8a94eac997d0591e96dfb3106bc5e00e6cfd2e466127c8ac8edfc677190b2eefd7ccc04461d642324ec6091ab9e4e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_11(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "8d342d08bcf0e2d5f08d94c63e0bf8d7b4992fd387c4b88d"),
		nonce:                 decodeHexString(c, "a34874a28a507ae7cd494585"),
		personalization:       decodeHexString(c, "0eb394be8361cf9120236efcb80775f3496eacf4c73635ea"),
		entropyInputReseed:    decodeHexString(c, "9a3cab2dfcc2c10588c07a20246f2472f8240fa2ffa9133c"),
		additionalInputReseed: decodeHexString(c, "990cfae79a0a4361d14e3b2be54ae2f9fb9fa18e2bbe0979"),
		additionalInput: [2][]byte{
			decodeHexString(c, "38ed0065a0f575cfcca03f85ff331e91617229b343b83284"),
			decodeHexString(c, "923cdf94185cb93b4a95ab02d7b2f25661ac3e2c01c198bb"),
		},
		expected: decodeHexString(c, "ca0f7aa3289122449806fc57e1ab511183a2df2184b68a8ed011dd2ee033f6d6e84617daf4d60142c9b0f4015093bb4e1b746b53a8d75e9aa1f079429c2e41d2c93e1f7fb3cbc1442337ee9cdc49cbf7149393c2bf8af5c3061362894b5e9554ddc70b2543c8c049844746b6dfd4c350"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_12(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "86715d79ecededc9fb27f28866e14aa414fc82c0996ce274"),
		nonce:                 decodeHexString(c, "ddb933fa6de294945487416d"),
		personalization:       decodeHexString(c, "1d65203691ef9b7ac3973e95ce97b43485392fa29d3e5904"),
		entropyInputReseed:    decodeHexString(c, "04c8fe159f2d4bb11951e559cab7fa5b6561a8ccdf9c5aa1"),
		additionalInputReseed: decodeHexString(c, "6c114f0c506a233462e0caeb5f825de966c1eb2ef53dbfc0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "41ba74a5c6776220b79a31402d3cb28c33586bedbfe3372a"),
			decodeHexString(c, "043fb7461963ad9a228cb69bee083e0afc8ecb5cce25f155"),
		},
		expected: decodeHexString(c, "d00cb10f794a23c561785aec2afe6b50900caeccfdb3a152816cd6453d825c8d1ea5df9cf5d6e81c13cc6c77dbcb37eb13f0b3708280a282f717a39909023b709e2a83524aad80d2ff70188b49b3a88be963d504692e2d29b182dd060c8b611f5ad39b2fe48258d549e577a5e5a9f600"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_13(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "4e1a42a9cedf35ac6cedbe4be36ada99ea9451173aa6b9d3"),
		nonce:                 decodeHexString(c, "2c3df4cba4e38d4ebecf5ff3"),
		personalization:       decodeHexString(c, "9e1a65b85e773ae79340aaf3eec081b35a25448cc9b32479"),
		entropyInputReseed:    decodeHexString(c, "23e894eb1832ea99c68a4ef5634d81cb74acfc6b67b030c7"),
		additionalInputReseed: decodeHexString(c, "e77dea3136a48150c0c0b0d8ce90dc44850072085e220cad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f66e1df4b9fa9c9d3a548efe2dd165cd1241d52c68fff62c"),
			decodeHexString(c, "1f964bc42cbc33140726bb406cbd1fccbf6d221892243bfa"),
		},
		expected: decodeHexString(c, "c8003ed505fe3453136f4ee26d0f225a18a0d230531cfd2f7d3714ef0f450462a4a7e2ba6ebb5fde76008b2c30709b1940a95bb212e5d2df6c2ba0c9b037c150d5fa2492cdd908c09d527f2d2b10d864600cc52468567d21373c99d0f9d97be6a24e3a00dd0714c36c0b4f1e506ea6f1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed27_SHA224_14(c *C) {
	s.testHMACGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "8c9650fcd3db6fe25357016606c7705c067af92b21d5e2de"),
		nonce:                 decodeHexString(c, "1c0cde942dd6ee9a5a54a377"),
		personalization:       decodeHexString(c, "8f057b7fdb9ee89ab75414d29a9037bb86bf24e966856445"),
		entropyInputReseed:    decodeHexString(c, "e619b44cf740bdf5c7fb2bf2fad0ab768295da93d8ebc5cf"),
		additionalInputReseed: decodeHexString(c, "d643c106ad69afdef9fe0f60a04f7ca70faffbde2c26fb09"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6ba9d5cf7e38cb0810e296c559a1ad157de026fb6ad47639"),
			decodeHexString(c, "256c4408b4b498c7e98f1b0039b544f2763ac3c09b4153c1"),
		},
		expected: decodeHexString(c, "1d2d065e84e332358586a167a23713b0ec37180dc355fb63eb6392f82c2b6767c130ad0ee5cd9dfa5e6c44ec765afa046c0291a3105feadbd06a57112b100191105470f6b85fa437bbbdd1233a0f0fc96e164b90bcd46595befeb9e979aa6e3aa967137c7174815d9a44875e90a23ab4"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_0(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "7cdf6d17c69938c74cbb30aa8c63be85eaef71e0a1241c6c"),
		nonce:                 decodeHexString(c, "76eb2dfb5dc422303476eb4c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ff89bf410485dae33fd3ffdc5ab49c30c149ae66f6a94e78"),
		additionalInputReseed: decodeHexString(c, "f7b27f4105d5d846381d1bc5d3f95ec5c5875f474f18c77a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2030229a1091bf8bb0dd2e580ab895dec41c2dfa85517488"),
			decodeHexString(c, "ade1c3d98cea1848180c118b3bf3702c7b3d68ded252aad8"),
		},
		expected: decodeHexString(c, "9f1f283c3e013ed2f9625d17f38a4de551c87e979a334f70a44865cd48c2d5cb4c4899b820f1a536ad4bb16fe91be1f0933c15490a8370cf9bd2e8c707c1e881172f140825113b0e369793ba63e41e190010c6a37b0d75007130fb41a7a37cfc2ffa55a30dc75380d262e0c531b0190f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_1(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "72e2c85833393f2a76a44488abf082b3c1b9cc6f23c7d904"),
		nonce:                 decodeHexString(c, "0499ee144959150d82d8b5aa"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cd4c70f2b258c1e979e63ca51d93ecf7f6cb28b76f9aa5dd"),
		additionalInputReseed: decodeHexString(c, "e5bc0ad5c9aaea6fe1af3d212fc9e2014ab4b8bfc67750b1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aaa6924249e44801d3011f9bf8f4ec61474c38b1622f52af"),
			decodeHexString(c, "43a98d9e166309c8c7a202800592d70007fefb4614d5326f"),
		},
		expected: decodeHexString(c, "5bd8f654f91a781a159e1e71aa708a31025885cf4bd3342f55d93e7801a43212b47abc731ed4772c71be4f2ab95695706d19fa07803eeace6056d4a1fbfc2c9067fa53d045e40f60a3c972000cf65e515c0101d958b10bc153e246340b14d593c2365c5df562dbca85e4116612337eec"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_2(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "a5b32a6b7a328057987d22cdc21b339a5def999d1709dfc6"),
		nonce:                 decodeHexString(c, "d5d12eed300849ed06dc4aea"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a74b8f7a9edfca8ecd5abf12ac6b9b89def0cde4074ca16e"),
		additionalInputReseed: decodeHexString(c, "78a8f4b3b4771f1c6ed24fce538411dda91beef1ca60306e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "31ef47e6c0f74061c8d5feec9d6ac9e3427d9b302921038f"),
			decodeHexString(c, "7bdeb951fff97c1d10a70be2496814477beafca8ae8e3d2e"),
		},
		expected: decodeHexString(c, "5789c18ee6d7fd476b85e03c6a351dfb6dbdc2605cefe1a7846b9fc89d25521abd0e7ead9628e5f2fc6b44ee23ad0bc62e6bcefa44de08abe3ac138adf333c92c7fa673de79495b83206ee31badc76d27a4dc2413dff4b22129d973d5bfff7182af10666e019c844a7e938047fb76643"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_3(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "9d960d8b6e1b77194e06dee1e40dd53a8ce207120fc6e7d9"),
		nonce:                 decodeHexString(c, "39529b6a4b41fff0d4602580"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2f9b68ac115c5a2cd29ee31e0588eecede9277efa9f16b0b"),
		additionalInputReseed: decodeHexString(c, "b87f4c3a7998f49e9ba24cdf67310eaf4e71c14f7888deae"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c73b1432c0209fa9149a17eb75f1a2b7d15888d984856d20"),
			decodeHexString(c, "edba1ad0f6cbd711c21b9118a157194d4f7241cf3495ac8d"),
		},
		expected: decodeHexString(c, "069bc5321ce5144be02eec53142f11730fd2c4cfc18bb6ff6e19bea1e45221eec63a95fa9b0841afc869ae6d1e70a8c7023b8bcb82b92b97fce50a421e77c908a619e12e0bf5f67ccbf36d77704fd0d87641e8ca782d6c09ef24ff6848a4e3acb6e920ce33a466fb2a78b4b6fe6c41f7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_4(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "51158c42922cd8f9bebe031e0d01415779a153bf3c092e50"),
		nonce:                 decodeHexString(c, "c9b8c1a9eb3df5e412f62429"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4f43b2a656191c1c9e45e436168643b6da4c98bb051d1d11"),
		additionalInputReseed: decodeHexString(c, "05888648a9410b3806b218634dfd67d3de40d58abb1f4eda"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cbb565f55652c777b2077d76f9600ccb202213914d46c84f"),
			decodeHexString(c, "0f5ac65d9e7a50cb160a6e88eaffd32a93156381e3aa33e4"),
		},
		expected: decodeHexString(c, "b9e2965f85487258dae26c11473893a4e32828acf561ed170f128e4e4a139fed3a6cafe59854e31dda2e8b63aa533b3854f866bc1b5ac9478fab1b82bad1fec479fc1b912b6c73aed244737053a9e315b4c6b92dfe6bc0ce0f895f2909d5c41e1847dc63bd06c62dc681903203a62972"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_5(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "d79de2b97087914c7afe4a95fe3660f909681dc1d964e188"),
		nonce:                 decodeHexString(c, "71c31879cf9e1d2762386b39"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7a906fd4b0f9711d0e7011c5f65264db191503bf0def2730"),
		additionalInputReseed: decodeHexString(c, "5df853ca4895934fb8975f9b48c68d522933d4057c10ab75"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b94c12b445aa011ca213796078afc7fffb1c3cf8ececfd35"),
			decodeHexString(c, "b333af30b670618aed4101dcc5e70688a9430cee41f357b3"),
		},
		expected: decodeHexString(c, "721d9a4fc0009ef0dd881a936d0e98f5ca9a3c088d2065c4a9f0cee4fd5b067df9e20107a83652573bdd05b77829e8d6363fbb611e0c48f76b8c301065741397ba805d3d223995c4417504d5dbc0dda2f8037c10b91e64020b2c7b859eae23f22c71abfa406353944e90ec03613dcfc3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_6(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "e4dbac7764c22f6c3405a175665eb38f1df541f4bfd77bfe"),
		nonce:                 decodeHexString(c, "164a3a42e9af5267ef2cc95e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1cffcd4ee5dc15e8ae69dcc3cd0d112e3f5ed332099988e3"),
		additionalInputReseed: decodeHexString(c, "f6c07f7c9d81aae92f734815a4ab080cc27d50576861b448"),
		additionalInput: [2][]byte{
			decodeHexString(c, "39e4eb08bcd471190ec3fddea206d91626d0ffdf571b7310"),
			decodeHexString(c, "edae8c7a87437e73c87f1ec4b29d47aa61e28d1751cce951"),
		},
		expected: decodeHexString(c, "f4e391896dd9c7f139c7730466631c672449d461256d6636f1dd0e6c2e157b5c6ff9398f46483a4486a4a7d6771c43dcdd82d179a63a52c3e3cbdb1a4ee55a06980cbfd6ce00d9e92cad8ff7d73418548cae9d4db98d0cc9cf69b273ba4166fbf63151edab09c26153304bbdd7321ee5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_7(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "8c8bd8f24f4015d314a223df053dfb5914661daeaca78b3a"),
		nonce:                 decodeHexString(c, "674ee6f2c24177007d20d93a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b55c6fa2075805ee3fe0ecf9f230cc4b6da9a73e56ed47b2"),
		additionalInputReseed: decodeHexString(c, "40f5798c909862eadead7b4821d8b335eda2085e711ec65c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bd48fc8122a866f108a6ee0951ea43b7d70165c6f28fb1d2"),
			decodeHexString(c, "681585db472b83ab72df2387c4e6cf530322ad5bd89fc207"),
		},
		expected: decodeHexString(c, "aa398743c113ab79211384cf399066200e619711c9c526e3b733e27a44d798c09e55abad296c83622fed12ff9556e82e265773c0988eebcd12336e74631d41ae1fc0e362b98d877cc5d6be0abab189cd66e4cefbec29694b2b6a3895c002c99cdd85ec606298304029c6dc0702f4ec0c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_8(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "76f90dc58c48e9bdffcc2c2ade84770c2cfc03fcd341f095"),
		nonce:                 decodeHexString(c, "9efd457d9183dd9ffabeea45"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0905a3bc66a3011ce3abc7b1b3bc623570a661870bff3fa2"),
		additionalInputReseed: decodeHexString(c, "15dc06d7ac65035df63fa68dd48966efd50a75fc2dc9a1c0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dae74d94136976faa038ef2404e86ad6d757cb24a3d251e0"),
			decodeHexString(c, "b0b32c292cac5261bef5edd7ca60911763745d9db3d4b090"),
		},
		expected: decodeHexString(c, "f59a0db3a6656885b8d2d8c17946fc54803fd0b386c368467913588b024c385c5407b7b0900d026f22ff0885209fb33a20a1ce7665cbd31f60b31c1c273d84b2f66f4d9be72383b807fe8963c2329d4099dea19f02f6db7a03f4ea8611e8b02ef519345ceb9bcc376634db69089d4013"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_9(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "08dd32e70b1ec007e8408a1217e5f331d0d1993df3d09437"),
		nonce:                 decodeHexString(c, "bd02fc96ee68b7d005292602"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ea68be1dfb1cb826fad46b920d138a7f91f3ed4096bcbc96"),
		additionalInputReseed: decodeHexString(c, "23fbb54bb2e027bc3508055630a52bf9445d788ab984cce5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f07f89c5726c9dd5940eb1d5b30e066a7e1b9f595fe08a80"),
			decodeHexString(c, "3226e55eeca29224a2faf05cf6495a3cfd64891971d05c97"),
		},
		expected: decodeHexString(c, "33b6859d489bd5f3dac549cf5a566ae1906a33c7702969a1f78713dcbde1c664f19dcc7bb7a07b2b61f4e1701588ff3a4449a7f697b7702db3942646a6853f0ad1f4d8ffa6fe2bc025e810ad9dc91db767cd34af0764af7d56cf6a35ac4d3e46165af86e1ccebfb11d5849805f7e96d4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_10(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "dcd5a80e25a9fc8555b5521e1d8b4ff4f87220dd05e4f9f1"),
		nonce:                 decodeHexString(c, "9dae24e5f069dc0341545894"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "22157d604b2ab05f9103e488881db272a27cebef558d46c6"),
		additionalInputReseed: decodeHexString(c, "76c8665ca9d98221b0c3b58a79d2eca34e708f35176e1285"),
		additionalInput: [2][]byte{
			decodeHexString(c, "51180078783be4bece3be1cf3c163fbc7d9b694d09a34832"),
			decodeHexString(c, "5d805d02d1b8e2fb22de6fe8af76d281fe2541f9faba4421"),
		},
		expected: decodeHexString(c, "9fa771b92a328c7c376761026e2b40a178b786a6a3f561726a1be1d3f309fe3cc604c5551572e2c1a0735e768da79fb5ebceebb8bb8e8658d58dc43b5a3ed789e5e27f87de81d2dc1854831033923513fb45c552654136458f9d6f50845511df440df2a05ab2b6febe8126fde11ba69a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_11(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "b1a77c05f27d7b010f8c1606338d72e3518e12e0e970edc7"),
		nonce:                 decodeHexString(c, "246cf89f379a6aec2e0eb24c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8707b023e67beae4f902b8c59139a66464227a41157b4bd4"),
		additionalInputReseed: decodeHexString(c, "28732a676976a22bc8805a70b426f7a567e51c9c2f3f711f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "60540a576c3d956b81505cc380eb451ffff9b559fbd66f0b"),
			decodeHexString(c, "662c18bfc77d81ce23f6a214a4498ea18bf193e4d7314d2a"),
		},
		expected: decodeHexString(c, "bafe68ddb46108f5ed8c99326a4a0a03cee60f042b7acc6e374d5b3c1abd473b6c78001032cd54de04800d67c13d49351c52aec8d860b59c183d043535012bf1677e561ddb658ab086a6e4c3d3f5da297882baf2ec592bcdd3df79d3595b56cf542551d1cfdb9a2adb24e6b0bc206922"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_12(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "990adc9f6e1f6855ae0b7048b89d93839c0b82020d2d5388"),
		nonce:                 decodeHexString(c, "1f211f8a0b968148bf9dfeac"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c448f0321bd71f97eb489e0dfe4b02dfe6c231a62721ab15"),
		additionalInputReseed: decodeHexString(c, "9e173d500ab90bd0c706c07da55ac3351c562a19cb18be0f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fd889f9c3d98cb40a888fa851e8254865018ab2da62c3333"),
			decodeHexString(c, "3fef35e63ef22d940a436d83787f841fbd7e05d5c635507f"),
		},
		expected: decodeHexString(c, "ace73047f88f58d14d742b3b675f4ad23b2a71d5daadffbccfc5faccb44703849237b15c1156f91b34945f501cfeb7ebac22c5346a51bd9f405ccb474e773dc6d545e9f7adb4dad3bfbc2add974e260c6bcea640f97596e0515fcac2b52d0039d8b5c2447aaea1c8707050b02ff442a7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_13(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "ba38859504ed09ba040464429b4ce3d96cc4997729a836ee"),
		nonce:                 decodeHexString(c, "d9e31de6eaf9ceeef9b085be"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f22a8024fedfad187cb4bea3388feed5036d24558ddea04e"),
		additionalInputReseed: decodeHexString(c, "1813bf27d92df5b9268a6de7e396f0f08b3625df140f942a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0a7589dcfbdeddfb70973ebe72eae355d82d69985b398dff"),
			decodeHexString(c, "b434030623639afd9a8dc84b3e541211c8a5306b4f8e00ea"),
		},
		expected: decodeHexString(c, "01cc5e922f3e718d80d8e0b9dc68591af338c5627c3b8d59bde5203e54441f6b5885f5556b9785a8cbb8a44fa20ef932d1dead63c8b0b532f66e476de79cba40b14f2eade7e5c8c9a25a7667ace51ae56428d7d374e6e132a411b82d027bdd397168c8295f74eb8d92d39e156b38042f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed29_SHA224_14(c *C) {
	s.testHMACGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "97ed4c20356572b46e926fc94043db3cb07b64b84c14ae74"),
		nonce:                 decodeHexString(c, "2bbf345effa0737fa1d09b18"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1f59bca7a3617892b60fbf402244d72349b917e38d7e1152"),
		additionalInputReseed: decodeHexString(c, "1b1e598cf675cb5106e7c6a89c5877df4ae1fbc8d920e328"),
		additionalInput: [2][]byte{
			decodeHexString(c, "251ada02e40a61d864101261cf2eb8cafedf668f9baaebf2"),
			decodeHexString(c, "cb322d4f4a013dfcc92ad565444d43bc8fb05853d0e2548f"),
		},
		expected: decodeHexString(c, "f465b80b5144342ac74c162bf27589b8199d47021e32bd3ac4a632d21c288544fa08a98f97c970db9ed7992f0f1d86fcaa1018ce67413c4c76206a74f25904be5ceac5f0f3df8f46097f1881825446f08f9ea690e0a7daf2678825298c5bac4304321051d319ac91f71249a5d367d35d"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_0(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "591075a55c8263c32339455b3e929482bea1ec9707f1ce1d"),
		nonce:                 decodeHexString(c, "884b66a1bdd64641557b828a"),
		personalization:       decodeHexString(c, "6c4d23259b35c9286fd9eafb81e96f9d2a7bc34d6d81b0fb"),
		entropyInputReseed:    decodeHexString(c, "e1c05fced3fdc82993e9a7660f19e6e6c16baab8a4a9b018"),
		additionalInputReseed: decodeHexString(c, "ae1542380bbb82c79d1bfc3fd2433159df5a9f6694661f7e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "32d931125a432fa2825c75da70900bdd9da715aebcae6425"),
			decodeHexString(c, "0ce82d2aab13436459311380c29da537ccd6677067eab6db"),
		},
		expected: decodeHexString(c, "086f3905c0c95dca7c8bef66b30fa642deff68d1f08f6d46f5dc523bd27ca5d984e26d5cdfe7a45df678de4f4b05ef5ebeabacada2ce259fab953cd0bdb9b207046b8ca307d387a6eef287adfb3e16c72f378cbca3406a2d85b8a1434cf87edd98a4ac4fdb5bb123f8535b2940fbf0ce"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_1(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "12327285535b3866cd624a17fb6723edff258d1659917730"),
		nonce:                 decodeHexString(c, "897c8e7f5767dd7b2a94c2f2"),
		personalization:       decodeHexString(c, "50c01853f84541301a6c507b490971c9881d9da53d8c05ff"),
		entropyInputReseed:    decodeHexString(c, "5beffef6dd098c432af5372330c96c034ca0b0c09280c6a2"),
		additionalInputReseed: decodeHexString(c, "49fc68e4fa5e484511275714649bb73577e163f00017806a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0597f3cd8cc9670b79acc045fe26569e9152d59881d7fea1"),
			decodeHexString(c, "b948df867c7c576ac169dbd67e1ade5f5830497f4fc627a5"),
		},
		expected: decodeHexString(c, "51eacda37b5e3cf1b0b508a2a7d7704b33f5c8a59660efc8c7e1e8f16d4cfb40758009946b2aebef5cf9dbcada11b62eebc5f7ee6c64b0c5e600736446a99cedbe1e79d112ff6e8f67a6c9065003c7b1ebcae6fc9a0f752e1ba1cb487dc1291f0f9c1a5d249c548a9ee060d894a27e75"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_2(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "cff0ddfeac647a3033d5352442c06c54ee9143a934e9040f"),
		nonce:                 decodeHexString(c, "0f21bacf64cab70a136a8ee8"),
		personalization:       decodeHexString(c, "9895f45299f9d4240ac29845eb5dd1c816f30877da29a486"),
		entropyInputReseed:    decodeHexString(c, "af9eeb050b8e5b9d3b016f4c1c78d77b0e06e0edc44b2850"),
		additionalInputReseed: decodeHexString(c, "88ebc6ef1d494158cc714650eee8354eb262b531388533e4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d509222eef77d1bec36668f276acd8f9b7935529f5a58e32"),
			decodeHexString(c, "48ed31a65dbaea617c908a018acffe72dc736cc643423d1e"),
		},
		expected: decodeHexString(c, "c64a02422dec3fbcab273a7a470e6baf94fe4a5efdb85b02d9514d584eb209882f8f63d9a4174a80a45476345932b6b23995d7c2e1bd20a3c7fe7db0859fedcc3a6bdcb32bafa8ce50b896bab46831999c63d501040dd2c69f13fae7639a0f567d0713f0393f416525d42d775bec51cd"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_3(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c74c8a63836f58ccd2a495346f2a05ecfd7cbb53b1d49874"),
		nonce:                 decodeHexString(c, "d9f0eef02724ce6b5acc68df"),
		personalization:       decodeHexString(c, "ec20d95e4d4777b64e238d94d541c8bb5e4388e9ca0b2790"),
		entropyInputReseed:    decodeHexString(c, "8139b702ad145f9506a65be26f9048f0e593f82099b10509"),
		additionalInputReseed: decodeHexString(c, "9ce3b824ce7878204eb1b8451f73fdad7a6823e6b1a83e8a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ee6904cc264b610aa2d369d4e17ce38d587bd58437b2d6d1"),
			decodeHexString(c, "059820128b811ee4cd1dcbabfad887dfa88198a198cbab27"),
		},
		expected: decodeHexString(c, "bd520f1f3bea3e172903ff68205ff5f15c5bea9f1d8dcb98bb585c6f742de248600524b7bd4c69091c8ecfe5ff1d855ed91b1368c4676be63a4d6f294c329720b15edfe2773f2126b5a3341cd2584d4879db045e94666833eaf87652928d677956f691d6cb0ddc2be81e5f00e10c1ac1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_4(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "cefccd89ffecdca3ab7cd911e74a5a4be43bba01950bb1c4"),
		nonce:                 decodeHexString(c, "a7ceba30a6b7a31d7de73f91"),
		personalization:       decodeHexString(c, "6a71611dd0e4f1072a5bf8ee3138fd9d78a4770ad2cc50b7"),
		entropyInputReseed:    decodeHexString(c, "b838e298d1880e9a5d814614c1ac06015c49d2c84381d7b7"),
		additionalInputReseed: decodeHexString(c, "07eb5d62b25c7bcea1c5a3942154687b6dcb006b8cc48ca8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "53e609e7a466f1f772f075c4f2c180bf268a80c417cb9992"),
			decodeHexString(c, "689092f77e4bf5294f7c5dc07524e51ad3049cc28eeed11d"),
		},
		expected: decodeHexString(c, "64efbdf8da8d2714a94a88fc426dcee639ac6af1f60448d1468e8d40151a989111339402f66a609360ba3285f1407d6f012ea6280b0104ee116525a0295697bd06040eb1cc9b6c189186232bfe8a272684e5528751fbf3a8ed2c815275f249927df6e69e8760e8b0a16e0b1b57ef7c5e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_5(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "0ca27ff23e0a8b7e0b7e49ada25b4c246dda3541c5b3c3c4"),
		nonce:                 decodeHexString(c, "6673ec0d2602ddf64b919bfb"),
		personalization:       decodeHexString(c, "4102d7162b7bf918d579bba5a4783aaa539369e9ec76e4b3"),
		entropyInputReseed:    decodeHexString(c, "8f1d94f0742aa916e48096e3abde4241cc19703f9e88b8f6"),
		additionalInputReseed: decodeHexString(c, "b58f3649c92e8e0427682c84204e8908d7e13b3a78c13c8c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a405efc7c05e114b5f7e28aceb3ca6ba53afa193b476ebad"),
			decodeHexString(c, "637fcda07ae6bc0e9e7a581f562f6b32a62022e55dc7dd94"),
		},
		expected: decodeHexString(c, "46029ad7d4bf11508da0fd05b527c77749c5876734ac641c37ebacc862a363e869dfd5df51d4c7966db870fa517c4ad2d1bacf235e4521a6bb3ddb17fa35260c1d49ad36be1b9650c60d2ab982724d8e81d425003e6eaef235add2e41c6bd94097c89cfc94632cb631875d06eaf996be"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_6(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "6f95a259502811e8996445ebf3469a80a5cf4795677bd22d"),
		nonce:                 decodeHexString(c, "8710e75ef1f30f94c1eb7136"),
		personalization:       decodeHexString(c, "a283ffe574c691cc070ef36746e159752b52f881fe971d62"),
		entropyInputReseed:    decodeHexString(c, "1ed00b2922d9fb78c59ed4bca389c9ac1b77fb859022c599"),
		additionalInputReseed: decodeHexString(c, "1ff3f53cc086465a1aad0d72e7ce6072b09be914af185be0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b4603849aa7e3cd6441256eff5810f5267c4d5ffbcf053d8"),
			decodeHexString(c, "0f52db3e2dcf024221cda4c127c9c0cebdd0835d4be70746"),
		},
		expected: decodeHexString(c, "9606b45613ce049d00f2f97a32d88a1e6ce2c3dae5c294222575a23fd53b639f418b229265a86b6b9a1372cc0fb0f15afd0046cda6702be4bedf56ec961900ae92d2e51a808c622e0211193e24312e6806a6b9b5f874bd541fc18429a90ee3d98e35608561147645da283ae0ed594f6f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_7(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "34b3bd77d36ced522bf9801be90baa700e46e9befdd22edd"),
		nonce:                 decodeHexString(c, "176a555db3698b51964a3336"),
		personalization:       decodeHexString(c, "0afb9179064b12382bcc868b7a4323c721c7b4565252c1ce"),
		entropyInputReseed:    decodeHexString(c, "73e4a1a40a6af8382e39696bae9816d77e27f0da898ad15c"),
		additionalInputReseed: decodeHexString(c, "f9a314b0df9ade46acfed9205bd30bd648873f4069d2e9e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "32751262029dcd7143c4c95d3aa33dd68b4a5984a932dd46"),
			decodeHexString(c, "71283123d2b10343977eb5e16bf1cdffc2764b29a90f061b"),
		},
		expected: decodeHexString(c, "2217bce37d4b3d915e26cecb8890029a226a021613cdca492c47008d278f170b5057426bf27d2c80f499fd430f80badc9b918aa146e4eea2ec0c7a7e65f4b32c0d4e73420f32b7ff88d03df56a42ee67e9062285071ec9c879f9aeac5e36c2304437d985c2ca71a6fd03b6d11721df9f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_8(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c03c1af016dc0f9f829b7b739cf75ffe8df9d3db8dc71f6a"),
		nonce:                 decodeHexString(c, "a1aee3253753b34bbe2ba51b"),
		personalization:       decodeHexString(c, "f29279a365b957b45dd594003281d4929efeb2d206d7e470"),
		entropyInputReseed:    decodeHexString(c, "ac205cebb167ea9e0c4708cf94b83692bcefd267870fecc1"),
		additionalInputReseed: decodeHexString(c, "cb8bc596257948894aac94fa2df036d08af6d1d96fb655ab"),
		additionalInput: [2][]byte{
			decodeHexString(c, "df20697981e9e3b91aedc2f98135a41d92295e697a6d5c47"),
			decodeHexString(c, "957d29a776b75f3d388ab6c1c74a3070d352ad275463f972"),
		},
		expected: decodeHexString(c, "122719a1f7ae64cde475b1cf1ad2d4991de2e601533e27f73b16bde3b1a3a4810406fc06bbe9b13cac1bab2bf4da2bd81d2062563b2cbdd5aad41d413f9eeb2dafa517c8fb719058a313265dff800b998414ea5ceaa56f09d529556309a9819443e3b3c09dc18258c79b6098bb55de1f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_9(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "abf82377848e2c9203d0111c21b3180bc3fee319d832ce75"),
		nonce:                 decodeHexString(c, "a13031395d38e93f9c6a8f4f"),
		personalization:       decodeHexString(c, "312e7aeab2eafea0da9ca1fd84389c86d70ff8b63ecdf9d9"),
		entropyInputReseed:    decodeHexString(c, "d1bb1edc0332ff3dbac934f6ecbead1fa8c01317bc6666f3"),
		additionalInputReseed: decodeHexString(c, "16aaa283c3deb330ec2926df0a8bb9c9ce24cc328d35d215"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e41c6b5faca23623d0cb538d8fb8790ecd9ddd663d4784a4"),
			decodeHexString(c, "16cc86ed9f6e9f8f354073ff93f5d6a9567d44ee98cfc64d"),
		},
		expected: decodeHexString(c, "02dcbfcdb28feb7a71a4a4d3d1ee061022a10df4cb0c76bc3b70bd516ccb014f8d49d21bb1402396c39dad124e5f37e0594971bd0e7ae043325adb046fe09c64f34e53787916c48884379debdfba1c0405a9824cafa57af7f61f78f6c2cba1f47c10198db2866bdac69638160d85be35"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_10(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "5118e876bb8f10b8823778f0c5bd444a98f5c2ff5f19575a"),
		nonce:                 decodeHexString(c, "eb88d92901228a6abf67b911"),
		personalization:       decodeHexString(c, "ea97cdf076d3da875e21f41efb42947528ece6b15b9cdc69"),
		entropyInputReseed:    decodeHexString(c, "693cca4e85f3a9b26a59c06ecceb821a5b648cd770699be4"),
		additionalInputReseed: decodeHexString(c, "c5f9d3ea1b9f617d7effca8838b85eb92ea613f081c5d738"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d63e995d4f38fdd42fa208639afdf53bdf7f368a6548c2b1"),
			decodeHexString(c, "175c8422d814eaf50b19ceb8d367a5ae09268a05d66421a9"),
		},
		expected: decodeHexString(c, "40e3d418ce4766249714833466c33fd0022983b9bc6628751ce93aa71ac57c4d4535f5ea34659c47ca76a05bceedb9d6c3fd4fbcae16ab85257b57d9443c498c4b073a1394525cac12a05f9e538f3a60ae1037cf8ff9b675653f05b16b2a648cad33b10b42856e594165b6571d0ab505"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_11(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "6709aa7a6f0ad5c85257cdd3f37dfcca4ed5064f236fbff6"),
		nonce:                 decodeHexString(c, "6b748f3f50c80d7187935acc"),
		personalization:       decodeHexString(c, "a018daa9f37235c3905dbfa89f9857df2ff86c504936c0d7"),
		entropyInputReseed:    decodeHexString(c, "a82f7ab03ad5bf21770b99dbf0899f594c55db41c3d2fee4"),
		additionalInputReseed: decodeHexString(c, "80baacc246cd21a55f101cc4fb9da1581bf5df5d7028407f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7a207784c88f410c3800f054f4f075f8b06744ad3ca1369e"),
			decodeHexString(c, "c8cbc0214f65b07dcb781cb2fbd229787fafcecfce90ba5c"),
		},
		expected: decodeHexString(c, "236aacc4561b09e9a467fe605d81c30bda09087789e822994879d53e7e00c6b8fa2991a90bcb24ce4c25cfb44811f23f7495234966ae470de131252b288281c00f43f1a675e3a43b0242956ee0aa2810c0da955930d5bf431c593a738908e847755d3cd8c733d7c8f95f04bdbb57ecac"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_12(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "06899244d318fef02f124163fa84f174f323e9d96c36eca2"),
		nonce:                 decodeHexString(c, "13e52a5b36c8da60c01f9164"),
		personalization:       decodeHexString(c, "b3b69f711c3edc45ce04ff77b0ecaaac0484502feced65e2"),
		entropyInputReseed:    decodeHexString(c, "02d1267fda9e3f0cd19678b197634c5fe93777c15ddd34b9"),
		additionalInputReseed: decodeHexString(c, "eb201adb9503a0d005e763a32d25fbe7d0e0310cbbfc99da"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a7e48cfafbcfd14fc4c1f02fc1605dcc6c0000e0b87502cf"),
			decodeHexString(c, "0cc7a461aa0968e7d58d9ba35fd5be337652ff97b82fc104"),
		},
		expected: decodeHexString(c, "a64211cd4d265eb7e60923abac990aec04b15c5b9049b68ba6178c53fc9bc6c0c2bb7d280eaab989ae9c0c06699a5da46153248d617ee6116fd7ba0cf7f134bf506602dee10ec70472bafe3c4dcd8b5bc7f0243d4a07b6145941a82c422c1c718840ca57f81d90c63daefeafb843e5b9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_13(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c15613dc156cf979125d49b7424ebe65f367d6476df9816e"),
		nonce:                 decodeHexString(c, "acec20a2105d4c708b4a40e7"),
		personalization:       decodeHexString(c, "8eedb35288139bd0a594396401567fc6415cdf0edfe54f74"),
		entropyInputReseed:    decodeHexString(c, "a2a38685624bdf59ff569c97c0e3c026e314c30ed4822a7d"),
		additionalInputReseed: decodeHexString(c, "a04f874efbb3c7278a75137b0f7ae8458aa165ba9d7ce312"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bbc76fd33270ad4171698722585d84aef25512f1c51adec8"),
			decodeHexString(c, "9fa6c736d7cd756e57b0b808a11b5425916d20afad17b2bf"),
		},
		expected: decodeHexString(c, "b37d18e599ab7f68effe43b818a6bf7422a43d62b4990a4f6a2d6b614af43ae02c1f7189d22de2b2ceb7d395afbb6d8f8bc7670d20f11f9a664e44825fb4bb2ea852aae4ba07ffe57f1a4dce0c92b16232bb730a363dde54b2254c6dbd2e744be667a5b67b34e880df5bd44a823248fb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed31_SHA224_14(c *C) {
	s.testHMACGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "e9a045cb195a35ace0623753958c35eadcb41f0d1a2dbef6"),
		nonce:                 decodeHexString(c, "ed5cd6dec8e06145cb61a5c6"),
		personalization:       decodeHexString(c, "9573c8e6395700aaa9c0764c4ab17c35aed2c746a3c94b34"),
		entropyInputReseed:    decodeHexString(c, "d67e5d805458814694aedbba2d564e3645f80880b7efcb79"),
		additionalInputReseed: decodeHexString(c, "03ff031b53700ac8fb264136ba56bda20500f9c819c05ed1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a511e76d509afa50f498ad9bae7847355a2b51c0518ebbab"),
			decodeHexString(c, "17021fcebb868cc43884efc0791f479033d010af63b52290"),
		},
		expected: decodeHexString(c, "224710e1146737e99a8464b33a047be20af4517e341412889d319e870326e40b7a4fa2122d2ca7b002d8fe570bcb647a9c72dec5069609ab900affb1b492cb0a0d6c146e285d5223b255739dfff36bf245415a75ec4e32402acfa5d011bf4b2e07ed53a9034b7be417ccf0140312f698"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_0(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "05ac9fc4c62a02e3f90840da5616218c6de5743d66b8e0fbf833759c5928b53d"),
		nonce:                 decodeHexString(c, "2b89a17904922ed8f017a63044848545"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2791126b8b52ee1fd9392a0a13e0083bed4186dc649b739607ac70ec8dcecf9b"),
		additionalInputReseed: decodeHexString(c, "43bac13bae715092cf7eb280a2e10a962faf7233c41412f69bc74a35a584e54c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3f2fed4b68d506ecefa21f3f5bb907beb0f17dbc30f6ffbba5e5861408c53a1e"),
			decodeHexString(c, "529030df50f410985fde068df82b935ec23d839cb4b269414c0ede6cffea5b68"),
		},
		expected: decodeHexString(c, "02ddff5173da2fcffa10215b030d660d61179e61ecc22609b1151a75f1cbcbb4363c3a89299b4b63aca5e581e73c860491010aa35de3337cc6c09ebec8c91a6287586f3a74d9694b462d2720ea2e11bbd02af33adefb4a16e6b370fa0effd57d607547bdcfbb7831f54de7073ad2a7da987a0016a82fa958779a168674b56524"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_1(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1bea3296f24e9242b96ed00648ac6255007c91f7c1a5088b2482c28c834942bf"),
		nonce:                 decodeHexString(c, "71073136a5cc1eb5b5fa09e1790a0bed"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d714329f3fbea1df9d0b0b0d88dfe3774beb63d011935923d048e521b710dc6f"),
		additionalInputReseed: decodeHexString(c, "4ef872fd211a426ea1085ab39eb220cc698fdfeabe49b8835d620ab7885de7a4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d74d1669e89875852d9ccbf11c20fe3c13a621ebcb3f7edeea39a2b3379fdcf5"),
			decodeHexString(c, "0c8aa67ca310bd8e58c16aba35880f747266dbf624e88ec8f9ee9be5d08fdeb1"),
		},
		expected: decodeHexString(c, "ce95b98f13adcdf7a32aa34709d6e02f658ae498d2ab01ce920f69e7e42c4be1d005acf0ca6b17891dfafc620dd4cd3894f8492a5c846089b9b452483eb0b91f3649ec0b6f98d1aaabc2e42cd39c2b25081b85ab50cb723007a0fd83550f32c210b7c4150b5a6bb3b0c9e3c971a09d43acb48e410a77f824b957092aa8ef98bc"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_2(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "a7ea449b49db48601fc3a3d5d77081fab092b8d420ed1b266f704f94352dd726"),
		nonce:                 decodeHexString(c, "d11a159b60af8d20a0e37d27e6c74aa3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "50916ab47e8cb5dc843f9fba80639103711f86be8e3aa94f8a64a3fe0e6e5b35"),
		additionalInputReseed: decodeHexString(c, "e2bb6768120555e7b9e0d573537a82f8f32f54560e1050b6abb1588fb3441e66"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a50cec9d1ecddb2c163d24019e81c31a2b350ccd3ad8181fd31bb8d1f64fa50e"),
			decodeHexString(c, "591dbbd48b51abced67f9c6269cf0133cd3dcbb5cfafcb6ef758569c555a5773"),
		},
		expected: decodeHexString(c, "0a464abcc8685158372d544635b953fcb1d3821c30aaa93982f9b788935f00f88115aad61d5cee003b3d1cb50f3e961a501e2dd0fc7e1724778b184a4bdf9f64e110dda7446e5544a30bd49a400ea1a5411800e1edfeea349323618afc5dc5782dc4b71d2da4d6a4785f8dd346feb9c8740ffd26bf644e3e4323ff24c30b9f10"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_3(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "14683ec508a29d7812e0f04a3e9d87897000dc07b4fbcfda58eb7cdabc492e58"),
		nonce:                 decodeHexString(c, "b2243e744eb980b3ece25ce76383fd46"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "18590e0ef4ee2bdae462f76d9324b3002559f74c370cfccf96a571d6955703a7"),
		additionalInputReseed: decodeHexString(c, "9ea3ccca1e8d791d22fcda621fc4d51b882df32d94ea8f20ee449313e6909b78"),
		additionalInput: [2][]byte{
			decodeHexString(c, "16366a578b5ea4d0cb547790ef5b4fd45d7cd845bc8a7c45e99419c8737debb4"),
			decodeHexString(c, "a68caa29a53f1ba857e484d095805dc319fe6963e4c4daaf355f722eba746b92"),
		},
		expected: decodeHexString(c, "c4e7532ee816789c2d3da9ff9f4b37139a8515dbf8f9e1d0bf00c12addd79ebbd76236f75f2aa705a09f7955038ebff0d566911c5ea13214e2c2eeb46d23ad86a33b60f7b9448d63eec3e1d59f48b39552857447dc5d7944667a230e3dbfa30ca322f6eacaf7536a286706a627c5083c32de0658b9073857c30fb1d86eb8ad1b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_4(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "fa261fb230e2822458532ca2d5c39758750e6819a6fcebef10579ba995096959"),
		nonce:                 decodeHexString(c, "564e1c9fbcb12878df2bd49202cbf821"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "bf7de29e99e7f0e1b9f96f3b1902fb4049c8c6234d20de8316ebe66d97725457"),
		additionalInputReseed: decodeHexString(c, "8b7326621f6afbd44a726de48d03bcc5331f7306026c229ea9523497fbeaa88d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "33b00b31623d6160c4c6740363a96481be14b19bc47be95641227284c366922a"),
			decodeHexString(c, "2d812c8203575790ad6b6f2ed91a49d57460de779a3e881bef3be12e8766dc91"),
		},
		expected: decodeHexString(c, "5574e0b4efc17e8ce136e592beabfe32551072bddd740929e698467b40b3991f028a22c760f7034853cc53007e3793e3c4a600d9e9d94528f8dc09aeba86146cdde2b7f71255ae0efc529b49be2205979dba6525bfe155e8819e8e2aeeaa285704242da90b4c4535101cc47d94b0e388a1b2e63ad0cbe158b9e1bbae9cc0007c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_5(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "61f1471ced56aa04c57e1b512307d4cb92497d9592d7e9e35356e99d585cab1b"),
		nonce:                 decodeHexString(c, "84714e960c403a4fac06b2828cc564d9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7bf97db3c102edc81596d4757045fe6bdc008f35792fc6290b77d889c09c33a8"),
		additionalInputReseed: decodeHexString(c, "5b8bdc41f76d98cfa71ed976ea3994706375c8841adb8b6b3b6418e3132e8832"),
		additionalInput: [2][]byte{
			decodeHexString(c, "94c8a8fdf38a6ccb8571c89420d899adab169214bb0dfcd43a04622e289935b2"),
			decodeHexString(c, "8a4b46e0a7a55907365f82d4ab9376509bd44728cab8cbafb0da901012ad8dcd"),
		},
		expected: decodeHexString(c, "933eb159a6af7455b60e40586c064f05f1970f564281b1ebc4662701ac1f299e4eb908c4afcb2e065191281ab576f684aefedd6904bad04d96bd93c0516c62a496c3073a0cda0676a11cc08866b0cc74f62cb9d3db48673b2c3fbeada69f922b4b795ccba22df12ef7125909381f7d681f6b9caba02fb913c5437b98c040c576"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_6(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "a1d5bb7d70621dee6b668b28c56d5610c2f8ced30284cc3e0e48de331af05062"),
		nonce:                 decodeHexString(c, "88a49e3e54c5ea54c98b95de81bcc807"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b4e2426e98f6eed97a6cdf690a89ee109e84c3dca16c883c26fa4ac671638d8d"),
		additionalInputReseed: decodeHexString(c, "5bd1e086ed228cfd8b55c1731fea40c3a63d022599ca2da4bb23118f4821ba62"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b754b53ac226e8ebe47a3d31496ec822de06fca2e7ef5bf1dec6c83d05368ec3"),
			decodeHexString(c, "fa7e76b2805d90b3d89fff545010d84f67aa3a2c9eb2ba232e75f4d53267dac3"),
		},
		expected: decodeHexString(c, "df6b2460688fa537df3ddfe5575fca5eb8abad56cbc4e5a618a2b4a7daf6e215c3a497974c502f9d0ec35de3fc2ea5d4f10de9b2aee66dcc7e7ae6357983095959b817f0383e3030771bd2ed97406acf78a1a4a5f30fa0992289c9202e69e3eb1eabe227c11409ff430f6dfca1a923a8b17bc4b87e908007f5e9759c41482b01"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_7(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "68f21d14525d56233c7e263482d344c388a840103a77fb20ac60ce463cabdc79"),
		nonce:                 decodeHexString(c, "59fa80ae570f3e0c60ac7e2578cec3cb"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7584b4166530442f06e241dd904f562167e2fdae3247ab853a4a9d4884a5fa46"),
		additionalInputReseed: decodeHexString(c, "f6a5482f139045c5389c9246d772c782c4ebf79c3a84b5cf779f458a69a52914"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9d37b1ce99f8079993ddf0bd54bab218016685b22655a678ce4300105f3a45b7"),
			decodeHexString(c, "4c97c67026ff43c2ee730e7b2ce8cce4794fd0588deb16185fa6792ddd0d46de"),
		},
		expected: decodeHexString(c, "e5f8874be0a8345aabf2f829a7c06bb40e60869508c2bdef071d73692c0265f6a5bf9ca6cf47d75cbd9df88b9cb236cdfce37d2fd4913f177dbd41887dae116edfbdad4fd6e4c1a51aad9f9d6afe7fcafced45a4913d742a7ec00fd6170d63a68f986d8c2357765e4d38835d3fea301afab43a50bd9edd2dec6a979732b25292"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_8(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "7988146cbf9598d74cf88dc314af6b25c3f7de96ae9892fb0756318cea01987e"),
		nonce:                 decodeHexString(c, "280bc1ae9bfdf8a73c2df07b82a32c9c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2bbc607085232e5e12ccf7c0c19a5dc80e45eb4b3d4a147fe941fa6c13333474"),
		additionalInputReseed: decodeHexString(c, "f3f5c1bb5da59252861753c4980c23f72be1732f899fdea7183b5c024c858a12"),
		additionalInput: [2][]byte{
			decodeHexString(c, "44d0cfc4f56ab38fa465a659151b3461b65b2462d1ad6b3463b5cf96ad9dc577"),
			decodeHexString(c, "34fb9a3cdacc834ff6241474c4f6e73ed6f5d9ea0337ab2b7468f01ad8a26e93"),
		},
		expected: decodeHexString(c, "4caec9e760c4d468e47613fe50de4a366ae20ba76793744a4e14433ea4de79dc188601eb86c803b094641ab2337b99d459d37decc7d27473057be45ba848868ee0fb5f1cf303d2fcd0b3e0c36f65a65f81b3fee8778a1f22302e25dfe34e6d587fa8864e621121880f7cd55f350531c4ce0530099eec2d0059706dcd657708d9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_9(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1c974c953fa2a057c9fc9409a6843f6f839aa544bca4fa11e48afd77931d4656"),
		nonce:                 decodeHexString(c, "ed7c08285464af7a5dbdc10b944a1270"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "78146ad135acb836360d36afc50653dcc36c21662da2a6f6ae05222e75f34000"),
		additionalInputReseed: decodeHexString(c, "263c4984c238ded333c86472866353817379502157172cfa51371d82b1efd7b5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "79b591529f9a26a0d7c8f8fd64e354b0c134ef1f757e43f9463b3dbb7a3da1ab"),
			decodeHexString(c, "7d8f7204b0b5401ddce9e88dcf5facb9a44660a9f5f1c862748e7269c29f7964"),
		},
		expected: decodeHexString(c, "72e2ca257b9edaf59b50e05a144f56fb517832fb9ad3489b1e664e3d5412cbf6b2883e891703b2e73aff9ab56da1009fcdef010ab4cdab996795c8f7c47fb1192bb160353997ad39d7d5fd0e2efc9103a7c3f158246afd53fe53ca6782f809698ef5f1f0d85536780a3fd6a8bafa475891c09213088bd1a3dc169257c34a517a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_10(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "56216d71984a77154569122c777ce57e1d101a6025b28163a25971d39c1c5d0f"),
		nonce:                 decodeHexString(c, "5cd148ba7e54f4975ac8e3e0f9b5d06a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3580f8ca974626c77259c6e37383cb8150b4d0ab0b30e377bed0dc9d1ff1a1bf"),
		additionalInputReseed: decodeHexString(c, "15633e3a62b21594d49d3d26c4c3509f96011d4dbb9d48bbbea1b61c453f6abe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6068eaca85c14165b101bb3e8c387c41d3f298918c7f3da2a28786ab0738a6fc"),
			decodeHexString(c, "e34f92d2b6aeeeea4ff49bfe7e4b1f462eabb853f0e86fbae0e8b3d51409ce49"),
		},
		expected: decodeHexString(c, "587fdb856abc19ede9078797ecb44099e07aadcd83acdcb2b090601d653f4a14c68ab2ebdda63578c5633a825bae4c0c818f89aac58d30fd7b0b5d459a0f3d86fcad78f4bb14dfff08ad81e4ea9f487cb426e91d6e80dfed436ba38fce8d6f21ca2151c92dd5c323b077d6139c66395558f0537026c4a028affa271ef4e7ea23"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_11(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "83eb48bedc1e9294866ab8e5322ef83f6f271f8188e8fdabe5817788bd31570d"),
		nonce:                 decodeHexString(c, "d6ed90bc692237f132441ede857a6629"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a4e5e127f992bd5ca79ee56bb8a9bccf74c21814bfaf97ffd052211e802e12e4"),
		additionalInputReseed: decodeHexString(c, "84136e403d9ed7f4515c188213abcfaca35715fa55de6d734aec63c4606a68f1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fe9d8ef26e2d2e94b99943148392b2b33a581b4b97a8d7a0ecd41660a61dd10b"),
			decodeHexString(c, "594dad642183ce2cdc9494d6bcb358e0e7b767c5a0fa33e456971b8754a9abd5"),
		},
		expected: decodeHexString(c, "86715d43ba95fbbca9b7193ea977a820f4b61ba1b7e3b8d161b6c51b09dfd5040d94c04338b14d97ed25af577186b36ae7251a486c8a2d24a35e84a95c89d669d49e307b4a368b72164135ac54d020a970a180dfbed135d2c86f01270846d5301bd73db2c431a8aa10a0a3d03d146e5fafb9a2aa0b4efc80edab06ff3b532236"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_12(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ba2c94203dab2e6499d8c50dca7b5c34a6b4764834f9816631aa21b9f9c37361"),
		nonce:                 decodeHexString(c, "67db133bdefb25e395085bceee5a0afc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "fa8984d16d35302cda35a3a355ab9242ec96fec0652d39282d4a0abf0a80df87"),
		additionalInputReseed: decodeHexString(c, "b6fed10255a3fea6772ae1ae6d9f6cbb9bfaa34804e58a5b786f9bc60b348ccd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "445e072244edc716d3528f0e0a20ff0cd8f819c0d031736c8da122748f24d6c6"),
			decodeHexString(c, "1f856e403c4fa035bac9aa81a20e347c7d8b213aab699d69d9d6186a06ac45c1"),
		},
		expected: decodeHexString(c, "79f33fc36b3b47d9ac805bdbbe699909a8d0beb689a8b2723c291bd5bf7f3ce61343d4722a14e4add36312dbb0594910c8828aff1abc159915d498106f9ffb31147478d8c9ef75d1536ba5036506b313f6e85033f8f6fea2a4de817c867a59378c53c70a2f108275daedd415c05b61c4fd5d48c54be9adb9dea6c40a2ec99ee0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_13(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "0db4c51492db4fe973b4bb1c52a1e873b58fc6bb37a3a4bfc252b03b994495d1"),
		nonce:                 decodeHexString(c, "a2a3900f169bba3f78a42526c700de62"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "29d5aab356876447e3a20d81c7e3fc6975e2b984180a91493044442999e1ca3a"),
		additionalInputReseed: decodeHexString(c, "40b34183b4e72cdff5952b317b3d45943d0fdcfa0527f3563055f7c73ae8f892"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dc94220c99ffb595c7c4d6de8de5a6bb4b38847169e24a557ef6d879ad84149d"),
			decodeHexString(c, "b2376626fd2f5218b3ed4a5609b43aa24d371cd2176ea017c2b99cf868060021"),
		},
		expected: decodeHexString(c, "f0bd6bc4c506d9427a09352d9c1970b146360732841a6323f4cb602c87dedfb5ff7e6964b9144933af3c5c83017ccd6a94bdca467a504564aaa7b452591a16ff6a1e7e94ddc98f9a58016cdcb8caaed6c80671ba48cc81a832d341093dda1d4e5001ec6bf66348b21e3692a13df92538ad572bb2023822072fc95f9590293ffc"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed33_SHA256_14(c *C) {
	s.testHMACGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "593845f0adfeffa7c169f8a610147ae8a08c0072fc0c14c3977d3de0d00b55af"),
		nonce:                 decodeHexString(c, "9e0eb2507342ee01c02beadee7d077bd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "aefe591697eab678c52e20013aa424b95cfd217b259757fbe17335563f5b5706"),
		additionalInputReseed: decodeHexString(c, "cbb5be0ef9bf0555ee58955c4d971fb9baa6d6070c3f7244a4eb88b48f0793bf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6dd878394abdc0402146ba07005327c55f4d821bfebca08d04e66824e3760ab4"),
			decodeHexString(c, "ba86a691d6cbf452b1e2fd1dfb5d31ef9ea5b8be92c4988dc5f560733b371f69"),
		},
		expected: decodeHexString(c, "00735cbfafac5df82e5cb28fc619b01e2ba9571dc0023d26f09c37fb37d0e809066165a97e532bf86fa7d148078e865fe1a09e27a6889be1533b459cd9cd229494b5cf4d2abf28c38180278d47281f13820276ec85effb8d45284eb9eef5d179ab4880023ab2bd08ee3f766f990286bf32430c042f5521bbfd0c7ee09e2254d7"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_0(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "cdb0d9117cc6dbc9ef9dcb06a97579841d72dc18b2d46a1cb61e314012bdf416"),
		nonce:                 decodeHexString(c, "d0c0d01d156016d0eb6b7e9c7c3c8da8"),
		personalization:       decodeHexString(c, "6f0fb9eab3f9ea7ab0a719bfa879bf0aaed683307fda0c6d73ce018b6e34faaa"),
		entropyInputReseed:    decodeHexString(c, "8ec6f7d5a8e2e88f43986f70b86e050d07c84b931bcf18e601c5a3eee3064c82"),
		additionalInputReseed: decodeHexString(c, "1ab4ca9014fa98a55938316de8ba5a68c629b0741bdd058c4d70c91cda5099b3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "16e2d0721b58d839a122852abd3bf2c942a31c84d82fca74211871880d7162ff"),
			decodeHexString(c, "53686f042a7b087d5d2eca0d2a96de131f275ed7151189f7ca52deaa78b79fb2"),
		},
		expected: decodeHexString(c, "dda04a2ca7b8147af1548f5d086591ca4fd951a345ce52b3cd49d47e84aa31a183e31fbc42a1ff1d95afec7143c8008c97bc2a9c091df0a763848391f68cb4a366ad89857ac725a53b303ddea767be8dc5f605b1b95f6d24c9f06be65a973a089320b3cc42569dcfd4b92b62a993785b0301b3fc452445656fce22664827b88f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_1(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "3e42348bf76c0559cce9a44704308c85d9c205b676af0ac6ba377a5da12d3244"),
		nonce:                 decodeHexString(c, "9af783973c632a490f03dbb4b4852b1e"),
		personalization:       decodeHexString(c, "2e51c7a8ac70adc37fc7e40d59a8e5bf8dfd8f7b027c77e6ec648bd0c41a78de"),
		entropyInputReseed:    decodeHexString(c, "45718ac567fd2660b91c8f5f1f8f186c58c6284b6968eadc9810b7beeca148a1"),
		additionalInputReseed: decodeHexString(c, "63a107246a2070739aa4bed6746439d8c2ce678a54fc887c5aba29c502da7ba9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e4576291b1cde51c5044fdc5375624cebf63333c58c7457ca7490da037a9556e"),
			decodeHexString(c, "b5a3fbd57784b15fd875e0b0c5e59ec5f089829fac51620aa998fff003534d6f"),
		},
		expected: decodeHexString(c, "c624d26087ffb8f39836c067ba37217f1977c47172d5dcb7d40193a1cfe20158b774558cbee8eb6f9c62d629e1bcf70a1439e46c5709ba4c94a006ba94994796e10660d6cb1e150a243f7ba5d35c8572fd96f43c08490131797e86d3ed8467b692f92f668631b1d32862c3dc43bfba686fe72fdd947db2792463e920522eb4bc"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_2(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "b63fdd83c674699ba473faab9c358434771c5fa0348ca0faf7ebd7cf5891826b"),
		nonce:                 decodeHexString(c, "5fd204e2598d9626edab4158a8cfd95f"),
		personalization:       decodeHexString(c, "2a5dfad8494306d9d4648a805c4602216a746ae3493492693a50a86d1ba05c64"),
		entropyInputReseed:    decodeHexString(c, "adea5ba92f8010bb1a6a4b6fae2caa0b384165adf721253afd635d6021f764af"),
		additionalInputReseed: decodeHexString(c, "07c69d8d2b8aa1454c5c48083dd41477fda6bfcf0385638379933a60ed2e0a77"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a14e902247a3d6493d3fbc8519518b71a660e5502cf7ecfc796cfaa5b4ee4baa"),
			decodeHexString(c, "60e690e4a1eba14aec5187112a383e9991347fab7bac7cb2a40a52579a0d2718"),
		},
		expected: decodeHexString(c, "792b47b6ed221623bb187d63e3f039c6983d94efd5771dc9b4c40bee65924513485a6332baeda6a96f9bb431f592d73462b61d9d914a72b56fa9d87597426fb246424ebcd7abd51b2eefec8f5b839c0b3c34015342ace296b5f2218fa194b50aea1c89663460292c92c45f112ddbf6b9406f6e7ccee9c47ed2d90a27be5dd73e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_3(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "dab85f98eaf0cfba013b97de4d9c264ca6fe120366cb83e8b3113c68b34e39d5"),
		nonce:                 decodeHexString(c, "d05108e1028ae67b4ea63bdc6d75eb88"),
		personalization:       decodeHexString(c, "09fed3822f6f5e5b9e575d31dc215de1607b0dfc927412618c2d8f79166dbaba"),
		entropyInputReseed:    decodeHexString(c, "1794885a64470744198b7d0bc24472ffe8daf3c7eb219df6ddf180e484fe0aa5"),
		additionalInputReseed: decodeHexString(c, "8d74d01b582f70b92f53b43468084e1586d9b36465d333d5faaf6911e62fe40e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ef7f6b6eb479ab05b3f9ab6dd72eac8b1e86d887f1bcae363cae386d0275a06f"),
			decodeHexString(c, "7442b2a792a6a29559bb8a515d56916ee18200580aa02e1237dd358619382d8f"),
		},
		expected: decodeHexString(c, "49d2cbfa0897b7d961c293c1e572fb26f28e7b956e746f6eda90454c1370a29e25303ceadc7837514dc638553b487ef9487c977c10625409178ad6506d103c487a66655d08659d92a4d5994d1c8ddb28fe60f2e49577d6e80cae1478068c98268f45e6293c9326c7f726ec89601351c0a26fd3a6549f8a41c6f58692c86594c0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_4(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "0f0aa84ef12e10ae2b279e799c683441862457b9bc25581c2cd3d5b58a5b3246"),
		nonce:                 decodeHexString(c, "f74f4230c2427a52f01f39e825d250ac"),
		personalization:       decodeHexString(c, "d02b2f53da48b923c2921e0f75bd7e6139d7030aead5aeebe46c20b9ca47a38a"),
		entropyInputReseed:    decodeHexString(c, "5222b26e79f7c3b7066d581185b1a1f6376796f3d67f59d025dd2a7b1886d258"),
		additionalInputReseed: decodeHexString(c, "d11512457bf3b92d1b1c0923989911f58f74e136b1436f00bad440dd1d6f1209"),
		additionalInput: [2][]byte{
			decodeHexString(c, "54d9ea7d40b7255ef3d0ab16ea9fdf29b9a281920962b5c72d97b0e371b9d816"),
			decodeHexString(c, "601cef261da8864f1e30196c827143e4c363d3fa865b808e9450b13e251d47fa"),
		},
		expected: decodeHexString(c, "e9847cefea3b88062ea63f92dc9e96767ce9202a6e049c98dc1dcbc6d707687bd0e98ed2cc215780c454936292e44a7c6856d664581220b8c8ca1d413a2b81120380bfd0da5ff2bf737b602727709523745c2ced8daef6f47d1e93ef9bc141a135674cba23045e1f99aa78f8cead12eeffff20de2008878b1f806a2652db565a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_5(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "6a868ce39a3adcd189bd704348ba732936628f083de8208640dbd42731447d4e"),
		nonce:                 decodeHexString(c, "efdde4e22b376e5e7385e79024350699"),
		personalization:       decodeHexString(c, "f7285cd5647ff0e2c71a9b54b57f04392641a4bde4a4024fa11c859fecaad713"),
		entropyInputReseed:    decodeHexString(c, "0174f7f456ac06c1d789facc071701f8b60e9accebced73a634a6ad0e1a697d4"),
		additionalInputReseed: decodeHexString(c, "5463bb2241d10c970b68c3abc356c0fe5ef87439fc6457c5ee94be0a3fb89834"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3ab62cdbc638c1b2b50533d28f31b1758c3b8435fe24bb6d4740005a73e54ce6"),
			decodeHexString(c, "2dbf4c9123e97177969139f5d06466c272f60d067fefadf326ccc47971115469"),
		},
		expected: decodeHexString(c, "8afce49dccc4ff64c65a83d8c0638bd8e3b7c13c52c3c59d110a8198753e96da512c7e03aeed30918706f3ad3b819e6571cfa87369c179fb9c9bbc88110baa490032a9d41f9931434e80c40ae0051400b7498810d769fb42dddbc7aa19bdf79603172efe9c0f5d1a65372b463a31178cbae581fa287f39c4fbf8434051b7419f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_6(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "bb6b339eae26072487084ec9e4b53f2f1d4267d205042e74c77fb9ca0591ba50"),
		nonce:                 decodeHexString(c, "c0e7bf6eb07feccbc494af4098e59d30"),
		personalization:       decodeHexString(c, "34aeec7ed0cae83701b6477709c8654a1114212401dc91cbe7de39d71f0c06e1"),
		entropyInputReseed:    decodeHexString(c, "f47fc60afbeb807236f7974d837335bc0b22288ef09ddfcb684e16b4c36a050b"),
		additionalInputReseed: decodeHexString(c, "e8071ccd84ac4527e5c6e85b0709ed867776f25ae0e04180dcb7105ecd3e3490"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fbac45b5952200ad7c4232500f2417a1c14723bdd1cc078821bc2fe138b86597"),
			decodeHexString(c, "c4292d7dbef3ba7c18bf46bcf26776add22ab8ee206d6c722665dec6576b1bc0"),
		},
		expected: decodeHexString(c, "228aa2a314fcbfe63089ce953ac457093deaa39dd9ce2a4ece56a6028a476a98129be516d6979eff5587c032cdf4739d7ac712970f600fa781a8e542e399661183e34e4b90c59ec5dc5cad86f91083529d41c77b8f36c5a8e28ba1a548223a02eaed8426f6fe9f349ebec11bc743e767482e3472ec2799c1f530ebdc6c03bc4b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_7(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "be658e56f80436039e2a9c0a62952dd7d70842244b5ab10f3b8a87d36104e629"),
		nonce:                 decodeHexString(c, "33c9627455dfde91865aee93e5071147"),
		personalization:       decodeHexString(c, "d3a6eb29b180b791984deb056d72c0608a2c9044237aecf100ccb03700064c5e"),
		entropyInputReseed:    decodeHexString(c, "bef24dc9a5aa23003d3825f9b2b00e7dab571ea6ad86415dbd30c0bbdce7b972"),
		additionalInputReseed: decodeHexString(c, "047c29e4d1584fa70cb66e2aa148a2aa29837c5eee64dcac60fdba356cdf90bb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "41c4792161b1b00d410cb79cd56bd311a714fb78dc3471c25bdd7479f2e9a952"),
			decodeHexString(c, "cd4936d7bc3ea0e7201bcbefbc908215a97680ca6ce8672360aea600b6564308"),
		},
		expected: decodeHexString(c, "2c25557f6db07db057f56ad5b6dc0427d1a0e825c48c19a526f9a65087c6d1ead7c78363a61616c84f1022653af65173a3f9ec3275f2b0a0d0bc750194673c0eaa6c623cd88abb0c8979baee4cd85bfce2e4a20bfebf2c3be61676563767dfe229e0b7be67ad6fcd116dd0b460708b1b0e5c3d60f3dd8138030404d197375d75"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_8(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ae537f31a28ca14500e759716bc207983bfeab60b25079fa30b77b8d41244cb9"),
		nonce:                 decodeHexString(c, "fca9e27d8ab84cf9b9ce491ec5d8cb67"),
		personalization:       decodeHexString(c, "8c9cb2b19aa3abe83c8fe7da96e9c11648252653a29dcd5bf0ac334ac587f032"),
		entropyInputReseed:    decodeHexString(c, "1eb52777be480f05115ae6370f30159a94d50ffcc64454678ab1d1ac6f166fa7"),
		additionalInputReseed: decodeHexString(c, "9cdf6f1a2bc07acd4b0f43b5f2b892a1153e2669f237d257923636094fb40b54"),
		additionalInput: [2][]byte{
			decodeHexString(c, "692d512722de6ba720fd23c8994ac63179b5f7e611addf9cfacd60e06e144a6a"),
			decodeHexString(c, "bbeea7b2bea821f339f494947c0b4bae8056119db69a3cbef21914953729cdef"),
		},
		expected: decodeHexString(c, "c0c4fb7080c0fbe425c1b756fb3a090cb0d08c7027d1bb82ed3b07613e2a757f83a78d42f9d8653954b489f800a5e058ebc4f5a1747526541d8448cb72e2232db20569dc96342c36672c4be625b363b4587f44557e58cedb4597cb57d006fda27e027818ae89e15b4c6382b9e7a4453290ea43163b4f9cae38b1023de6a47f7b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_9(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "2f8994c949e08862db0204008f55d3561f3e0362df13b9d9a70fda39938f2d33"),
		nonce:                 decodeHexString(c, "1bf3e94ea858160b832fe85d301256f5"),
		personalization:       decodeHexString(c, "b46671cf7fa142e7012ed261e1fe86714711c246c7d1c0330fa692141e86d5d1"),
		entropyInputReseed:    decodeHexString(c, "5ecdb1e8fe12260b9bfe12d6e6f161474fa2311e12e39b0beb0fcd92a6737b73"),
		additionalInputReseed: decodeHexString(c, "3ce9a29f0207d079e6dc81fb830356e555f96a23ea71424972ea9308965786d3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "db950000c0776cc0e049929ce021020adc42d29cd9b5d8f7117fbe6bde3e594f"),
			decodeHexString(c, "fc18ee6dd3dac2306774f0ac36cd789e33462d72a8c75df9057123db33e5f7bc"),
		},
		expected: decodeHexString(c, "8546362cc8af9b78dd6e8eb2c37db96e70708852bfd9380abedc7f324575a167bea18f632f3e19d099cfbf310773f9719eec036d2e09f393a023add8ebdc4fb87af43b2fe6c7eaa4d39f8022ce247aa45fdc84d1b92cacce6eae8252a03ec2ec5330c01f56d113fd2ec3d0240af0afcf13ddde205bb5e7c2d912dcb4aee5dcf3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_10(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "0c85e31487de1d7ba4a7b998ac56dc42c6dc0eae7bf5c8aaf1e4e78875f5fb47"),
		nonce:                 decodeHexString(c, "de878f728f73f83dc2a2f550b96c8b97"),
		personalization:       decodeHexString(c, "9aac37bce1a6a81dc7934e23747991e3cf48c55ffe5a57781c41768a35220a01"),
		entropyInputReseed:    decodeHexString(c, "2d5ca8af1a70cfdccd015ee3bf0665dd1941fc6a7317b9d0d06658f5744cfbd9"),
		additionalInputReseed: decodeHexString(c, "db881e6d0dc3b62793d7da5fe5a18e33be9b93f4a63a00a878dfbecf0d383bd2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f743ce1b72f3de4c901369eed581c626ed3081ca707e6634fdaff46721ce0878"),
			decodeHexString(c, "cd52da3ec8a839c537dacdea8506a3eeee879de388ff5e513322d6d1bb3ff694"),
		},
		expected: decodeHexString(c, "a5bdd57cb8fde6298e7c5e563afcca60dd472eca484bd8c3cc17f3307be09b601744dd3ab9e8a44107c5868824575f850c0f399b280cf198006f83ede8c0b537e9be227fa140b65995ad9dfa1f2303d560c3b7f59bedd93c1282ea263924469411c2653f87fd814c74cb91c148430481d64bad0fec3cbb3dd1f39aa55c36f81b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_11(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "93161b2dc08cb0fd50171141c865a841ca935cfdd2b5907d6ff8ab0348c4ceb0"),
		nonce:                 decodeHexString(c, "5cb9f6e5912b90c3349a50ab881b35a1"),
		personalization:       decodeHexString(c, "0dceb4a36326c4df1685df43fddeecb5d0c76f00eb44826694f27e610290f6e1"),
		entropyInputReseed:    decodeHexString(c, "d8e9be44b5f293482548d4787762ebfb03c73c40e45385e8b98907cd66f493dd"),
		additionalInputReseed: decodeHexString(c, "105a8f85d6959f3e043ef508cfea21d52123f03b7aea8034c4eec761eaba1fee"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bf781f7e489d9b4b5aa5ee6d1796468af672a8d25f311edf3c4b4dbf433d703f"),
			decodeHexString(c, "c81d6bcf1e5bf37e39dda1735c6f193df115b1a854a12e7cafe060afe4589335"),
		},
		expected: decodeHexString(c, "4306628124d0100fade7eaaf5edf227d50771f9e5f2e1e983800eef9a39fde0b0c280e63c8728d836b5b93ea794a32c1c04cfc54bd5300e3febb5fe2e1023eded8d7cd180279a598f76823e8d5a7dffcc93a09deec5d1f80838e938fba4de9f47e94b99382ae55f116df9c3b3ddf7e50516e203645852a415796f03a86418107"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_12(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1ae12a5e4e9a4a5bfa79da30a9e6c62ffc639572ef1254194d129a16eb53c716"),
		nonce:                 decodeHexString(c, "5399b3481fdf24d373222267790a0fec"),
		personalization:       decodeHexString(c, "8280cfdcd7a575816e0199e115da0ea77cae9d30b49c891a6c225e9037ba67e2"),
		entropyInputReseed:    decodeHexString(c, "681554ff702658122e91ba017450cfdfc8e3f4911153f7bcc428403e9c7b9d68"),
		additionalInputReseed: decodeHexString(c, "226732b7a457cf0ac0ef09fd4f81296573b49a68de5e7ac3070e148c95e8e323"),
		additionalInput: [2][]byte{
			decodeHexString(c, "45942b5e9a1a128e85e12c34596374ddc85fd7502e5633c7390fc6e6f1e5ef56"),
			decodeHexString(c, "6fc59929b41e77072886aff45f737b449b105ed7eacbd74c7cbfedf533dbeaa1"),
		},
		expected: decodeHexString(c, "b7547332e1509663fcfea2128f7f3a3df484cd8df034b00199157d35d61e35f1a9d481c7d2e81305616d70fc371ee459b0b2267d627e928590edcac3231898b24ef378aa9c3d381619f665379be76c7c1bd535505c563db3725f034786e35bdd90429305fd71d7bf680e8cdd6d4c348d97078f5cf5e89dee2dc410fad4f2a30f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_13(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "29e20d724dfa459960df21c6ec76b1e6cabd23a9e9456d6c591d7e4529da0ef8"),
		nonce:                 decodeHexString(c, "95df1f837eba47a1687aa5c4ddcf8aaf"),
		personalization:       decodeHexString(c, "3713b601e164b1a51dda1ca9242ff477514648e90d311a06e10ce5aa15da5d7f"),
		entropyInputReseed:    decodeHexString(c, "2a2a312626ca3e20034fc4f28033c7d573f66ef61ab2ea0c7bf0411a9d247264"),
		additionalInputReseed: decodeHexString(c, "ec68be33ac8ff3dd127e051604898c0f9a501271859376653a0516336180993d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9935499661d699a00c622a875441b4df5204958fe95892c8ce67f7dfb2be3e4a"),
			decodeHexString(c, "256a4ba9e8f439d5487fa5eb45efcf1bc1120491724db3abe328d951f2739fc9"),
		},
		expected: decodeHexString(c, "73114cb3624d687d4cd49a6e769dfc7a3f8901dc41f6ad1df4ce480536fa82e52ae958d0528640d92b8bb981b755058e32c4733682e5c4c0df41f3505a1643a0dd49cfdeaf7a18adffca88256c6d2cceb838af6c92a64bc21cb7a760a0391291bfe3575e014fc156323f8eb5e86518c669dad8d29ad5fd4ef6e296f4a0764c26"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed35_SHA256_14(c *C) {
	s.testHMACGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1353f3543eb1134980e061fc4382394975dbc74f1f1ea5ecc02780a813ac5ee6"),
		nonce:                 decodeHexString(c, "cf584db2447afbe2c8fa0c15575ee391"),
		personalization:       decodeHexString(c, "345b0cc016f2765a8c33fc24f1dcfa182cbe29d7eacbcdc9bcda988521458fc2"),
		entropyInputReseed:    decodeHexString(c, "ba60219332a67b95d90ec9de6b8453d4c8af991ae9277461ff3af1b92fc985d3"),
		additionalInputReseed: decodeHexString(c, "6964b9b9842aec9c7ec2aad926d701f30eec76fe699265ae2a7765d716958069"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6a03c28a9365c558c33d3fdc7e5ebf0b4d32caac70df71403fd70ced09757528"),
			decodeHexString(c, "a58546c72a0b4d47c9bd6c19e7cf4ab73b2d7ba36c6c6dc08606f608795ebd29"),
		},
		expected: decodeHexString(c, "5b029ef68b6799868b04dc28dbea26bc2fa9fcc8c2b2795aafeed0127b7297fa19a4ef2ba60c42ff8259d5a759f92bd90fdfb27145e82d798bb3ab7fd60bfaefb7aefb116ca2a4fa8b01d96a03c47c8d987fdd33c460e560b138891278313bb619d0c3c6f9d7c5a37e88fce83e94943705c6ff68e00484e74ad4097b0c9e5f10"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_0(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "d5303207d58bffb97e0772dc848e7e32dfe2f517fcc9b82f256dcbbbe225a543"),
		nonce:                 decodeHexString(c, "478f5d6ee7101835a177bd002ac75955"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e2b00122b868747633010cf2e505db7fe89b197f0847508ec385d2180c97b962"),
		additionalInputReseed: decodeHexString(c, "1c2a88e25d1711c7862a849eb9a217c2a4219031a0d2e0c2c2dfb5f160b2528b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "282e5c2989d4df5e1ce476bf05057b7560cab5447b15992951db78f7a92767d9"),
			decodeHexString(c, "3a5b9e896338713c7707aa03360a3027f76e2418bdced7d3e8062196e2721887"),
		},
		expected: decodeHexString(c, "623af8a786c2303f1248eda345d3a80df15a6be6cd34973d68c454ea1399390a41835266c27d0d2efc7bab2207022b2adbd8de654937b49bbf620a716fb0c69911c39b2f96ace53d81fd1bc015364dfdb4b226f216a2a129fd0d1a061d74f4aaf6cc8871e015a480e527aad612f40178ad40d4f790b6f81de9b4669b194b799f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_1(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "0bc99543e9937ce2884d090d83222b72ecc7a3fb0ec62448a92269949f04a1aa"),
		nonce:                 decodeHexString(c, "26e7ece2c5ba510b4cc6c1efd58eb70e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a5e9e5e35dd699279305e4670a39c1161a678db020acf6198010bb11b301945a"),
		additionalInputReseed: decodeHexString(c, "690acfa9a56a4675a1735883585640ab05a859144abf6767aec6f287af1a5d1d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "54c5e8a01e6ff8bea520fb1fc19dbd7508bb2b3e789d3e69dc937d3e08a3ad5a"),
			decodeHexString(c, "f6198ca82f86384f6a61169b6601860c6b7bd6b97dd2415d17b1dd2a29c64529"),
		},
		expected: decodeHexString(c, "c85bbe9bd93516b9b74ed33e73041bd3d652437168277678aef56045b5989213b55ebe6f57bdfc308791c8f70fd2e879e2f73c1e6f49e664253698cbf53f7d03dc81400dc70234ce023d8c1f07127d9e65da76aa0c8108b7bfc9f15f99ab87c5543d9eac0504108fea73351479115aac1a1170a0596e4cd0fc469e9c60829323"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_2(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "fc0618d83422970ded0c65e7bd1cb0475d09097479732f8cd7ac595fc1a56600"),
		nonce:                 decodeHexString(c, "39852b61ca8d81b23a5732dac45fa478"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5d1cde86c410d00382ff159fdc2f68f28600fe1f8df552a78b4d086d129f38b7"),
		additionalInputReseed: decodeHexString(c, "5100d4f2c4ad3a0ce884657ec967286e9376109ceac66ba60b9b2215a88dc23b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "41a5cb531446ff20029a2bf660db85cace792a8eeeffacfc1e9b9791f007c01d"),
			decodeHexString(c, "24511aa84e368fde0f93766a85ef074e987608c6301ba7d7503ed1b37a1709eb"),
		},
		expected: decodeHexString(c, "e5c2379d01c9bdfee346560ae279c89c93ce9dd88ea3de4af940c208504ad2ee41c8e108840ec49d313064cdd472cff9bad09df0b804c771ccc44548a081a330e274704e5aed3be6245dde0148cf68a7045dd0800e1864808e7b2f7ad1f95d028d51ffe9daa17cd147746d013560090c1ca105a96c8941f798fb868d94f4b0b1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_3(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "49b7bf8c97ac8938b4422d9f64cce5b50a913d58e5b5788abbff6a7d67d9090e"),
		nonce:                 decodeHexString(c, "6be832385c029128a1bb384c29350ca0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c24f83e6e9fd621f8bc9b210a850b877ab2f5e5ff1e5126f9d90ff188c68b6be"),
		additionalInputReseed: decodeHexString(c, "951f344dead7b8f2e2a55c74a88576ea6851079ecf73112f1158912dd98e0dac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "37d36bb939ce1b885c156e4a3da3a24def007134a184d6559d8eb40c6d1ad570"),
			decodeHexString(c, "d889bd9ad6d8ca0b93fff592c1711ef84d37fb838abd5b047d4691497fdfc32d"),
		},
		expected: decodeHexString(c, "51d7d6e0c61c19f4e03624cac5daa883e54cbd0d53c8cb5de0e1fc97aaf11b85d19717533dff4e7fd91397b3e898591cb4f3e005cb13476971686da5153f549bf9a1b0d850400474af70c468a0edc4224d27c5799a9475cdde7f8777e13ac4192c3e8e807c72ba5ee579318c57c4786da037c43ca59c83badaa6ca7620b0920b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_4(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "345ba41551e0bcbe817629ea36f0d4df7711f49102802c92a21d23cd02fb89fe"),
		nonce:                 decodeHexString(c, "610eaf2df87c3de8300748e2e18f811b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "05feaca236c88e19269f3a8c57de3f1f6c247fda7aae1a39550c5b004f51a083"),
		additionalInputReseed: decodeHexString(c, "34f3f5ba8732b429b412c21546d0b714e219e223f5f55097b1a59a2ee2fb9b1c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b05c53ceae0f2e20d0dd6c98a8e22b867ba688b4fb7421a3e076a9ec07b444e7"),
			decodeHexString(c, "7981df1d41deeabc000ad25457724210318e0d072847c647cad39ad95dde9caf"),
		},
		expected: decodeHexString(c, "42a0eef581beea298384fadddf489b8f2e4cad163f02efa398dac8182cfce30587cd72d1c78942cc7f8563d306140404e8210bee3fe165bec2b2b152a57a7ad6551ab64c6ce64667250c2b8255922425e944ec7bd5e847be57513a735dae31a8e05752e6e7e82e0c3d7092211411ba7ff28804c468fb070a6ae879a5776ad571"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_5(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "fa01f038b9823e784999ad5aac89faba9b874ffea4f4eac384ff4d4a4a96583d"),
		nonce:                 decodeHexString(c, "be2843ab8a282003d7d96dd6795fe7f6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c24bf33557f2133456038a53915170b84703adedbb1fe2dfe083c1f993c2af76"),
		additionalInputReseed: decodeHexString(c, "ffddcad110f5f8692cba9d5b1f9a6d21094090d2a6882f3426fc0db9d0dd379c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cb3df1a9de2e98933094fbec934bfe12409fb36718845bd5494b61fde7fa2243"),
			decodeHexString(c, "843a4ed58c0e96ccfb1d829121a9becbbc2f647740902580bdf299f023894275"),
		},
		expected: decodeHexString(c, "6cd34c36dce70c626f426dcedb1f43c83efc05a052e975af73896a14103f7b86230090655e0ebf42f439a5640489e8bd32afd94fa5bba960876485ed44a444d1ef2a926b0c7d25f53ecb34fc6eff65ba9550cdd49163b2b23315b62e926fceeef8c0a88b91b65af3deec6fed86ccbca242c9a31c7cf4b3ac8fd1892f8d0ee3b4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_6(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "a1c71db56d1c39fbbf45927a3773fedf91cf70b0017ca29d2da1c2d02941bbf2"),
		nonce:                 decodeHexString(c, "1266a5b195a5ef2b4cf38ab00932d90f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "39043e4ce166aed8e375dc3ffd47e600eaaf7d1fdcf8787b64ecce63eddb4cce"),
		additionalInputReseed: decodeHexString(c, "d4c484ad1baca483a614c00766a8788cb4385a2b2717dac51f1b7c0cb7c3afa6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3f3e8c23dffa8240bfdabfaa6ea1c749a6680385f033c4e139a538ae6ccddc29"),
			decodeHexString(c, "36922ee5d21b6b60e06127572ec8d87a08727776f52b9339e9a5ad891aa37b73"),
		},
		expected: decodeHexString(c, "489efc0858e8f9332db836fe9b03931a3a888394d25118fd8e85eb4d8118019f72690ab9ab95bc947cf7a1e85e78d65c50a7ce5b86d939b74d91f4935a25a99646f4edf3ce28174d1ea903a09566f7486f7866d21298106b613e87d0947375027654118beae179daa166b8801508be4a5ba6433d481ce6557f756bcdc84b585d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_7(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ff72d63b7c745e6150e0743c188286f20cbadc1e548afc6c00ad58049b35ec7a"),
		nonce:                 decodeHexString(c, "3a160bcf38935bd94a211deb71052981"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3707d06815f51320039a35f65da599d8d078af5805b25e915a95f6d7d89bc8a7"),
		additionalInputReseed: decodeHexString(c, "3205143c73b606e3800608c4de92702e5980df8489de8860c09c909b4fc139eb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2368b0104068487ac6e40e06f894a0ff7428c5e54389de4c3c171f467f20dd92"),
			decodeHexString(c, "b4f7ea6d8f5fede689b13f399d93349584c47f2dfbbd56455e8e59b003e52a70"),
		},
		expected: decodeHexString(c, "20744265566dadbcde71ea8d0cceb9bcf236139a389451179cf69650dc5d0c67c273e68548dd79a69320f0f879c00a6b64f66353dd7bd33f9fbe2c955082acd7d2df26481762923fc09a0763f49aa7bca1b1c9d0a50f600f1250ccc37710ec7cc8571d3a6259bbbb91b3090c04b5f1f286ccebec6c6e234651b1ff0721582687"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_8(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "d7a3039194000b37ec0517dd75310d5f2fded48521021ccaebcc27a6f79c6533"),
		nonce:                 decodeHexString(c, "70e73ff457eb030130701782b84bdfdd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a9bf846278f477a761af713302e15ee5b0de38b50420629fb5503d7287a06357"),
		additionalInputReseed: decodeHexString(c, "982368b81571773a997e35b2448c288578a9f1edc5c34389e009d69a1dac7fbb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "83db74de7931335b01eb65e3246097a85c0f28f21fb43e024c660ef1b1e5d7b7"),
			decodeHexString(c, "3fe32f74f19bd347665f8ee3658bba86f6839affe28d428a0d692d4f586abdca"),
		},
		expected: decodeHexString(c, "9dfbd5ba6c2eb3cde6620faac79e8ea5c1271c21ac1490550d3962bf9ca3d8af00b7a551b3b9dc6a0c14af53bb98540b23583fa4ab8ffe86be3609e4469d18c2683a556ab6f109fb52a7498a852edd9803280890118a57473c245f92e389102c61729e788681806bbd6238673f46a40c6a9a1c223778029b4bbecd21c487c5fe"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_9(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "a11b0a4e21c3a8ed353c571b953aebfe94499ead7240d8e875d6b09b40fd6dca"),
		nonce:                 decodeHexString(c, "1f6b0d4fa4329cc79963005262861d5c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4029ec544e6fa169411c7870ac1d40a6ef066228f7b3fa4f4d05103b1ac893ce"),
		additionalInputReseed: decodeHexString(c, "09fe6a459c6a86f1efda26e4b37453907c161bc6e93196a3119cde8d616b7dd6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fc0481e74c45040bd19a0bfa840a4b70c06cb1f7c35f96dd99e049677f0d78ce"),
			decodeHexString(c, "2d7bf8b7d14bbeeff529119c57d553cb12cd52945736dc2a55a1f80434a3b9fb"),
		},
		expected: decodeHexString(c, "7db81870cce89fedc9b30cf22227e991c1010055d1ef6479eb638afc5d2599afd4551812859f523b6cfd02f23a7ad1426a5074779206f2510f38836a7c4a4e1a12bf02d09ca7c3299314541a1283b841b3f52eea99ee6edf4db0d40f045dcbec339ac95282132e9f3968526fcfe339d60cdc0bc2de19e920cafb45503a2edb0c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_10(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "5f76428aaead69b420bd9fbd18fce1388c6cbce2663343ed98140e6fdd64ad76"),
		nonce:                 decodeHexString(c, "4ca63581b2b1355788c20da0567b2ccc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ea2a2426631bc886a84794daa915936e04a398de64c1d090bf116be8a1192937"),
		additionalInputReseed: decodeHexString(c, "7280b16f4f3d2a422606ffc340e5dc84f1afdf5776bc3833221cfa9cb614402b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "834706511de37b258f4f15887da2ca7e31ea5907c46a965cee21852e6b7f4fba"),
			decodeHexString(c, "fefbd23a913cb3597db38ee04c34893d2da183b55b61dbf307ce6557077e81bc"),
		},
		expected: decodeHexString(c, "c0b1fa32cf567a5578e61f9ad16568c1d220f81485605eae2b3a7630fb39494c094207d5f2c7de72ee03f51e83857afe303fd9f7f98c9900f916391f81501aa56ac1aacfeb194043a454719557a2b10a845d761d3babf1c150829dd6fb3267258c1f9230465fd6919fa102a89c25b177645b7d9937eef6fd7985be29a1a75470"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_11(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "2d414b185b35fc4dc1bb7ea0bf9bd5758aa4b3b16f17881ed4cc9e3323902612"),
		nonce:                 decodeHexString(c, "910f12a00dff2449320493bccdcb0918"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c2849e6d44c624ee83e13fb21c4058dccb43d75987327a157d3c294c19135df7"),
		additionalInputReseed: decodeHexString(c, "d90847e965e4109deb7bc394b257cd1377e28db227478b89f87d6fa4580b0903"),
		additionalInput: [2][]byte{
			decodeHexString(c, "24f09de99d7f583869385f00e9175bedb11eca6d1c5f45ca79c79b9169b46e63"),
			decodeHexString(c, "23821eae5b883c5c0b95803496d960aeacebfbb76f80352a8263cba07e76b3f2"),
		},
		expected: decodeHexString(c, "e872f0aebedfef8c0cfa4ac29b0d098840c3da6e86d2ac61ad049cb690290523dd38f95a449804ff22d6b30d7eb3da7e7d06d6c4cd2571c0932065d5585ec7bf7034c8d946685252788c0c050aafbe54e399c1080842e46f74a0a34237a8916e96f61b7bc2a05cbab88af716723c681ddd676a27950332a9f97aeccf88f02150"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_12(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "6e5e0d62d2ab05f78aed5e3945f68c4ac932af55d560ca7638d734ce6a1596bd"),
		nonce:                 decodeHexString(c, "9f6cff7af025b88ac2dc0089b9ede594"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "aeea23a045a380869b5311a2ada8ec9675856a9347ebc5191c62ae9799b65efb"),
		additionalInputReseed: decodeHexString(c, "c7105f97a9cec8357c796a95338f190e6afa640ed8fad8c5cdebec2c4f0a5729"),
		additionalInput: [2][]byte{
			decodeHexString(c, "82e45278b24042f4d2806803624168011cfe523ddc106009f2f77568686b85d9"),
			decodeHexString(c, "f73b56282ff8a8820e14daf7ca4b60ac52604563ce05a2c0c51a2457274d09e5"),
		},
		expected: decodeHexString(c, "95ccb4ee97e14100bfb368e0d618927f5ae1dc61ae3f252f325e7673413ac6d492121676b518558baa98770f4db5b71c8f2aeecb9e57735c4e2256a8e3e1a12f2b94d3aa7eccc3ed1717805619497074f8dc2fb3ff06e1c32c9b5a315e88b8df72b75d1885759298e4e67cc020b00a97c8b82c7e9beb45e1bfcc770334c6381e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_13(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "bdcfa37b6621b32f3ae532ba51949706885c7be56987c5ab8a2f33d7608936bd"),
		nonce:                 decodeHexString(c, "789c74b11d609b5747f8e7069b3c362c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7973cab93c4df62993084ef32d48092794af8b9a1af973cca1f604318d95b075"),
		additionalInputReseed: decodeHexString(c, "7ed09fa93ffe367c5333c0b7460b2e5aacf3bf19b810f4064a17200db1122904"),
		additionalInput: [2][]byte{
			decodeHexString(c, "156348cec867af11901b9ec7b5272b67db450eb1cb352d2490639ad4b911390e"),
			decodeHexString(c, "7b93e7f076a5e56b340a003aa85ba0d940c609934db23e2f591ad95e78f175de"),
		},
		expected: decodeHexString(c, "590e0178f2fa21e919388fe806a727b268613e21c145b6f237da421308e92a2ce52ac780e98cd366a6b547a304db0e0c07d12c22a110c7ad60fe53d718f15363ee03bd1944dd8a538622f6ef0ab619ca3c024b89ffbecce73cd9112d9c9ced3ecde4de78b9d16e15fc898a7a11245ea80c6c1ec86bd121892e71fdd197d05849"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed37_SHA256_14(c *C) {
	s.testHMACGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "af16f98dec60202a61a8378a0809d034d682ef14c365216f095dedc72401129f"),
		nonce:                 decodeHexString(c, "0e2df5b22b176e053f7a5ce04a839675"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a033170bd8134c6810fd93d3d2f245819e2cef2c591e44e0211ff327f20db8ac"),
		additionalInputReseed: decodeHexString(c, "a1df363a5a1a5b94eb2e205400e63f86953b630ad2dc203d51326dcacea96899"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b5c03cc62e06bbc34e77564c72ae68ce8bdabea3507dde33e485bb7653d81628"),
			decodeHexString(c, "92d3a73716837339d825f3f4f87099babadbdd57dcad22393378ce22a6db2298"),
		},
		expected: decodeHexString(c, "6aa96eee978d357d3bb0b3dd98f55a653fa54ccc05de780c687e7a66984318650a3a648cd47ae0805765a977a2ffc65e40f1a04da3f3c486f01809d68406569c95ec469c5369a27f0adc6d2be7c9b67c022a9486fd05d32b66315720e41f7944edb2f9bdead8b1d6edec1f1758c3eb87eb9686a4e79c2f83e589733d110f7f92"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_0(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "40f4a4344082039f5452c3fd21aba9393d253c558728346b6954b00f0c64beb1"),
		nonce:                 decodeHexString(c, "f8e297eedaf4384a12d91e5b3432c69f"),
		personalization:       decodeHexString(c, "11716a84a8b4e5717b61f0827cc9e56e21c0acb9b40372f68902576b50c46ba5"),
		entropyInputReseed:    decodeHexString(c, "07402212d59681934d22d9bde4cb04d69d2fca68e184c526de933669bfa18f78"),
		additionalInputReseed: decodeHexString(c, "604e8c8e5fd3c9368288451929c9de0e7f537493d7adba56dc400961abebe501"),
		additionalInput: [2][]byte{
			decodeHexString(c, "34cecc853e6e379bfd1e13b8eaed00db34602e33760c590e3f75f10ea2e26951"),
			decodeHexString(c, "82b7f37cb3ca1543927659fddb13d09507fe77c941c5d60d451a9103f1b0b5e4"),
		},
		expected: decodeHexString(c, "3ca3ebc8cdd8280c07213c5a5f1e937ba1294c9aa682ca1a3dee63842132b8da641b340861abe7512074f6d1b9745a541ccf19cc1224967a9faa285e21d7572b3e669d9a3647c30d43c27974fbdb461d468149fc1b340d4ee6c640cfe194669d85d4a595bd1b78808e0496d0e2e38a1b9bc1d0e5273fa03cb5f041bfea7f1c9e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_1(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "e5fa73bed99340c91ab17d039efd248fcd1ab8b0a0f655dd3149949685ecadbd"),
		nonce:                 decodeHexString(c, "af4b94f08300a1eb059ad6a687a22fd1"),
		personalization:       decodeHexString(c, "d0095a4fd7f6d6de2a1f0b292c47ece8565bf8c202f0723d0de7f2f7904537bf"),
		entropyInputReseed:    decodeHexString(c, "4dd81fad534aa36e174d06666e95a4d9b3622bf60d8a562c764541ea7c974fe9"),
		additionalInputReseed: decodeHexString(c, "117ca0aa9d57973005fad1f8a02f2d62ac701758556b42a8d5382ee55540a86b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a36ba41e095a40f37985a5cd7315f3773132f491ef8a453d3970ae72f41c5365"),
			decodeHexString(c, "abba1d162556eaab729252cd48dead2d7d50a6385b1d270591d465fa38c5597d"),
		},
		expected: decodeHexString(c, "2bef01bea1fb0ab5fccbb474a1bacb361ffcc326f1d9f1969048c392f2761ed0a37126433311dec9db18596448cb814eda151b264e3ca464b25de401b0e38b43e93c64f675f37ad91e95c24e6997dc4032fa62ba00f3c8a792d6b539a4e8290b10173b6b35f7278f34f40df7c4cf26518350dfa7e24362320c8446963a9a1369"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_2(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ef9b335782a7058617d19971e6030d80885906041fa36814d1813442f74e6e5e"),
		nonce:                 decodeHexString(c, "2c916c3fd3478cd0472c39806849ecf9"),
		personalization:       decodeHexString(c, "c496e65304ff4b7f0c6eefe0d285b2cb94c10b2f1d8f41c48b943be1843f2dba"),
		entropyInputReseed:    decodeHexString(c, "5d0ea0d9e1829247b940ea705d105467dbbad7741bdd2003239be6279a462a58"),
		additionalInputReseed: decodeHexString(c, "2c25027f736fa44a669f739fdbff85d2e53b4b5c3c507595e8028efdd0598bec"),
		additionalInput: [2][]byte{
			decodeHexString(c, "23bef66f03dca520a44c48a78d6b0ae282ce2b5a6e6dae1693722dfcf2bc0edc"),
			decodeHexString(c, "7c6a7942bec6820bdc0504c21810df0ee23c6a39969eba5d34b47259686df340"),
		},
		expected: decodeHexString(c, "5fd4c259c89e9ad59d5a3c6e815de80dc4a07710b4c8686fd7095b31f3f36c18fd15975091eae2be2bb4598c9a8c20902447647ba0cf36e111e3dce3a6009f7402c7e61d46ce662a543bb7ed24ad0695b4ca68959b6451b679e7ea2fc475c4877d4e6650a97cacf0c1f4fb387966ca556560fa70ff2fe0fb8a18ef126bc2deb7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_3(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "bb2ee85378b345fb3a38846afb78a389057961728926d6605f751fda499c5b07"),
		nonce:                 decodeHexString(c, "d84cc383d7ea22949e3519dbd6fe4ee3"),
		personalization:       decodeHexString(c, "4522ca2c98b6dcbb20a9ee94f1138a02db36102433782581bf2a711dbbf6170b"),
		entropyInputReseed:    decodeHexString(c, "9e1b0d2b8f92890bdd22e8aae0d63d3614d0e08b408da97d88354466e3778685"),
		additionalInputReseed: decodeHexString(c, "364b27a285f5d75d0c578341e1fdeba21584edccfaab5740c3f7697a4527b78d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d9aa00e769e8e2ca59dab0f5e92612272d0c6f2124fbe9ab2b5355e6af177336"),
			decodeHexString(c, "3f745b4c6d38c5ebc517c5d0baa2bfa6d3e4fc37f623f0652ab1998873c04a92"),
		},
		expected: decodeHexString(c, "c5ee136d33c31410680b91386809e1befeb1163af1b317d9b6b8461fd0143a0c7c65c928e45c313feff1ad6022679bbc4f492423f54f51c46c00289199eedfcae22521e7e5d9f45e363fd44abc4beb272292898e9cc352f8ea0521f172ac10e9a9e12c39e3c4e74a607f79b2a8671dd2cbb3cbbd4fb7db5b4c946453d629614d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_4(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "41bfd4bff4f2912f23e8a9b0737b2b80b36190f49a296a8f64030f5c41178fab"),
		nonce:                 decodeHexString(c, "54e60a6b9247d348219b230533d70a49"),
		personalization:       decodeHexString(c, "a93d441c79de8fc817d412b9ef1daecff13de00e83d3ade890620334a8c1932f"),
		entropyInputReseed:    decodeHexString(c, "f3fb3663aed33c6e4e0d0869599a30728f88554e8111818790a7e0f41655cbf5"),
		additionalInputReseed: decodeHexString(c, "961b591d3f2fba301d0881b07c378d171680e890d5e25c00b4b06d995793ae48"),
		additionalInput: [2][]byte{
			decodeHexString(c, "abc5c01194208027ec648f324e087aaa374a435c97c7ab4be7fb8ac943446bcb"),
			decodeHexString(c, "85f8c25a14ac637df49a79a33c23e175069f8f045881839ebe2b3b0d79f01fcf"),
		},
		expected: decodeHexString(c, "c5cef51696dd2edf21a0e1eda0d117b9c4af729e47b021550e4920870b8efa40bc3b444c98e8d1e1586102af9235084c0b1c1cbe06efb52b2b06263572d0ce1184e73e8615614e107059d0b3c80362ef0b08d8baa285fc65bb75ed2ab39015be31355e9b5a8720b875640f0a0af7a1aa4db88b6aa13d28af591bd1209fcf4c5b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_5(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "cb56868a9c669969c95690e3c14eb830e111bf83af254e0af6dbed0708e7c0da"),
		nonce:                 decodeHexString(c, "69428fe0f196bfaaa360097ff3af7dbb"),
		personalization:       decodeHexString(c, "be2416bf572a63e5cad3a92cdf419d97934dce472edba298f33c84dcec5f029b"),
		entropyInputReseed:    decodeHexString(c, "fb9f58dc1812db4d32df42631248cd3946b9fbbd0fbec9d92ae70611afdf9bc5"),
		additionalInputReseed: decodeHexString(c, "e49a985d96249775f3486962b8e5a3ef5479ddceef6d9b014fa05b08ad0aba13"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1e5d4d1f24ce39ae9887155a8163487e05f6c2254491b19869dae1fb54322e19"),
			decodeHexString(c, "c47278727a0ec7825f0482162d4fef1bb1b3f796b54dcea21cfccf77e7a54f71"),
		},
		expected: decodeHexString(c, "c71748dab32a3384772b114e2214f8644b6490bf5767a43677d46291540c7fec22af1345c3ea57e40113734f37c22fab50e25f40d2b6d093dc87d769946cb977dad8c4aff7ec363f53036c1cd389f34053bfd49e6e06b1aa7001ba5460ad788ae4772cd5edefc69615ee5934f81793ddbac499048ab4aca7ccf9e6a6914dca95"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_6(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "256cd5650f84d9e4994575870fda06249c82c20a56e26cd9529fdf202b0aea8e"),
		nonce:                 decodeHexString(c, "7d1d9099f0bc4c0462c8d1071de0dc0c"),
		personalization:       decodeHexString(c, "80f2f49d0254da9c3d6b4cdaf7e0fe536f8ff5d14050d0fcfffa5cd7cbcff4e2"),
		entropyInputReseed:    decodeHexString(c, "2868aadf581bf2a65cb5e2a9c792f63cd64d4eca75af23e929db0835d7ba819f"),
		additionalInputReseed: decodeHexString(c, "b29f56bce78ccc73e6c8f2e408fc902855e34502948120e37a18475b174b6250"),
		additionalInput: [2][]byte{
			decodeHexString(c, "594508589ff1c0dfdd041ed8a039067322cfd9f4d5229cb6dfcbd17e8e73c59a"),
			decodeHexString(c, "0563078c9002413a36c16fbb4bef7aa7eb95f60b7fa34da1f5b6d763317d38a5"),
		},
		expected: decodeHexString(c, "9f8e4d1399f88499647935707daca01e4804d32a7f54820b4e1a7d092aba3125f1a5a774637ab4c8ab29b09c58cbc380db47cdcba54fbcb703185369004f3f03bda03d8f4cb5bded1a4dcb6f431541f5e5da5b9bb38e66ca47424479e7d46917a09fdde53acdf6c0f1e602664cf6fb2fd962dfe0a6ac01033f875f7cfc646639"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_7(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "a097d5a81ddd5a6def75eada913c992f89ae6feb0927f534514c310d4f23d06d"),
		nonce:                 decodeHexString(c, "7e24d688d660adb06b3fd2c8dd3135d5"),
		personalization:       decodeHexString(c, "e85e0dafd1ca8d9d05a61266f8df12cda3764e02d2f8aae5b7f9f19f9fa0081c"),
		entropyInputReseed:    decodeHexString(c, "cf2ec7274c55b164dbd727e719d563eadbef879788a49004665ed5ae632c2862"),
		additionalInputReseed: decodeHexString(c, "d1a8bbee94cb96693c4d5901ab03a718375c4a1bdeb2aebd7b8f2bcfdd9833ff"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5f749de3b1ce6ec7cddb74ed93757138d2c881791546616b41a7e08897ccc5e9"),
			decodeHexString(c, "7c9382eb874e35efded70c0da20935ed8bc4acb824c750db73dfcd729878bd11"),
		},
		expected: decodeHexString(c, "73ac660e6a0926f548b776a742a11ba7697daf7dfb78fd48e101f00e1718af1ffd5cec975b97b53a7feac7499575b7b0189a9db49b26a067328d483a58dc2bfedda3b02d55487223b2b7ae30f6ba4bdb898b77fb39b0194039a29d89736e3f3b04c2b97d34167399721cd313b681807831805d7ba6f310ae96bb387ca77bac62"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_8(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "66aa94a320375f17711bc8929e9de9cdaf3f839dc06360b4b047d2f0bede76d5"),
		nonce:                 decodeHexString(c, "7e57e33a7634e86d3e1e36f1e656a45e"),
		personalization:       decodeHexString(c, "102511d2e68e0b60081bdd16f17108fdec1084106d163206a9ae5cc0fa81e307"),
		entropyInputReseed:    decodeHexString(c, "6054e81d35aa5db21ed93c129bb976478a7bc76dcfe3d586259ff3b82eaa9f1d"),
		additionalInputReseed: decodeHexString(c, "74ec569a9a017d052487aac4c6e730dce3ab8e522dfab0e8020d186b5b9ed0a7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5976e9b13ce44ad09d18dd52b4be0878102515a6adc3159731a4cb1b431294ef"),
			decodeHexString(c, "c2c958f78a1f929636332b693a15bcd5db022863038b35f028de5c94521592f6"),
		},
		expected: decodeHexString(c, "59fc3095f633cd04a728591dee591d26729e558467c55394720db78f090da085ed71fd8c25ae80f53cb9b2dc911da65caeef20ebe697b7894f79e61772ca3ce08af3493392a31b324a74abcdc4e5a66f87b9899087d447e23a8be289d151ca840ea89ff8ee664ab29936206507ca897aead5b3abfc53279094dcd8e3f3e0ecab"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_9(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "67295990d7d476a1b4441c45b3efcd45a9748203d617f74cc1065b1cef11d47d"),
		nonce:                 decodeHexString(c, "d3f9e3b2eaa0a14f667e3753ca3d783e"),
		personalization:       decodeHexString(c, "93dc5f6828b8c819014c9fcacbfb969fc21db71babf380a2a7e0a985143c4016"),
		entropyInputReseed:    decodeHexString(c, "b6fc4cffa366d02120895dd2312e13b15812aecf76c28b7eabe57f30abea469d"),
		additionalInputReseed: decodeHexString(c, "b00505549ddb2a5fa8e67b9d1bcb486527e200ac0d13675f7aed98b4ce813560"),
		additionalInput: [2][]byte{
			decodeHexString(c, "321a960ae91f379cee321dbc8197ce097dba582efd709399c249b3dbb95ce0ef"),
			decodeHexString(c, "9618692eee46ea6ab70a933376be934485d8cd9eb80f10c354000dfedcb4e8d5"),
		},
		expected: decodeHexString(c, "9eba39deb3da6dd54ea7f5cbe9d9f21227de049bf8257d3a4ed17bcd451a572e02a3ebb250595b378bc2f77a5760323d20bf553aa4da9f1edb6a811f6f66a4073f9e4753094d07133d76d34cce085b2895e24653a9465196e6864fdfc9d15e5e345668a495b61625a80757fca10085c2d789c132cef78fca7cad170f06bb85e2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_10(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "be8dfdfadda8546b5342dc5c33d6e8f0fb5d2d2a7fee17872030ff3deb962afb"),
		nonce:                 decodeHexString(c, "17b12c5f42294c6ee75350a4b7f775c0"),
		personalization:       decodeHexString(c, "e9791d8d21992d3b6c3c88d8d0a2a355e06f3ad9e6cd7416203f7c68cda55d99"),
		entropyInputReseed:    decodeHexString(c, "bc73f255d3d119e5ee9bf31e741aeb417c47f99d0b088ecc7277ee3d48711581"),
		additionalInputReseed: decodeHexString(c, "fe37c5623728c7f066f7958d1d20cf1e6cac42c8b6a9630d49b520fff0af0c3c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1f645da8a4bb447247d7f764322d8e62a93e59aded6bb1a13e54efa6d9d6a998"),
			decodeHexString(c, "d37eb82afcbd704f4ec2f2bb809471f1e51e5e147f0af7a8358a4da02af0cae5"),
		},
		expected: decodeHexString(c, "c5bd7ca1ce2a183dcf71df3a34f58945fb02f9630b6e00d9880a682876062a8da373130325b565a1ec8b21f9797f930d8acebad2453f8c5a018ee2a452c5780226e3bb43e9e0832dcaf610fd97be81f67d279f53916ace0ec0e6d787c768a876c021bd0c3915cec91ef7df964b92923aa77dc17e29c365d1b44b93e69cc92c26"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_11(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ee38660067db5ca16ed906fa3d625f8b9ab77228aa57f3b8575bc3289e484229"),
		nonce:                 decodeHexString(c, "9089ea4a61354f73e64d395552828935"),
		personalization:       decodeHexString(c, "ade3628204ab6e5d973831a4f89b9ff6b38bee0c31f17f31e44b5fcc08e5174d"),
		entropyInputReseed:    decodeHexString(c, "2735e4f59f7f903143faeb9ae393e83226347029407fe6007f1a44c86a6073b2"),
		additionalInputReseed: decodeHexString(c, "5f8ba8f290137e2ae86cf200e56fb5b8d07511fa1e92c73c577fe5e91e7fdf90"),
		additionalInput: [2][]byte{
			decodeHexString(c, "63e6d311b7404b543a191896e9099f6fa3971bc926880e12bee8398a173248f3"),
			decodeHexString(c, "4ee036ab2bac8f3a40a757b71922205a83cab7e968a4318c9fbedc360355c295"),
		},
		expected: decodeHexString(c, "3ec4ce391de36f825f3b279535644834a587c5b58de8161a1125ee30ee5d96958d97351538cbde671fca86fd63cae74a40ef74e1baf50f9ccef6ec46ad2d6ec75f125df502b8e9770d47f71a1be798eeedd03ad7300833086071b7eb99bdc89762b7e969533f282f7bed366c60de6d28d6adee488d2d7a59edd09842be02e3b8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_12(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "5a8932a2fc9a58c47edb186362bdb07a74bc71ace4d9ec45be8abf90b7779c09"),
		nonce:                 decodeHexString(c, "f71b46d44418efb4699c7b8e05fec6b1"),
		personalization:       decodeHexString(c, "d0229e8585a997392e08101d7c1fc457318f5f94c92dea79754b4952141d7ceb"),
		entropyInputReseed:    decodeHexString(c, "fab985de5dde01349ca63f7794fcb0e014b562fe684f4177f31a23799c43ffc5"),
		additionalInputReseed: decodeHexString(c, "34e5b102364fffe243f15b6f069d347158cf4138588ae096ea170a181a964316"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0b7279ffe43a1e22345231c0215bd52b4baddec10970f3d60a70076b905a1795"),
			decodeHexString(c, "7bf19d555263d89ace28ccea70f239e39e7934e1aa18a2beca0bfba20ac92995"),
		},
		expected: decodeHexString(c, "e762e8ade8134ff5c379ec2df2f1484f65fe7d82c23d8357a82b9104234eb5b95e9cf6cbb467fdaa0e8dccb414758c37b2085e745cb4f0df3a6334d0fed7f4e22ce7f5e7567309ae4c7bcb5d8f2d1835d05461aedc9799a97348ef9a85ce38c817fc46504e525919ab1c95c6b8ef8961cdd9bc03681e052051913817b9fd8aca"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_13(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ccea2676feb1ea2fbab8e1d46e2552b864c71a9d7b760908f1afd179ca11bd8a"),
		nonce:                 decodeHexString(c, "753fe5b483f3d6f8e9495a891d97dc36"),
		personalization:       decodeHexString(c, "578550cc0aa7a6878f7e8e660a12160544c8b7f78e49a6b3750febe6eca7bc6d"),
		entropyInputReseed:    decodeHexString(c, "cd28275feeaa9042c61bd1323ecc48f63b309fa1d49485632d417a7646de5efb"),
		additionalInputReseed: decodeHexString(c, "057edb5e0700775f966c437a8e558dd2ab772b229ecc56b5df54357980861b93"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c34c24b9a0ff018b6968a132df9dfae7d3f704584351b9e9c9c87bf6286716a8"),
			decodeHexString(c, "9878ca1bc0c039c71bfbf7d7f13bc293df59773ba356a0d5cd205193e0104c68"),
		},
		expected: decodeHexString(c, "0da8aba26eeb678f326079cd1b2007cc3c8b964bd56346ef2e12c1eafb62b56e4ccfd681adb8941661ad3817b8244c66423c1b77788b89d3de7ff9465f653a77c9ba31c8928e6ba70ca759f3f36ff9712fefd749dee371742e855c23078ba66b0ae0e6f830228629f8aa0f884de0ce1f9dc4c4597d9e45ffe6c5456a3e6bbfc5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed39_SHA256_14(c *C) {
	s.testHMACGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "3e15d5bf5e112bea8b23913734a8a9d9feda020b1f4f45fd8eeeebb7cc8092aa"),
		nonce:                 decodeHexString(c, "197e6059ec1c755736fccb1274ba6525"),
		personalization:       decodeHexString(c, "20b734f7a4b115f85148cd14c7994403d9843efa570e753fba1a37bcc00fa70f"),
		entropyInputReseed:    decodeHexString(c, "9040c67cff6993765fc6871f642eb6d32f53e5a085acc30a5e0b4701896d1510"),
		additionalInputReseed: decodeHexString(c, "03a1ed65ab95be6785a5716b83dd362eae3db5e91cf87504f5da80aecfea9157"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a80d7b64d7ba904d46f0576bcde17623a4973aa57f0f8a09455434486437b703"),
			decodeHexString(c, "4fde340143560f97272884f1e727a31e001e700d1e5d59b8765190ee586812fa"),
		},
		expected: decodeHexString(c, "ff4b42f37710305eebe169f4d745878475612ea9614ff47358aeb5d945e5463d63386043f5d2d2a9e2429147cae5e3ee3e1bca732bc4d17d2c8263320d36f10ee713fc1cc68a4c081dded59e81aa48099e9e25134e900887702c5f10ba348f1b526250a618c6a7601ff7381767f846ce6465d005c3718d09c9f03a481d1b7285"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_0(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "010935ec2370e1f0fedf365cd4e37666727cc33eb799f38b1cfd226b7037d9b1"),
		nonce:                 decodeHexString(c, "e09e498a94860ac567ae911bb218f36e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d21a3b9a439bb26fa4b4009807c5cafed3ccff19b2b0608a29f0ef6289f27abb"),
		additionalInputReseed: decodeHexString(c, "204fa3482fe99b6670ec70b7f2558a5ce9caa98113bad174b85a719410010867"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4f61b22033e1cc256f5c677e91882914abca6a5a3f716af0ab2c652ff8bce5f8"),
			decodeHexString(c, "ce1eb61f9af9727844666e283f2ae69eb7c91d098535fbf2ac7b0584ba81560c"),
		},
		expected: decodeHexString(c, "503e08620268aff772e06603679a7509b4bd590787375a4319fd1f7c7ca7261aa1ef336d862096b4cb98ba97c5e96905e410e719fe2a2de1be621c5a537d1596c7e20db9b242523fc926e22e2826bddabdca1c0b8e2fdb32c87044eb6e7760c6634bd9b96d385f98fb0f8a273dc21bb7dbecc29ff69bd691688db2a4b013576c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_1(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "d7f053faeecad7c9c5854e7787f06ded1a95e99d292efa924aee5d5932358d2a"),
		nonce:                 decodeHexString(c, "acb8862049884ffb4a6cf4cbed236491"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8a0e005acf307a471e05649688030e3d5938d99eb877caae90307fcd4eb61eab"),
		additionalInputReseed: decodeHexString(c, "59ac7dacbbb7223c6f1a4d6437f0e369cb663f9d87cdf227479d92bc01985bfc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e37c6cd335bc9547d26fb63e0f5b49fefa8fd7b9fb711cb2ab539764124ba36c"),
			decodeHexString(c, "d515894ef2b83939b1e40fe2fc6b6bc29ec21518859d9d74cc2f9a2a04f56b6c"),
		},
		expected: decodeHexString(c, "28118a90cf512ef8066d76fc81a649c109ad6af6c06944ce94795c82006beb72d14f20df2169eb9847b34184dc5ee16da0761d60ade43b2f449c1e51d7517ad375dbdd47f6f254318be35f855c887861bfc6784c4dd2bce51d49e8fe62c51627901d756eddafcd11e06cf89668eeb3d9a68bded01b84554c716d68164a487fa0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_2(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "e35e710d0f06a7ccb625f33144cce716a98af3e56a1d8581d019d4b74d5ca4df"),
		nonce:                 decodeHexString(c, "b74b937cf0133c576ef950ad0b312afc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b888ff00925f94d36cb3edd21bad02da0a2110cb98dadc3f56179ae8eced85d7"),
		additionalInputReseed: decodeHexString(c, "564ce208b8bebf9beec74c716c916e28757e1bc145507dd6035542d188421304"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d8d533c98de81c8821f6cd7a831f10772363957f85f567ac81386d183d7a6d6e"),
			decodeHexString(c, "52aad64adfa2b8d8be5974d3d55bab254ad94eeac693611c90a47a7efb117a7c"),
		},
		expected: decodeHexString(c, "1fb18d8f64680ea667b86230b3512c0843ec18980518174643b36b8fd65f7b903bb879de70509cbd18cbb7ce839bccb4c3e2b079799abc9950c887c5fe9a0f733be8118095f7a47620b03ecce6f05c7bc90d65ffb270fbf2a6454c592a333e7a4e4c2e937ef6e43e5db457b9bda7dce03ae9c69a37742f05e46083d75605a74b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_3(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "0c2c24287f264c1d5329d18989e7f9ce06b8a9446d26cd90ed718792b13dad94"),
		nonce:                 decodeHexString(c, "fd01d038386b37709f8da03579f82bcc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "05b523ccf880bfb0da83a05e4eb2ea28cc75a1e4f9e09c8a3959b18622453bdc"),
		additionalInputReseed: decodeHexString(c, "85e06a8ca3a741821c3a2a8818131675136efd5841cb96e7ddec7943cc169fa3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6b842e1cfdcc6203fa3750cfb3c722f7a85014c06e78da8ea61f0f9e7c20cb4a"),
			decodeHexString(c, "7ba4a1494a0b498388f94d1726b8baf63e44a03c2bfbbff35ad039b39881720a"),
		},
		expected: decodeHexString(c, "b1001e78fdb26dc92e2389ec0eb5eb3059f44ab4f2ead6c74a7615ab8687381898f5b0d838247f41786bb83c077713ff84540ed54061f4d00264699df476873c0dd0c363b998054edc64084efeed7dcf28d7719979978448d7dce8f8aa3868e56b89eebf275f000a39c4cfb5af16a64302a90986cc3042d8826f2e3f7fdb859d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_4(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "8e971002e21a60f8064ad8cedd9a47330fee3c4e5b6e88b2ad11bffd9ed6bf13"),
		nonce:                 decodeHexString(c, "c36a9a6729be646b2c875acddb0883fc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8b0838eefe55994fb15ea657fd6bb04745effe758dad3b3e7bcf56efccf33c1f"),
		additionalInputReseed: decodeHexString(c, "3077373f60f3bd86d4fffc1358f7b0e502ff6d64a2c6a23496a764f6c8bda6c5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e9b308977e18472dcfe99df090c6aaab5afa79d7eb76ebf6943cabeb2ddd4f4d"),
			decodeHexString(c, "94db60e8b1350e73982d7daad94e05d4d2fc2c718e2e52e9c0a71a998395bfdb"),
		},
		expected: decodeHexString(c, "f7e7e1d16b73efc12753eafaa77b076357e42550c7b8460fce581e7f687b5c6bf663385d7fa33f0cde7ed82748b995e998ba19eb8c239a4674df4fba890f3302734574e9ea3da5b2e8bd63ba24932a0bd74cffb62c318cdb69652433841da148711fcb6310bb6c897c3958757fabe71bd5324546ae34b3e59081ca4ef4e8feaf"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_5(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "6ff926e9716a555403e721dd3983d8d59b64b6b88eb1ce50ecb35024815822a6"),
		nonce:                 decodeHexString(c, "0f98e56acc675995d7838200306d0921"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ac6d79fc6ff9cafef4374ff51298211d739bffd583bf81640de1c85650282980"),
		additionalInputReseed: decodeHexString(c, "1b7b4746b741a911ba634049ddd1b0a890040825a06be1368cd9a98382323c9c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "46db3ce4761ddf2863cd8412fda2f56d6deb5106e071efb1749facc615ad6915"),
			decodeHexString(c, "7483179dd098f2250ed49f42d6d01637bf4a83cb2d0b34af56274db932c6e004"),
		},
		expected: decodeHexString(c, "ea8e4e1572889edd2ab238bb1f16a5146b01b611dd7335dd24e02355aecab4430d09607e95d2ceca2a99beb75b288472f64a019cbfdb5bcee9d1bcd06cf61f5b129473a4bf9008a28280510a6abb67fb7670a123356da428afc5fd3212dafab0c7870b692d52ab23597601feaf3fd0a945f1a36ba1db044c50db9d84828849cd"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_6(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "a6c473290c29ad6e3f7df4b133e077f89fe9a8d9c4718ec419d0644e6dfe9b6b"),
		nonce:                 decodeHexString(c, "d794c462b4ca035edc4b238af9d52602"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "db6e5e099cd68fdf9d128dcf1fa192187f1679673b350dc09e482062bc519608"),
		additionalInputReseed: decodeHexString(c, "71224ade83e348b69086241e94e1704476b392c6b6a8dcd9301b300c53789f9d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4928840d03aea789ade8e9d4c34cc8ab0073aa33870f06373740633a3fdff7cc"),
			decodeHexString(c, "df1505ce46af209cf7f5d37bb652ece2f1120e6b626f5d6d55ae9b722516f0e1"),
		},
		expected: decodeHexString(c, "27c97cfa650950ca7c64bd5b8dc94fb1fd81aa5a94fff370f9813ad6c42c5ed9a0d7ec5fd8e2a563efce5bca9360d62d3941ab64210601153f3df74ef61bc78108d0fb4020b7df4e9f51eb79acc34686f6ae0091b1e29cbc8ec661c622194adea37c07af8b84cf931d557fa58c8abe12ea2a609e3bd868a6e90dc7b33bd2fe1f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_7(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "802483fc9cfea633f499b91876d4fc51f8ff34c41268463ea104b9bd0e2ece6e"),
		nonce:                 decodeHexString(c, "667ba2818184aeb0d295cd69c4ea2a98"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d81b4f7d2fce470769ce6c3e5d6714bf8cf75c76429b523c3dbfdb58b2999f1e"),
		additionalInputReseed: decodeHexString(c, "05614b8348b544e98187b65241d0b5418626a8cd7fb4351a6929f67dd116624e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "adaf4e3479b2f01e3e5e680292469d94185a87022d1f5ccbe28ada42b73d7ab7"),
			decodeHexString(c, "12f4ebf97589829540288db4f7d31c64e84282bf65b39fde403127df7974a0d9"),
		},
		expected: decodeHexString(c, "00fa6f4f4de6f60effe2b2efd29dc59366f009e1d4251680f625c37eb67c1cec978674ea1550c977c59f2b5eac2928fe94ef06b956798e2eb653263cb0049926c77ee65d7547eb6211042682e2d9637d5399b3ab86778a5753490434a79d5e34951b843bd1503e80ad050554f94386b7b4467878a993a376b60e9ed0e20983b0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_8(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "e4e381834fdabbfbca3b92f5a0f242f4bf3def930204b0852add9736eb02c871"),
		nonce:                 decodeHexString(c, "befd7a91e42946aeb97d3b09ecfc3fb2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3b48305ddbb20419a7e6e705c77af7606a59913d14480284e9cd6a9fa98534de"),
		additionalInputReseed: decodeHexString(c, "aba17f3f6005a1f5d519e63f78c8fc16b326fbe090dd0513c5e63e572b37c57b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a536b1d3b0524739c926bc318e05a63093cae60f16fcf93b2b685c536cbc1cf8"),
			decodeHexString(c, "c178326e376ddd673e5a3c65009780c5d38d9ecb1cfb5b7c13a1eed5649033dc"),
		},
		expected: decodeHexString(c, "f56773fc33dee51d9718f761cbaba258664684d81b73bc3607c645d8e0303b1819b3aea30810f76f5d3caf0137801feb89b1edb3d76f4ac8d064e1bcb3b698e5482fbd4fb78f53ca3a73fdf4f7e35fe59219b98e12f9021e76bd67c62dc292def2a2513dc2c643616a9cbd9b4aa332225dcb855ea144e30d4eb6ee4d50a45d63"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_9(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "cf6c7092a50c1fb07dfb3591187dab6e8734d262db5ef0e4e57a1075dd070707"),
		nonce:                 decodeHexString(c, "8028219a750270c0f7956be59e299fda"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cfa9e7c598606023031738a4917d6478b7ad972fe95fc0145d094930633bee23"),
		additionalInputReseed: decodeHexString(c, "1f9ab7b7491c497910615756969b85ef6b887cfc9cf62fc9b021f1eb4deb18b8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "93fe65879431821082aeaa6280ef17bb6426a347cb5fc3c9f35d40607b2f0d54"),
			decodeHexString(c, "8a53c39ac336ac15efa3e4829f2190458c9d64b85764494a861957dc8b9c6e86"),
		},
		expected: decodeHexString(c, "8eec0b588fcafffbfbd8bb5ac05742dade824c24adbe5645b72b1f15391a0e4aa56bf42caf238653b2b2eca05067da0fa3f7042d03d856630fccfc401d83a245f5607bff36d75cc7ff9588f334b6ddd795fb0522624de2c9e9532a7b050841e227ebd43b8c8c4652e7807f1d55968bb82d8fb06fdbbc6d75d8ce0948b1364ebe"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_10(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "aa3b3a225d390e97d96d21529a03bb38600fe88bef555fed243a08938d30933b"),
		nonce:                 decodeHexString(c, "11b464f29f27598b8bfe2489456ff273"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "00bd373f31ee8a2089e07be076f7b2f4abc5b6304aeae86fdc4552a278dab42b"),
		additionalInputReseed: decodeHexString(c, "3ed5f777f1211f1277bf0caf8697b218484ab2d3b8667c2390d22ced7ecadda9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f5d41c3233271cd406e3f79c3303ea3549de366b47b297d64936c9f89b129a13"),
			decodeHexString(c, "cf80281f99633ac153ce713df0cdec8920b938ebacdd7a57b0aadadc17951f89"),
		},
		expected: decodeHexString(c, "dda7286bdf52e4ca44b362f1904e1a1aba2b071ecb8e7b6a5c72f205ff71d8da8633c5e41d368436a7e7a5c001ab1159eb061a67ac89c9302ee1a58fe5d05a92919e083a008d6fa5e81712204f640e98a7f062d855cf4cf22e56a19ee5b01708f4eb1c3bacfdf1eb46ba0909fd89b3ae0bf2a6134984c58e4373b2ee98d78049"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_11(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "cf74894924ea5b288cd54a7b7bcf642075ba24ff799295d635a38c9f7224ea82"),
		nonce:                 decodeHexString(c, "21ae0c093a3e346a5df15eba67a7aea9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f8975ba93b3b9e4ee70b3362dad605dcb773a84ab4d3d766ad75822ac136d1f2"),
		additionalInputReseed: decodeHexString(c, "9b584eca3bace4bd3e628d7bd7827f3773b0b1cbcd948fc6e10fa1965416d5ad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d885b3f20e42ca6ae6e2493345433521b846c7da453786be724238650a44da65"),
			decodeHexString(c, "efd8eba1e4a50ac704bfa8a703c2c2caa32d6a81472f625d65c913f49fe3bf80"),
		},
		expected: decodeHexString(c, "edffa433b06ab53176eda14afb729b26ff291b731913e2557fe602061fdd0f89553693cce24fb9489eca41ab79da2622921516dc6a08589068c3b9c9fac5e335fa900e9b6c315ea06143710f165b9b03cc94c213b7a61a82e90ba916ec29317d8858826e1de418e469a2919e063c48e079c6e3cf415a46c99f8264aa807306fe"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_12(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "fe6021f842cc2f70978b51a1f180140daf10c4ce0b1eae514b52688536db2229"),
		nonce:                 decodeHexString(c, "b1ea0ac0813ac05c93ee4355133db7f3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "15226557cad127382179391d40fccef56bb7ed431f61ebd4bf2b2756eda54609"),
		additionalInputReseed: decodeHexString(c, "4e7acffe9c7fdf75978675b3e41eb11fe7df5ad8db9a0059cdb505ddf2d9e0dd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "06887b83fe589c597ff9ae19c5d054919bf062446d79f011bff278bbd94eb860"),
			decodeHexString(c, "d48ebb600aab0759c0164aff792d96a8d9529f4cadb1673df569a16e307c5c17"),
		},
		expected: decodeHexString(c, "9fa3530dc65bd9cb39bbb3a243feea175bb7c57250b5c25be5f7ac270997087eaaabaa42fc39ba5a80a17a06ac314882272c849e16e6a16035b624f0874f5e81206d90d72df14e90359e51062292e45d6d85f676e07ce3406db3ab3fbd2ef51c7be90412dc42af3a175250d30ac6ee717fd34a0235786bdd9cce8a2ce51c46ef"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_13(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "fd534ce1f823a48a15710b2e382945464fef1d7272052033dc6f8e3c554a7718"),
		nonce:                 decodeHexString(c, "1bf5269ce3af10500e6cf62d90814066"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7920b505b1c5175a7f4f65a3091ec5229d3c4315cf2782716f1c60c57684de0f"),
		additionalInputReseed: decodeHexString(c, "e6bafec41bfa28cc7dfabc6d495964641829161780767a0afe2a3842d07938e9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bb51083e7b0d125b06143efee708f1802d34055b32ff1f10d7a2020e2ced206c"),
			decodeHexString(c, "a3e78b7a4797ff5f8bc86d419aa1bbefe083bc4a06c70a09e63b357e25aa55bc"),
		},
		expected: decodeHexString(c, "61676addba5ed6b7bcc4d2c78946c6ee188e503d8724f60478d5280c96ee92bc2b1a59590b18a5bdfeeff4ea23dab8e1d43a5a47b1a615b04883550d6dd46d318121e44ceb4152bb7bc6571b41898d17115f2c213c00d01cb6d70ec72054bec2ffa9e9e2df67021c9d926a25dd9dbbd13e72de2f85106edf782df034dc7e7393"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed41_SHA256_14(c *C) {
	s.testHMACGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "3358cba51014877f9fa038572ba2cebf428be3d555c298e33773651f6ee874eb"),
		nonce:                 decodeHexString(c, "24971323fab7e282858e91c5220c3ce0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "824f9036600f199deff4b1eab1e02cb624c82ce94313d69e38ca3eb5c9261997"),
		additionalInputReseed: decodeHexString(c, "598b2e2ec7176b4b5d8a8bef5b8fca28666c561c4ef595f363c18c61f819d6f3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cb2f954ff3a2172794755782fb98cede181068706a1182c9903cec5da42bc0b6"),
			decodeHexString(c, "10ba25641af00b5605362d8c9c297acec5ca1fee0829c535789a8889b44246cc"),
		},
		expected: decodeHexString(c, "f4b5a849797b8f20ef9dc24bbd039fe5c3a15dab353bb79cae01013003663e5f5dd723f6e816c329ceec784adebdde0f643fac2f37c36f5542b4bdc640ce10df5237068c832e520ff6c9b39e2f755c7a01008d44e0c343fe483c8026cde4dd1c65170e597cbfb768e5dd563613e282ebfd66f286a8bd4ce248d99516d865efda"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_0(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "d712e0448c7f07ffc32cb24d4a13980f63a95c676d332f3d96dff8faa867286b"),
		nonce:                 decodeHexString(c, "eae6e959651245cc5420455b264bddc9"),
		personalization:       decodeHexString(c, "82e3cc515480a6d3fefc6687ac488ce04c0cb0361fb87098104355bfef4b41fe"),
		entropyInputReseed:    decodeHexString(c, "b34a0fdbd1082df4fb3404502cb99a2b564b7a7335e485a907693b8be256dd10"),
		additionalInputReseed: decodeHexString(c, "e500f6f8af3c4ff61f46f933f80e80e4d08376349511de5a2d3394855e5edf33"),
		additionalInput: [2][]byte{
			decodeHexString(c, "87c571b98a05b372cbb53429a37d91295f6f8892813ba23c3c21327f83f9f55d"),
			decodeHexString(c, "72d1895e1c4c3093452447cdb3519c8dbdcaf90fa0821ab5ced0079c03ab8dd0"),
		},
		expected: decodeHexString(c, "ce50ca00cb699b6dfdf0b997b8a425d5d665150579c01232d51b6b296138fd39da0349c9fe1e1c47cb2589342cc9a9dd9d17671a68a4915be152826c3245d51d87b37275a5cf4be9b4c90bfe752065eb93bb99679b25ace57ac6bbd4c7a30ee489cff74f2d11a38782f05301db7c60c9659f08f237de354ff7a8ee10b8d93460"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_1(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "6f293c9b5e4005039c112efe7b94e8e4fcc7a36695811a3748f0d1d3ae36d502"),
		nonce:                 decodeHexString(c, "f7ef8fffff776dbc605690b39e0e6dac"),
		personalization:       decodeHexString(c, "35da17cdfd63115695685e39023e51d8496978b4ea1486f35a02aad633a43126"),
		entropyInputReseed:    decodeHexString(c, "8880b6d52573f3f0d6fc8a67dbccba759d5ed4deb2e9b54916a5015002812311"),
		additionalInputReseed: decodeHexString(c, "7abf3ad0273db79fb7633f0ca83723ca4186eab6ed39321f2f5175702acd324a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "89d21eba6fe32a7d16a75156a0866a88803826ad541063a1fd4cdebd9f962fc9"),
			decodeHexString(c, "4ed140cba667deb14f2b404a69cdf10f2a972887fad0c90fa4fd8025e5b82fe1"),
		},
		expected: decodeHexString(c, "316b0353ece29f40caf3ddc577787adc540fb25bfe0eccd6bd2fdf558a5cdfb1099028f3424edd01b85c8f174c2a294da9885986c4a90361fabdb62d5bd20d31e21a13f2d62fac098dbd0d2121eb2afc53c949f5bb9279819c3a7a3de8dd05c13b6c6cafd67ce08182bf3514f719729aed4f6e5b3736932a907ce8f8de7d099a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_2(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "8d15292a9622a61528f93b76237dc11cf2185d7aaa61dc58e4fc9f0fc31e566a"),
		nonce:                 decodeHexString(c, "f96e66f2aedac2fca559a123e58fb2b7"),
		personalization:       decodeHexString(c, "5bed07277f3b91903d9f7664cc75495a8358ef071e5ce5696800a72651b5b046"),
		entropyInputReseed:    decodeHexString(c, "54a565f6c99b4efecaa60dcfb6f4eaef8fad85a6d6512c27bb3437aee948ea7b"),
		additionalInputReseed: decodeHexString(c, "7494d01ae8b7ef5d1fa485d0e91303b273a5bba384f9b1b880b4c1abb31db940"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e914e2fed24f64d275f7688ce989895e5a4a41ddd1fd3f8a60ce7527c6ab692b"),
			decodeHexString(c, "2fe9013f707a21f6f5c574e8525ef09d68fa9862e7c2b45d313278a2cee16d41"),
		},
		expected: decodeHexString(c, "034add0d2209c3ba4adb562179db116830c1eb994b413d4dba5a6fbe3a90b3616be66c53b67e4bb16c63638bf17e0d7b0f5c186229da9ae0ba325ffbdf8329bd67289915e1d00252f6b8c8d492dd20c6c73721e8fd9771e0f7f26d514233d0c46ee71e21ab89a3a4d8d60c03df48463afa32c5c13fd4fc9f70d969e8fd0c5be2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_3(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "18a6a899f8ab20f503767086087ff0d44905c3840da5f52524c701e0df236d0d"),
		nonce:                 decodeHexString(c, "137dc9f64690e9c1ca32d2fc3732c18c"),
		personalization:       decodeHexString(c, "e3fdf4974df11fb44f9074a307e0ea75008021003d21d684bdfd61d836e6158b"),
		entropyInputReseed:    decodeHexString(c, "078f8fd1c981f0ed728b179417fca212ea3b1ed0bca0b32dace0d1c8410680f6"),
		additionalInputReseed: decodeHexString(c, "3d1dfeb4a9bc869bbac38507a1f937dd9bc890b8bb2eb8783ce3895f5e507901"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6d5b3a99a423f5b2802fc99c5e39d6e0ef4135ca418471b598b26a1df666f3d5"),
			decodeHexString(c, "a7b3504615c5bb959e9521cc12bba986555ea081eab4a0da3f4c1af405725107"),
		},
		expected: decodeHexString(c, "433e3ffa01e95f68631d481f8b936758feb0339cf315d62dd82b8a25631b765b8e690523b4d27e4ed3828ea182f8321f30d3e51cb8c5d5672cd7673c021fed368953fb1016e160b9e9824e7c31583f1f231e577b67a5c4bd818cffa8483fae09b2beb743556852934857f25fdc4328420a71c1ab6c33d069a7dd493c3cae2213"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_4(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "be5ee9cd971a6b7e8849baadeb26a107db476145d8937e2f5b240010da249f8f"),
		nonce:                 decodeHexString(c, "a02c081cc23904cfbe9d402fe7c02d84"),
		personalization:       decodeHexString(c, "d0c60090fc230ee806f98134a06b111d95e48d7d03b0e72656aae6675d2a0142"),
		entropyInputReseed:    decodeHexString(c, "40a5804186a602e5499e53aad53191d0d89d57ac37e30bb33575f79ee1bfa7ec"),
		additionalInputReseed: decodeHexString(c, "a0df173feee84e66a41ca56bf5b3f7ff234b5cd4bb01fc8ae1a1b21136010055"),
		additionalInput: [2][]byte{
			decodeHexString(c, "00a3902170fb86fe6e42f846f0682e055857da3ea7fdef31b015121ddc36e905"),
			decodeHexString(c, "891cca343e37ffaa231856e0e95c3f137f8a057dd0b05648ed368b8a0ca761c4"),
		},
		expected: decodeHexString(c, "cdbf6a7e798ed00732d3c7e17261713cf86586320b8d0b6d06d4c1f67cb70478bf102653bb292dd91d884b2eaf7b40793118f2a6bd0b90c7e2e0be05cbf5ed438f0b1b089a1e533af9ef523dc244249a28311f5f3a28970c52b0d801f2aaf98821c32642023b6eefad5395824f36b3ba477258ee90a0ac599203d7d7f15c9c86"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_5(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "92c8d9c71a8aa38e7baab774568d8a4cfa471f74b1944f83e3a0d39fe30bdc4a"),
		nonce:                 decodeHexString(c, "07777f7ff711b971042e5b7650cacc5e"),
		personalization:       decodeHexString(c, "1cf505b1caa7c925126bde4b8183312aa7925969b48aa69e281f192e30f022a8"),
		entropyInputReseed:    decodeHexString(c, "44b72ffbc7002178273dcf09e244822b264db47831aab26d56428f1e0425fae2"),
		additionalInputReseed: decodeHexString(c, "f6f2155c119a28dce060c301a48384cee69f89f78b776c85b5675f9fe2d5c150"),
		additionalInput: [2][]byte{
			decodeHexString(c, "163f865edce5d85678a3aec6ada86b12ece42d19d3f686cbb30478035fc29c86"),
			decodeHexString(c, "ac05887fc006bb57a006c0248f3fbe3516205c3f20ba8dbae523d0acf78319e3"),
		},
		expected: decodeHexString(c, "cf89e3233eccb980fed8718f1df43587af92816b4189eaa6391164e7602408f8f4cd7f0abfcdb428ce6997788482a888e34396b59ea75b111a25471a0fe1e7e4c066f886b1c1bbde7f58ed749a2b64ac77d693919bdfe79d6dcd1ef60ed110cec3b73ad0a7a6102c7b7c992d6602569123df5af729e399cb467b794675460e52"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_6(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ad7e741e71f9d5bb73854fc9097e3a54ce55fbdf0b8aac937d20c615ce329140"),
		nonce:                 decodeHexString(c, "9c0e34c85c932991cd39d122a311a8a2"),
		personalization:       decodeHexString(c, "1a9ec02f3c591522534559534affd895da48af9288d8842f066d905ffbd5ac32"),
		entropyInputReseed:    decodeHexString(c, "7ea1dacc7a285a45b4492e717f2d1a525aca26852c19c09e2bd6e66f44e17a76"),
		additionalInputReseed: decodeHexString(c, "fea55ffb439832bde8643e1f249c0fdea9815d348444986ea11931b564be049c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0232c4de03fcc67d92ef15e06dd92fb05f1dc05fedffdeed8b5317b23db49ff1"),
			decodeHexString(c, "220fdb0032da68b61d2244009032190672c7eb30bf55206640459684e7b99635"),
		},
		expected: decodeHexString(c, "bde4d056ecf8128da1e7ac39960d1acf13daa995f440a79a93b4c01495872678bb5adf5563bdcd929c215de218b081212aa94f5b7d36b8cab4a9f40d32d699995e2846101648202a4986b8d8af826b6083e487701ec113b021fea8e1f39f2b80bb649b9539417d6358c1d17003a16570169b5eb91183ea13232dd5f960ceb6f4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_7(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "8c5536ac55f0e705f381bb152650dd4d10ca8338b45c0f1736d4ab6dd79d1d9f"),
		nonce:                 decodeHexString(c, "800676acf474926cb720063f7e96f932"),
		personalization:       decodeHexString(c, "fe2c8c5eeedbf0b765fea797786340bb6b3150ec605a0e7b5e4b6b54d541417e"),
		entropyInputReseed:    decodeHexString(c, "d7362e14c62622ad57ffb20a860d4c4ada44997c046cc831f8ccbed7c87378ee"),
		additionalInputReseed: decodeHexString(c, "3eb7ed9950a1aac8f2b963b66b7855ae1e8a94ce510412911e2bf0d1f3d108e4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "66057d7ac6a7f64773be3e67f76a2ef465cd79003f7bde52ec8ebb119c2f02ce"),
			decodeHexString(c, "b68298770d51a6d6a1fb88e692f79adbc1a777f21d5fa5a630862ed6b533ec75"),
		},
		expected: decodeHexString(c, "ff5d616cd7e297e2c1db85ab271a4cc121e150e7abf07cff82fdbe79dcbb20e68456f212a6b9de93f9332171f44295f2d95ee4a5b32a3d8989929731c73c7f4c4b17a86c6ca2f5a2b74fbd6871a0b116aa6c4cbc1fcfd87c4e1ed524c4fe6cf60b8afb5957ae5387c48abf6e4906560a561f25b66bcc95d3844f6df1f5510b79"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_8(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "4f175052ae1a80e85f3d41be33cd05030bc7d07c62bb760972a1e164edfbb977"),
		nonce:                 decodeHexString(c, "b1cfe9f64286fd867cb41d4c13f3e385"),
		personalization:       decodeHexString(c, "a0472b08106cd49cc58c7c7de2d1f9548b291e4347973890ab83c68fd2779e43"),
		entropyInputReseed:    decodeHexString(c, "9af986a052b5a89f14a4740906223873a018d0c418669608697496b5b5fc6b2e"),
		additionalInputReseed: decodeHexString(c, "4115f2e109c2b54369cd2157033c9226c76dcdfca1fd1a1a4da7fab55197c5d8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "929d0c117c4205c22f2b959365ffb045dd2a25da37ee6b81600393e2c5e42dd1"),
			decodeHexString(c, "a5cdb09bcc81a178bbedafae82cc970ab7774389c31d9fd98f572f4becf32f14"),
		},
		expected: decodeHexString(c, "d512b263aced3cf1e5d51ffb482e0b90618702b2f980598b2a6f80e81177ee65f6eeeb51e9104a11b78fcaeb0a136080a4986cf5ca6dac85103dbdee1a3f2227dcd14cad7677b7069b68d4c5dc57c53010c3a0f4aedf2485f5b5dbc4276009e781b71981dcfbc6a534fa0330b3dc7ec54613bc8206c921bbf11df3d74941b8dd"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_9(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "7f0f1cb593e4c8501add6017907b432caa4a6d56c4a1a3debd934e2ed641a77a"),
		nonce:                 decodeHexString(c, "717806797227be88dc23033dac9a231e"),
		personalization:       decodeHexString(c, "cdef11fd6b34e7da48541af454f5ec020d258278cdc2d45c0312f1d4f2ebe82d"),
		entropyInputReseed:    decodeHexString(c, "a110b6b21b9503ce7a92c1f025273f60b6f1be21418d27861a959da5c08e7ade"),
		additionalInputReseed: decodeHexString(c, "4866870d939ab0b2ad91f5a1460a48811ff5a32ecaff1f800bac02afb08b533f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "97df0e1434a083bd2a2d81058f0f9888c805aec20c0be3789daf4d4408791596"),
			decodeHexString(c, "94ec19c538e58c6facd04b20a397178f6eb021f36a54b2592cf95359bd62c3e1"),
		},
		expected: decodeHexString(c, "28351f9d0dae8b4cf0707d463665f4f5d17adb2877db8bb2e91268d88e67b9adbb56b929ca34e51487e63a67b791ba913d8fdf11157171b2d32663902a4c0644d2a63001e13ac80a1493ef331792f198dfc240ce91b910304619456623e3c65a9e083865d48e9b4b121920df54e87e7b6611914697bf8ef556cf1c70472c30c8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_10(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "261edce638d08160f10bf4019f15988f8d4da2c1edf5f313d3a1e09ea8211e93"),
		nonce:                 decodeHexString(c, "edc31e7f9ef28c97fbd16e209c7266d2"),
		personalization:       decodeHexString(c, "bab7ce265da02eb532c583a88a8911a9f444178c408902a8ea73613cdfbf7072"),
		entropyInputReseed:    decodeHexString(c, "75cb2bdc464f2017cb7998c37df26efe8a9c99a7b8b31117fa9bf594ef8598d1"),
		additionalInputReseed: decodeHexString(c, "b79d745dae5240489c953fa03e86814f1eb086cd8685e143a4ac009d64b566e5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1ef3ffe5024f3a77eb67c1c9fd001f4438e43201ee29a0ac2bf7fc37a5f0787f"),
			decodeHexString(c, "17ca5281dbba08f86449942a95125a41343522d9096ce130a2473d197b0c4098"),
		},
		expected: decodeHexString(c, "5d2a202a1c094929e29cd5076e8a604644b8074378fb55caf890b5d5b69ca4470ecce3ecebdd30d4be380e0a78d9f5b981621f456aec5a5a8094a22bcd2f100d82d3c8acfe9f4ee28aa2d4ae690966ada24e97e2a8bda237c837cdfcf52c69c1a420a2f8603cc813524691959ebe521ad7128b96f4de5c86a7796978027dd85f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_11(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ce7fcd7f271eaad684cd64faa67d08b0404aa44dda69ad8e51dc50c2b4f429d1"),
		nonce:                 decodeHexString(c, "226e507efa629b0cadda00559536751c"),
		personalization:       decodeHexString(c, "2b7196cc432a75f9cc72fd459d25a88d80952a88c29f9ce342bb0808c057b0ec"),
		entropyInputReseed:    decodeHexString(c, "f002a5b58522fccd7930c4b89e6a53d84096f375ccdf9c84b465a9673986b601"),
		additionalInputReseed: decodeHexString(c, "8712a2aefc5996f177718a8e5bcf250bfccfc6f1f08bcda9f3a56b3dd0c579d1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c51637fdbb2990f037819c01bf12778a254fa9646851f709a219c1574f5dc15e"),
			decodeHexString(c, "c42bcb92d457e9fef96ec52e69c6ac5ebd8c6da269ff794d26db0a8e7a864aeb"),
		},
		expected: decodeHexString(c, "2a4949cf49aa44e6f9daeede90babf7ec02918aa086564fcc4f59ab289ae48287ed7aa7e243847a97678099ad5cf9af960af1336724d5cb005f23ad9fb27ae5b3841a2ad73140f723aa8572e43413c312bc55e8ee0669f16ac67a4bce6c0496c4ad1c701149dc8ae24725b43f95ef4ad0810d44bc3d081249ee5a58e17c4bab6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_12(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "b816a36760c337575634c4c5054560e76cb19c950a3a162c774af3110c648ba4"),
		nonce:                 decodeHexString(c, "dc6b05bd4c9dd98c9f7834002e20a191"),
		personalization:       decodeHexString(c, "f4a6ef5034d489ff7079a40bf986baced2c8acea665d984453de76e183575469"),
		entropyInputReseed:    decodeHexString(c, "4d9ea03c41f5e6688557ada6b270a30e6446c56d826f93935ce5b144f731d9e0"),
		additionalInputReseed: decodeHexString(c, "7b94085c670c0c5f666e3c5e18f3d5d9b5839c4f29888bc14821d5112509f0ff"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6a109321833de5339b80b9dcacb5b814cf986a9aa066841da9df65233abf0406"),
			decodeHexString(c, "28cc8a2cb790b0a2caa8fbf244d8eb4440e95bde71e4454015a69398d3e3af1a"),
		},
		expected: decodeHexString(c, "e59153c34d68a0ff4a67ee08a84286297838d176c86f4375d7c32b4fcd30ec635a80117ccb9a74d6b51a1058ba9740f6ee3d6f14dd964b60d7aadea1301c74cd8a72a5e0b3d6d8ff7b6e722a373b764a34cfe5e83d01d41e7bcc43751e872f9cf78ddb0283d9574285cbe317d361cb5b5dfe7080aa6e682ce795b92189bfdf5c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_13(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "22acdd4d4356150f2cfdb2dee34349164dac84493cfc836abcc90ab489a77727"),
		nonce:                 decodeHexString(c, "a2799ac1c419ac721f37bedb3d608c1f"),
		personalization:       decodeHexString(c, "0714faf3555c6cb745b4566a7a171116ad71ae5f1b3a1273d3abd3445e3441a5"),
		entropyInputReseed:    decodeHexString(c, "6ba05b9df10729c4566031cbe80ab1442e745875263ca7b8ffbe3210ec923d6c"),
		additionalInputReseed: decodeHexString(c, "3a5f2a3ec3f8ef8f26aa93ed442a951109bbc38fe6218cdb21801daba2e8f7a8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5627af344e65d906d0c4bad2fa43ebb5a2ee18cbe23b42b7428f3ee29cd0d4ff"),
			decodeHexString(c, "a05b5b0d9c6d14658ad9ace19bec5a1f75bb360f472bf8dad13604199afa8c57"),
		},
		expected: decodeHexString(c, "58d69968842a465227887a4d6c9fcc30dcbd0035a6fe9b393bb44108cd31c9827923bc6992d18d950e8ae879f797a4838ab41ba467c90a39e3db4a691b78cb3bbbab8d7ec9dec4ac6743bbe23a48658a51aeb473d156b99df9948c7bc3e19fed04e06a86e90ff18463c752844ec8c24a58aca03357cb22fcddc8e99034baa588"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed43_SHA256_14(c *C) {
	s.testHMACGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "caad192ab728518a1224aba01b2f61e4eb6956c4be0991dbe4bc11df60ea9953"),
		nonce:                 decodeHexString(c, "97ce7486062daf0f8eace01204901389"),
		personalization:       decodeHexString(c, "c732e6df93b7dce601e070be6eca84fe24bd679e5dea0526da9bf4f9325ab24a"),
		entropyInputReseed:    decodeHexString(c, "33c088a4076c6a675d77c5ead1e6938201a2f4858e5429bb652392259d683ce8"),
		additionalInputReseed: decodeHexString(c, "a4f8079922add4e3fca85641612d570a0218d18d1019fbbfd951a185130d4da7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ab515f5be45bbeaa6dd31a257de3d3cbc3223975f83aa0fa344642d1a30cbc92"),
			decodeHexString(c, "90a462585287c5552a3185ed625f01ffbeeb345ba679a429062d034a2fb91a0f"),
		},
		expected: decodeHexString(c, "41d51af6653f1e213f8e1620129ad009c518704d13f25119f9009f2a607062028512cea7111c9029a882541cc48661b22a4a1f70764c5e5c979a195e5730c2dd4c80d7ab4fefe7ca594e803726ac42a8802b276f7d61601f7b4e44652595b4c7a6370abef702b5985ccd9de49d6d4692d2d3a07435bdaa045c603f48be432188"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_0(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "82d87758f16581b2bd8bd4374aba49a59b65cb953f753594240e69575d51b170"),
		nonce:                 decodeHexString(c, "c12ea8a42dbef64b9b3abbae9222f94a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f9bcb64209e8f68e6e3f996196ab445dba64568c7e572dcd2378e916449e39f7"),
		additionalInputReseed: decodeHexString(c, "987d93237e7e52d1ef3941407e8739f7d95991bad92a49ad6a681dcab1644049"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8dd4dc1e62114a0c7e52537607ea8313fa4128f486d871a8bb8adbcd9bf46c42"),
			decodeHexString(c, "e16721a200d3f18abfd154eb0dc2c9b7c245e8a2a644d59c2e888d4de11652de"),
		},
		expected: decodeHexString(c, "ba00a49886a6c34ebcd649bb93989cabb9c1d11f9c53f721c99ab125a6cf4726a79713c2683ddae6ae7939be465e9a2b95d008af76db42973a6b63a33bc662d99afd9bd4c7aaadc116da5d11db66f2fc27bfd471ff5130b40f81c0da8de5ba09661165371818ea61f936b4fbd511efc2dc5a7d24dd56326a0e10b03f1f94465d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_1(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "d45617cf8aac4afd6699dfdba896e943cca0d69f2f2ae411b846a46aa1cf9666"),
		nonce:                 decodeHexString(c, "9f8c13650155a0295209b5bb064a85a8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "02fc5d6d9909ac4aecf6ec05e68122bc349ca7270495e832249254e49c5c8d25"),
		additionalInputReseed: decodeHexString(c, "af52fa54d850b735b3a83e45cdff5da4371e262fc54171756f397298efe70e74"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0586bdbe560b77b784a40f10938aa889fc0721ea4fa1d7d43507f15bacdb37c2"),
			decodeHexString(c, "c0e43cbc21559a8dbc833a86c24ea5c3d5a42382c75723ce351c3172ec69bcf4"),
		},
		expected: decodeHexString(c, "3b20e6e6464a05293a9c72f2ec130fd62d1c322cc5818eaeaf2a5e01fea7a3638c1cfb9e7baca2e1459774255dece1121ce76aa557ccaa1fabbd6b40602ae039f9d668c5ba728c39b0ef49ee2230be5035a25b98ee02836b807d0c048485d054a008470a0bc9d58252124fcc8e83751de51bbe04ed91f6da75d16915e9a86f31"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_2(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "88e996ff049a7e883140f388195bc037dea35b028d6cc840506c3a973b350bc9"),
		nonce:                 decodeHexString(c, "b5e8b9f4001ab207f6dc13e1646809c6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7c5ab58a716d0f56c8093ba413da08e365796558dfd8706483c75f2495c791c9"),
		additionalInputReseed: decodeHexString(c, "19108947f3fe5fec5b89406b5aeab5ea302e13cd2e07c664928ef77ebef9fc14"),
		additionalInput: [2][]byte{
			decodeHexString(c, "234c15afe741f90f048790f9273537e138d4c11b72496c3c5fa2d943d0356b77"),
			decodeHexString(c, "b3db56bfff2896c980b0bf0007c1cf7236a4a8d826bbfb1d25245b565f3cd886"),
		},
		expected: decodeHexString(c, "d19059af044c7bd0a2b1f2dd7b42a25db1a764b6d011cc92c268a9da92bfb7a3ae8eab49a501d169d68e984b2a4b091131bb4e3a5da501d260666f281cdc6bb57c4cf5f2542e97a6b249c18849dfda92a7313f76e314379c28e9155b954b06a02d3078e317006b50556383d8f9998703064bfeda1fa63a84834ed9877e937445"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_3(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "46594ddbc8c7a26bdaf61ed97b4e78c72c34cd4ab1152042b4b39361d01711d8"),
		nonce:                 decodeHexString(c, "afc1482da5b7bc8718ce2f6a720d288e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a91158cded4676281603a1d9f6b59c9e2991080262cb122fcaf4bbe042900ad5"),
		additionalInputReseed: decodeHexString(c, "28eca150c28de8da9837e7070d4d51f51cded6a548d63958c33863da24279a01"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5a31f9b2966e7a9f3d5317592df05fbe61752a139101e902d6200074fcc377b4"),
			decodeHexString(c, "1cc68649e197e202e7c6fe61612372dd05bbb3c37d23d1cdd40802213f0c2466"),
		},
		expected: decodeHexString(c, "d603ea67dd8f579327e7869baf7164b1d3c4bc0fac661c6c833295942fc613ce40ee96d38d53aafe3c8ffb28002a2454f5377c97865c73387ec9fb5bb75dbaa3e68338051a51f1df7ffdc5684667c62ae2f200fe131a88fac6d53f2357c3bd945744a525d0779b247cfc94d5969d0629d58065ed50b82855ff051bb5a8ad8305"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_4(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "208ed308a6ac1be922c8f89e2e27095664105b6e628a212ee4cf6220d36c3a42"),
		nonce:                 decodeHexString(c, "663be94764a6503e554f54c9ac1462e9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6f230a815ae7043d7334bec6f43dd926afe4e6887d83b194d01c7a72b833a6ab"),
		additionalInputReseed: decodeHexString(c, "49ba715bb003f28e3238a36afd12197e3764f5d5c5d7c4d933d73078baa4cb8a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "81db352c01849b9fd463dc9b9c74a8fbb5448dcc3e0171a376bdea811882feba"),
			decodeHexString(c, "90e0240afc475cb623c5f4685ee7b99f55e400a8964e978fd8ae7df2ca670db3"),
		},
		expected: decodeHexString(c, "87544081d61f56811aa3c689c6bb492cf03aa81ff54606f5c4667e7f2f3e1a099d485c54ff205a2bde2098c6e89b3d423aed69c3679ca535af7d0c4995e4178ab206d5cb05151d9d92815c14c701bc4ce4de6ec38fd22ac64ea1ecdcab5e5048684bf066c9ae46a208788bd2e5e2010447e0c5495f22e2052d21e358aa9e3d0e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_5(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "e5ee17d11b033e3701bbed8bf3d99c90131cc0f7f46c85d7cf852afa41e916de"),
		nonce:                 decodeHexString(c, "ca9b43bd86f64eab072808d4f017f147"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f6f16efd80734cc1af7841960b7235b5f103d4ec83c3209424da74ca81b7a9e1"),
		additionalInputReseed: decodeHexString(c, "af8e4a7ad0a1fc3bdcd70cb155a0b707f435b07569882f163f8cee653cce4f07"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a9f3569decb7f1ee3e3698e4528185265a48cc7feb392b48f55cf09c6727d787"),
			decodeHexString(c, "aaa0ad270b97e20d8e4eb1388aabb85f5b041491a0ffed2871661ccfcc6fd306"),
		},
		expected: decodeHexString(c, "4c1d9d8d2f8bb8fc9f7db889a775caa745809c43e71c71a9abd496671e5c852a4b42604b5c65db9ba3367ce48a5b46687f23cd851f89d9a9ff4afe6c4fcbef0876997b501ba4b5f66fd642b2dd8a238e969eef49d4d1187621949c7b2281a9275b0be553cc8e058eda21ab2c97977544738fae49128c8aff71d740883c6b237c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_6(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "52dfba700935bbdd496806d7abeb85bf09ac6adde9d278db3e070912d7c35bef"),
		nonce:                 decodeHexString(c, "36b9770b63d5a3094f2ef4b48f1eec92"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "db4591fb6f64f8bcd8cd170bbaf83399948cea9acd51fc29e3a50848d6d31b06"),
		additionalInputReseed: decodeHexString(c, "2af211bc067f4a669f9b4f81b1e0b8f2bfaa2885ab76eaaa02fc0871d97dc7d0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2f4c567083ab1741f0ec642242c12626055ca8d99ec9431396998df8a4529cac"),
			decodeHexString(c, "774745c786b5792bae31450228b80800e6026cbf4226ed5408d90135ba2dfd8e"),
		},
		expected: decodeHexString(c, "1b0df8a6bfdec11454a565447463e6f75aafa8519685b9860606360d6d550346e42ac3ef37d8e4e581ebb9e5643d2106a1c69411e9a98156eeb61d643e8cf930bc8d5f73cecd912c8b577ada8ab0c862cac995d3bbf66db828d883dfb477f2d4558508f4819d13fb7c2d1fefd53d66918ca8d43890e205fc147eabb099c61928"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_7(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "376fe9bcf1730a71be71f71d752686862e0cb46076b47612826c17a462f2df20"),
		nonce:                 decodeHexString(c, "e31e81cba8c1f46188cd3831c31647f6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d576346d85d394670aa763ecd8c3daaf115c91ce84f50ae7c8a25f853e206242"),
		additionalInputReseed: decodeHexString(c, "651e7325e4c94b94368f9a20cdeee32fb234617ca12f69752ef20ac4eb4e9599"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0e584541131f90de2f0463bc42f515c3ee03e2238c614ffda13110a7600d238b"),
			decodeHexString(c, "d06bb18ae5239f680e238e38e4f1826200b1825db016d42d773ae0ee03b65832"),
		},
		expected: decodeHexString(c, "f49c0755401e953da54a6e4ed108410f6fd33b24dd20471cdf0399a8d2dfd6efb82c30085f3d01aabfa96a2e149c4d5a6aeea6d39a94f7ad910293aec2dca0a9b65376d083629104323be02c7cf3d9e227b25a2372b948900caf6ba5375535ba89fa834733289682f1112a1808ffd43a9b686693e689118c759312310eb1ab6d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_8(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "e5ef4179c15b4edeb6501a7736ae4710e10e0b05020d9ac64ec285e0fea22663"),
		nonce:                 decodeHexString(c, "4c7398935c2580d12fa3c77e1854c96a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f455054da03746fbbc547b64a5675e8697a3017df6ede96e5f4ae228627c7c36"),
		additionalInputReseed: decodeHexString(c, "d26eba60e7d06b97b93650cee6ba83f2e63481408ae42f38691ccfe0f4ba08b3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "09a6682d44c7dc72a11b70a003ec7d5cd1b6b90992ef3ac7cd035994c1a67d1a"),
			decodeHexString(c, "7ebfc06c51fd731eb22f609a2c16a3a95d203ab3d272781ee8f2270c06aefe8f"),
		},
		expected: decodeHexString(c, "5c35cbc97234313ff6dabb28031c124bd174b38836b2b0fcfa21a525b736908b492fdc414a26792332e84d63d4ae91fcd044083c084586e84237e073cfaabf06d43b751a73569d545acd81764d5fe7f1ca3e879e68ddf705d42c40f62dd94fd4f08173c200eec36419f8fb61408a3ae2f89d7f897b620557b0d957bdda051347"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_9(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "c4f54f73a0f60d1021a4431e38a3a99e918de4770b110700dca2230a4b048e6a"),
		nonce:                 decodeHexString(c, "d392d2c24744d14bbb7abd3394740e2c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3ad6360e64501cc2965e401f748f62fc671c0cc5c6f4d74cabefb77fcdbf37d3"),
		additionalInputReseed: decodeHexString(c, "4c654c9435aefef0f0f192a7697c7f0230100531326e728b1caaf849c0cf6335"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e3230bfcf6be9255a099dc45a18245c1c93924c0fa0786703d30afe2a08da99c"),
			decodeHexString(c, "d143356d6951635cb8fe9d82a1680a8c8b474e9c322ad2c50fc2f6e5e365188e"),
		},
		expected: decodeHexString(c, "e84b05b8f57f174b94524c6af85edfd694bd804967f6042db419e6b913ec11cdd875f75a229f7d80e291ef1bd9cee09b7d1fb0c2153020f567786be765459eed65a214a2479384f7eb3562a4da345a869858d007873084478dd3ec2c697c4b6a3cdc43d660c0ce826cfd837a69322bf4f48b9219d274ca079bc6a65f9249f306"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_10(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "07a2786649c555c461d9354acfe7b2ea5de0b0ddbb5944b9ffacf0f3a05c3505"),
		nonce:                 decodeHexString(c, "99ecb98fd15a1e3b7b810e52df8a0a9b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "03565b2e46259468554c37cd2d3ac1bdd74c54e88800fddd5969dd790f9397c3"),
		additionalInputReseed: decodeHexString(c, "1375c269f1064337f16dc3615b4cdb1aeff2b1f7b6c762cc8c805255a7ac3770"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fe734e36c050fea842e3d6ac416f131acd6cfbbf1aa2e56510ece1a09070dd1b"),
			decodeHexString(c, "afcdb213924afda9f33064799ff433359f4c9a7bc4582ba2be4f444ba436220f"),
		},
		expected: decodeHexString(c, "c0077cd07ec1d44a9a62c082b4d81cd40d9191a7abe2d41db02681a6d845af965d8229ce3f5d13fd7c2d978994a89ac4451b7eabde0f9eb46547824c01f9b742818309128e88bb1d04b9ede9aa10961edd86d2483e5cd998ce666c46637d6367e2cc195f255033d2662153402264243066198a4d4bee84d847e5a220db54354b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_11(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "fd4ee32b2c7493acd93544592af38a173e93029ab858e4513c76c95008487068"),
		nonce:                 decodeHexString(c, "b30532b780095a254e1917cea183dbe6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "604776abdde4f43931376156a9372829675e4aea5fc09b3060eccdaec3c3d72c"),
		additionalInputReseed: decodeHexString(c, "03ad9a2054712669c927a35d1387e524ab9e5637cf9a602b910828735f7f7a75"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a89a5d312c771c0cc7c8bf48ba815e0444830755a303cd5ffea05917a1993218"),
			decodeHexString(c, "51a450c26d4629ac69390ceb45adbb66247eabefa07522b590c2f571fa550a63"),
		},
		expected: decodeHexString(c, "49dc11c03f615e8fb4d7bcd52f33367cc14d920a0c83543728130d34af457d44a7c9c3824fdd46256b49a9244e7c1aa98e18c40b55989afdc85bb98369c8434a02b0258a6411c7c43c93abae439b197baad4968cd7d1f3481a4cf0e254e73cd114c23cfcfe49bfdc689deeba4581522077b67e7e612048a6dcdbbc5301f4c46b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_12(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "b29425fed72a5eeff15b047e664d05e825d2fdc3a2ae3a6fdf6f9692d5e0fb9a"),
		nonce:                 decodeHexString(c, "65925c707e7fef54e174b1ea25832222"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "263447ff56428f7552d6c0b5db0b77115e16b3b08bf442e0176a5af21c48ce4b"),
		additionalInputReseed: decodeHexString(c, "f5f9492d00e9ff0f546016f2e8a829d273e76da0caaf33ad735a283e5dac8fb0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f74e59bfa315bdf095ae21d013dd9c9d0f3bef78dcf8f83d5bbcf9e7b6eda744"),
			decodeHexString(c, "caf5ad8978efad96e0e8baf0aab300d9a8fed1a7b6a28d1545411b6d983c3b25"),
		},
		expected: decodeHexString(c, "a3001862e230cce418b01545b6f1a65098f00c1ea3b4a8590f9a84fa849ec13f7a8689a6c2c26200b10a61f171bf6734cca1d1925e71d6a6372923ae941b0751c59834696c0230a19a039f4a4616221ddd29af9917126bf10e6bc84b7c8e3ad5204c5f3027b5ea23604dbc1f7c996e0706664258fa7a6fca06f08685e874680a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_13(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "bfca09956ca339d72eaf5ba29fa91a91a289e270c9d76d0df30d8b70b24ee278"),
		nonce:                 decodeHexString(c, "ecfdd27040168c342f8cb1c290cf5fb6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "054b368651c44ce3e526f01da3b75aeba1d67836d32850b20c5108ecc268af1b"),
		additionalInputReseed: decodeHexString(c, "05b5460ad65655dbd29b0a76b708376272b49b0e36ecff13c22860f0ed1e68fe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0b1a4e45e8b37b4dda406e1bd005837e5d73943b7be5a3ab2e0fee9a477f98d8"),
			decodeHexString(c, "c2d811a5494340f6473121dce7179918403a580f599a945b3c2dce16ca660ec3"),
		},
		expected: decodeHexString(c, "aba32f9cbf7065da6ce4e2f29762b80d0f3e996911e6c854dee0681a4f638554a2aa50deb54c0d889bc7e19d9406c7d1684b749b1bd63eee082079fd965780e29b2ce0d142ce3bac70a9fc5d0bb5b5454a8af90dc1cf11336d39d611b2df1b2a7479b5d378c329031e9ab387ccafb82744148a57b8620008c13e1ec72026f86e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed45_SHA256_14(c *C) {
	s.testHMACGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "7e8411d8cc0cff5f25f2db88645ced7dbfd852ae708158bf7b352f2787e7e426"),
		nonce:                 decodeHexString(c, "4f4d8ec376d745145f35f9a9c7215b52"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "bbf3226451c38529ceb9d6dcafc10ae789cf6328e097c2be9b23b77972e83867"),
		additionalInputReseed: decodeHexString(c, "d46c9de6dc4d295666feeedd7c08e2e354e60d282860a2b76f4fd1106665caeb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f721778e8e5ff5cdd96c868b03e666c8f174a7c5f5b9c50e1f13e76c888ef4ef"),
			decodeHexString(c, "2e5da8224721cbdecfcbd661563f1fc8b56e5bce3f7dd958243d7aaaebfbde35"),
		},
		expected: decodeHexString(c, "9111fcfed7d165bb5dc5301a5df5627b68ef90acba3402410046a395c937176e4bee7485f7e361d7f6276ba57d5f96f74b6db237d0b7f104c9d9db8389c5d72167ebb3930cdfd6bebd004a97cce332bd505357041e654e1e0e90c1556f2bc07c6a135fc6d4d886d2b3bd63057d45917c0d4d03f3b39dee6c2641b29ee369f18a"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_0(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "00efb9c7f02719ff5c7030ffa897a308d36c11ce27526340728bcd487c80457b"),
		nonce:                 decodeHexString(c, "09cebd489d363b5578ddf30534ee6a7f"),
		personalization:       decodeHexString(c, "27e38c624a8f934e931e195a0cbcf38e4e8d50108dc318743fb4b61cf78a7d14"),
		entropyInputReseed:    decodeHexString(c, "4c87234a9bb529aebb7278daa089753bd2b501d30677edb6cc31e38788fe0e21"),
		additionalInputReseed: decodeHexString(c, "0e4dddbe0034180b59303d527a938a447bad9e4a91787d1072e6f41350ff11e5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cb25fccf929812b9fc66aea93e0cafb064e25b8c2989ae5078648ef529ecb487"),
			decodeHexString(c, "c1685a422e4a0673cea9948937a8fdaa77777066f501aa17493682a83d931e6a"),
		},
		expected: decodeHexString(c, "7569ff1ad01a56ab283c1f2357bd519e15c0be84b80cfe8ec6e26cf903aa8a17f52311a2458e48468122ce1f4abff12920f7dffa86c46f06d744d198004bdd0b29b1b0f17712863df82406e2c2a2fb73ea99dc3969c7e52aeaea031e0112fbf8d785426ae7c106d876a900ba54c4e9a1f3656990571c6d1fb56131cd1cdb1e68"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_1(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "8ea54338449de2d1564482cf2cdb1610441aceb13d873c406822c8c29378edaa"),
		nonce:                 decodeHexString(c, "db1d9e60f8db08799836a1cc3a6dbfa8"),
		personalization:       decodeHexString(c, "f3f897cbcac4394dd96f9677a970cd3bd75e5577f6ab59bcf28c2b39ded7a7ea"),
		entropyInputReseed:    decodeHexString(c, "fca077f2e5e6ba708d1a81eeb6b368bb6ae30302a81717eb3edbeba09ed3ba32"),
		additionalInputReseed: decodeHexString(c, "41ad1a702e4f030d2a948b6c3e80e511baedaa13c3af17991b1f5f8f02f65942"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bc21034b0583961db1b6bc8b3a91f6dfd48d9c90b698e272d973e6df6318797a"),
			decodeHexString(c, "2ccaf045cd483a13faa045a316c0be8cca17b5336f8b5d8d18a9653aa6bf3d00"),
		},
		expected: decodeHexString(c, "0da0440eaae77db166a41284ea461513115abb03c04f4caa5c3daf876faaa8e0c92bffce6a7bdd0d3c2180ccd9f66f97a459aed66e2c84b612387205bd18bce47d79504fe3494407122aac6a650d37aaabaf0cd99235fbd0a5f3a06092d71d56a929e8542efae09cf25a692cfd993903f9eac95c3222e216c2aa0277854f4175"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_2(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "a51705a49a5b51ec885c7985ff8b4877cc842d9accf45d62d2fae398422d8514"),
		nonce:                 decodeHexString(c, "1fc37c7b48df83e96b35b4b077b97756"),
		personalization:       decodeHexString(c, "f83f51a25c95a5f24aae0a01d5221e159b6a32409e4b6b4ae69693601ba6c0f0"),
		entropyInputReseed:    decodeHexString(c, "9bfeca7a06eb1c2c3378a89bfc94193745fc70be0aaa1a5a65f66df048d8b986"),
		additionalInputReseed: decodeHexString(c, "2abe8b2681df7033c075bcae4effe23cc8c60e2b454ec65c109715ad795c3987"),
		additionalInput: [2][]byte{
			decodeHexString(c, "16d355a0609b2aafc0a8f7a426b3d3b4adea942026db3deb145cc20f2e1f2a13"),
			decodeHexString(c, "d61d12af4d35be2c0e8c56798ca6ccb66e060c69b11181348248211de81f5d58"),
		},
		expected: decodeHexString(c, "0c364aae174ea28eae8c61f8cdded92271f3957a875392a47adfd630fddd935515c325b1061ea5a455a7c198e2962dc7375f8be5b3d10e7ef20b53ca8ddb33cb05a95c98bf99b1c2cf09790a25cabb15d78a91e7b03d380498042a4d397fdcbfc447d21d832ac2dd5aa5e97059ffbcb99d32e37dbbaf5471a19d0eb1b7ac2935"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_3(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "bf8397a7312152a7d8fe58843b680e38f72b121d4197e7607a5d43a739d59981"),
		nonce:                 decodeHexString(c, "bcbc9b9319e2b36685bed42963b224f4"),
		personalization:       decodeHexString(c, "ecc27e66c66718855d52e54c5973125e650fd7c5ff996924e781ece3f52e1765"),
		entropyInputReseed:    decodeHexString(c, "ad4a6d2b3c119263192c34a544a2a37f236e2c0fa759873c3479b20e4fbef54a"),
		additionalInputReseed: decodeHexString(c, "d6197135bf1d537fb3bdb80b51536d5b4df01a1c9e3d50de91ba59ea235b3c6d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5f8a4035300695344faf8f694d980dd932197299b1fd02b768636ca4e0d54725"),
			decodeHexString(c, "3f9c67b8df9bd1bba6f682cf558b4faf053b44575e79487b985013af661e86de"),
		},
		expected: decodeHexString(c, "e38570c368a509386fcf1762c9a8847f8d73aca1f1c56dda0d5202f32c847aee749067d8483d918a07b2ea77aa2864b01a3680e0f911cd94f2ad167c44c8893aadb7b9fe949e2de0179103387a11e723aaf3423b977baaf6feeb1af10728eb6df5f251602d189d214ac14ba04e992c7c835fb12b42d1f984225c2424ecb19062"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_4(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ce346c1b3b95aa2b5b86152567b769639240fd6976642b01af14ee4d6e81e7f3"),
		nonce:                 decodeHexString(c, "cac74cea92b26f496a55d55a4762597e"),
		personalization:       decodeHexString(c, "d8d5d383b0ff965dee00513b8533680ce9d6cf6de5e89b50dfabb11a98c0d1d5"),
		entropyInputReseed:    decodeHexString(c, "fc1f5d047237b843fc8ac2247d4e5726515112171c87ce336a96060fab487e5c"),
		additionalInputReseed: decodeHexString(c, "5c9c49176aa263521acdb52a9d7d4ffe0c48887111c15df78274445157959dc7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "548f0ce6fcdba09b74ff6b7a98144b4165c5fe2cf7e34032d445e5c276011ed5"),
			decodeHexString(c, "3438d70a60c3af31620c74a4ce09e3716bce04cd276e0577f323b5789a72dc24"),
		},
		expected: decodeHexString(c, "04c6989ab5d490b143183c3cd1d2b24775e52d80cf038078ad96c80148823a359ae66ced37f09fd0e8276da61b02eb38b893d9a40d6fb0a3bf806a57275566b366139a88d55314b3222d9f3ea2324b07712e6239326ea5edd51680e7fc0c224710efbca738777207908caa2f441fb79916b50d0e8392ac9b3e8cd9f8cf3d1473"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_5(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "43847ba36d55509fd07584eb8480251fb72ea75cd737ae180979a76fdbea7697"),
		nonce:                 decodeHexString(c, "41ebdcd85f0cd475cbd4184a72050897"),
		personalization:       decodeHexString(c, "583dff8d1d5c7cc5235187471c74c0d7bc7f066523f9986030ad69e81828af4e"),
		entropyInputReseed:    decodeHexString(c, "96c40da9c81cd3b8a99712e8777d942f89e9fde2dfd38f47a71fa836ffe161c7"),
		additionalInputReseed: decodeHexString(c, "0be251c10429119218987a371b646f0f9b58a02f1768795f88014f846037fa5f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f6620bf3f3aba75d017d9b41e8356f326cc59a2055a970e2b387d25647a8bcce"),
			decodeHexString(c, "1ac1d03cef61cc02c7e332b9be2248fc4a3ab92647089be23ac6182832ccbb43"),
		},
		expected: decodeHexString(c, "b5f5fe335a3022476b70f86252f3fb768e78684bed61997fe81782d5e0104125013b3805e9de3bd2ef43600baa6d064c13a4285ffe8f8dcf6c9882a9adee292de97e380c08a04c6aa38ba256f4e94b984424b899ca17ee63a6849e0da565482c6b279037d973a09b038d6e4c9d8e7d7029acc4940c775befc649dbeba3e95d6b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_6(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "b8e3263140ce6eec9303e7f6e80101adcf941fd74d816cc56804467b72f59006"),
		nonce:                 decodeHexString(c, "e131822644b6779e7315fea3160accf5"),
		personalization:       decodeHexString(c, "4d7e06840cd2e23b39cb43b5f6f754503886249379dd2dfa70b7d64e5f42cdf9"),
		entropyInputReseed:    decodeHexString(c, "97ea1618d61820bc1583ecffa75b497d55f3810555358d8609fa163f7b1e88f2"),
		additionalInputReseed: decodeHexString(c, "61334592a5d6a854170313131bf1ac2b663883b0884d21a1ed931514ad709e1c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "adad0d0bd1f4e66d627d61e720b35db53e770bd005191fd8afc669c27139f180"),
			decodeHexString(c, "6996831a78df3e9b566c4749f9022cd398f58098a0102df8af247b3cf27dcb6d"),
		},
		expected: decodeHexString(c, "a60797805d6c181a836344b35c79330f42711fb22e56894430bfc05647bd85a05ac3d852d3c60a1982835590d5e44ddf7bc0d74397dec7bc28b56c0134fab05a97b74b167b6717c889a348a73ad2e7125fe338a70d39c6fdefbc20079b4a16d57be976a02fe734356c19b595b79b1dad8c3581874f0367580d4a17e004dec982"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_7(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "681f3b77163e9dac7a43d42e50e9876d2ed5270339e5366c006e57d49a720534"),
		nonce:                 decodeHexString(c, "1050c6ee3ad562cce8a27ba88de4c838"),
		personalization:       decodeHexString(c, "86d3ca79e003c4e936ea660aa4d7cd91bb8dcdd283bf6c10971bd6e4441c6388"),
		entropyInputReseed:    decodeHexString(c, "440f268e476075100893298d934c152db38bc9539fd0866ceccc9204547ff70d"),
		additionalInputReseed: decodeHexString(c, "a94f5a5e1f41d9136e5bc15e4f2fe34ad2a27bf70fc98c7ed7acee8a72c81816"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0415e5dbbba05327d4c5552e4ede2970d44fc55d3e73bae3ab5c182078c207ef"),
			decodeHexString(c, "e4886219c9a7835d53a20bb1c59f3c0162560dfe9c1caff6df294619f7d20df7"),
		},
		expected: decodeHexString(c, "fbcb21e9a91d82a56c7636be7dbfe0934daafd64fd87bfd451ef3787ef7e37ddf7d5692f0232da58643d98e23e9092401a57b2a59302e106936bb957f2603e00794ccf8ccdd9bb56cd91a7b0b2898b37de2113c3592f87af7417f7388fe8c66589f1c84905e09e70a718a63ae0e2633a0982b50bae45565790b50e3cce2fb4eb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_8(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "db25d9393c8b1e945308c8e6ad01e5764172466893d83dfb0e63ce61de9463df"),
		nonce:                 decodeHexString(c, "da2c284fc7f631bf335de174dfd64a51"),
		personalization:       decodeHexString(c, "ec4644028fdea33398cfb506401d640318e54629b23b881f5351cb2b1141b53b"),
		entropyInputReseed:    decodeHexString(c, "72d39b10415c11a7d3b788ac92e3a4c312cdf960c92d77a71c62f929ca8173ee"),
		additionalInputReseed: decodeHexString(c, "37c77730e3868fc9d1fe8753cde38bf4fa3060c5444b678c2a6b1e56950f96fe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6a0db12e7364194dbedeca69d23b3ce566c0624e110191805dc059b0025c1646"),
			decodeHexString(c, "99b462ea5d63acd2d8511b377d176fc2a870b8a6a3629a20509eea2c7e97cb42"),
		},
		expected: decodeHexString(c, "90b21183e15f0f6fdd0f96c518ce6a7f1450141820c94201916c9e5a66324609fa9b1379cf9a9bd8ace7ab1c1640312b29048eabbe18f29ec7f600260ede11b8c52bb7accafa7329949dc2fb03f6b6191bfe25a3737b8fbf686aa97102bc98e3e60fdc415d9055cd783b3081cb3aff169db633e78932387fb62f7468f64cd4b2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_9(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "01aded8d1b1ccd07a8d8024fe739c339a9f0270f3774f33e13c854bc8a014f6b"),
		nonce:                 decodeHexString(c, "a16bbb4f8689ba2d527d193c54a76739"),
		personalization:       decodeHexString(c, "538de4ea01a573ccca20201a4f4f1f542c47e366b4576d29a15d4412b7b5f4df"),
		entropyInputReseed:    decodeHexString(c, "f29f76855d3306e85a65237d9c8a8b48f6fa5c848be940e6d75adca4e2fa0cde"),
		additionalInputReseed: decodeHexString(c, "3dbc50f9e36388b97984c78348362d21dd92a65bfb90c66f17cc0fd9606127e5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea9af103976da59c694288b18fa00674fafdd05effbaee05985f899f94788163"),
			decodeHexString(c, "24edbe5f94d7d010f090e25f395c773747477712e69e7238983e96b6db4450d4"),
		},
		expected: decodeHexString(c, "1c5b6984bde71cb52fad90f88225c0a7ebc17d80a4cc35b506014c33e33eea615b4180277aa78a2fd73b2d494d0296f5e4e3116c1d87af9bee0d174ae99c0e77f7fc1135ed7ec3910b931ce1d623617fafbf1624f17149278e57e4ddd752cfb04770a4b1cc48eecbe0ca1b0e370b5430b7ba8f8292bf16978006fc7d17ad7763"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_10(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "d8d9d690ab229f4716daa6965c8a815d4094eda211300b9fd23d92dc42b6c07e"),
		nonce:                 decodeHexString(c, "c37b6f8d95c2d50f54700b227b20797e"),
		personalization:       decodeHexString(c, "46ad8218fd1fea6ccfed323067e67d1937230c21894f22248151d2842c13eadc"),
		entropyInputReseed:    decodeHexString(c, "95bc0dfba4bbc8c0f9d4d6f22358e06e997e82dfa41ce0a8c7803bca23eaf626"),
		additionalInputReseed: decodeHexString(c, "10cff967925248bada91905fa4a54973e089893437bd4843554e1d8ab0f579aa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "06d81de8958708916d07b4abaa680d7700d8433211379cc83925caedc06b0d7c"),
			decodeHexString(c, "a7c2c9e389243ead18c7b0b1f5f7a7714c47a152d6170f4904227866fc934b36"),
		},
		expected: decodeHexString(c, "cc7022a26e3ff2661de6302f9b151dee3b93d72919fbfc456b8cfd29d441d0a4d57d1817f4075a4d943b50b6811e5d203c0ea94c0bb5d9a18406f9ccfc3a0cf1dca33f9e56779aa8e724a911ce0e65cd38504f181ea880166adad6b5c5b7ef3b8fd0d4134f9f5feea6cb4ee47b57e04e24535abfd5bff6a7b55a1f7b37ae25e5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_11(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "62b3c2ec89ad1350997793395e1d7b359f42876b70f67f2e926b73469ed1283d"),
		nonce:                 decodeHexString(c, "599c40a215778aa3b4e9af92cde42d12"),
		personalization:       decodeHexString(c, "e00e6cf19800e2318b6bf987a789de7bb134fbb4033ba6bc801eabaaa19232a1"),
		entropyInputReseed:    decodeHexString(c, "1bc64da7d9ae6bcf85e01fbd6395015675c71c40dcfe1e98d9ce10fd58675a4e"),
		additionalInputReseed: decodeHexString(c, "e4a8739546f0bda2ae2aca501218dd8347ab123e4e4e93dab5baf6b0527c8966"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d7b5b8dfdb078d39a9e08f0631e3a30d533c65d908a0d034dabe9e53a762d6fa"),
			decodeHexString(c, "23fb719675cb5d03f601f605bfeddbfd22410587d5c6de91a4d4cdcaf44ed135"),
		},
		expected: decodeHexString(c, "c9595d489692bb81719edd37d8ccf68aea0ed3b929e7d4fcc6696c93f3b694404a283a0d684faf6b209b1aa47726163cb7289432c2f93ad83c7ba7e685f147280fed0b2cbbaf2ab77e8714889b813bff236bc29b90770dec8fffe520bda4fea37c65a30039295599c9efce32be315d9a1e41fb8d5cb55c7ac71d955ea2b79886"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_12(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "d64c4963f25a67ad62ffabe756daa95a1ba61a8adaef8d11389c40e05ce4a121"),
		nonce:                 decodeHexString(c, "0a85737b5abde0a85737f3c8167c7442"),
		personalization:       decodeHexString(c, "a6455f85fe1fd6e3bfc2ec953802ab56ee7e8f26efa48a19b83b316a090c701c"),
		entropyInputReseed:    decodeHexString(c, "3108914bb6f0fac881452e6ec55e885db6851ba58bc720e8763871f7121df78a"),
		additionalInputReseed: decodeHexString(c, "e5aa7b47868ebb1bc4e15da69e4f146a706c6248f06ebf4c0dfdaea71098242e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "adf22731683ac2ec856840afe4bbed5c4b0fb9de7321e7a576a6d41064e2c7de"),
			decodeHexString(c, "a8aa2abc2fdeed457d4fa4420de226328c3aeb70285161b0eb29408d2d4b4b54"),
		},
		expected: decodeHexString(c, "16a71fb9df2c1c42b02b829bdd9fc399ad7d1100534d8c09ace35f2729a5471327669361b89b02aa393ed7a90335c175769f78ba17d77717bf72de6473875674aa246b87754fb9d115477a09e7a31088edd7a3e604101979626d5e85440cafca73e7ef8b4f6f92e1d629a4baa41ed089b4819d495524965f9c312517ee1bea0f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_13(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "74d370881697b0eb04eca6a4bfef2c522d49fc7517d1181512a64ba10c407201"),
		nonce:                 decodeHexString(c, "348068b14768c4ddef587f26c1baf56b"),
		personalization:       decodeHexString(c, "38203642ce3e988a11958980a5c226a9c4a5db99cf67bb44b042343d643e2cfe"),
		entropyInputReseed:    decodeHexString(c, "6a7ff80365d99b2567c44b43ec55b932217dbb1108f7c75ece8b87c30a9d8867"),
		additionalInputReseed: decodeHexString(c, "320854c10582b97dc7bcf4cf7cd9917521c2e73b66df2fbd64fae889288b0cf7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b4de444e8edb0edd0442f4c295e109386b6c8f36a81f8590078791e5dc12d81c"),
			decodeHexString(c, "46dd82993fecd021c7817a4d7ef179e5f92bf7d1059f150a44de65b28a72d866"),
		},
		expected: decodeHexString(c, "e16258cb5450b575ebcbf65f06cc5d563415305dc6dc9e82693ad0952b3f4d5f2ba7b2a0cc6d8cc36f4da2327a9407aceebf0b755eb6d9fc9975e7ad7a037f945fa6eb049a5c650bd50f47162b0ddc858f38d44082bfc8cb750b2e13a009f9938334415d83adddb1725911cc1da2c65eee6d272e81c0c705e55c1eaf18755a33"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed47_SHA256_14(c *C) {
	s.testHMACGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "3293882be72b476a903121688dac37ee9aa6205a7f3e59313eeba1b225513cf3"),
		nonce:                 decodeHexString(c, "2d4ea1e3c303b275f04c1778f3f1901d"),
		personalization:       decodeHexString(c, "50a3828e033f47574d2926b7c7f9f51850b3c0aeaa4018c2feac5f67e80da3b2"),
		entropyInputReseed:    decodeHexString(c, "faf897a18944a8c693678a4fca516ed747ab7cf801441649b3fe2b9ae5054b9e"),
		additionalInputReseed: decodeHexString(c, "6367e1c92948e61dc52fd5d7bced68fa573b501e63b9c063463602c4454e400b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "44b7f762ffb8ff87dabe76b04e739528863dc8703f4618013a12564a88beb069"),
			decodeHexString(c, "8239ee765b26250756c9d5234adc43803cceed8ce94f920b26ffde6bc3a7dd6c"),
		},
		expected: decodeHexString(c, "50645da68bbff48add4e22bb6f378417a1995ef32f0100968615fc1703ae1d4b0be5a2f1c6de76595dcbe572f18e7f2e38acbffbef4358bfe3d174896b29c241ee1b9ea8a233a1c2edd21af868cd7ef995e133d1173485cc15ce0e72594317e3dbc4e14ad0edb212dfa2cffc5ab56a830b188132dcfe50fac399b30f90d97d06"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_0(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "a0c341ddf73d9404177a5fde32cbe21319c318f35cc9afca9ad41a3b06e13491"),
		nonce:                 decodeHexString(c, "e843cc6afdf2bcd00ce77ff06ce3d8a5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4772c46baf142e569ecd9131d6185af3575bb62a41cb646bdcae8a7a9fe60cc5"),
		additionalInputReseed: decodeHexString(c, "b83491ec1bd89f3fc84acf1aad6fbeb8ef6ab949f41adc6d0dedc53722c171fe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b76cec3d6300ecc4a02e810296c7e70bd9b4e7121fc5e971cbb94337980fddbd"),
			decodeHexString(c, "2a25cb0ecf913749ad46b585c76097739a14ca7b59f1f3ce4f79bc8a4afd1378"),
		},
		expected: decodeHexString(c, "98c01d4527fd131cc327e9632104d9eee10407cd73ab607228d37b9b72ca2c987aa794804d505d072561ccd5016bd4189ac9e3db9187822877dd533347b5d2071818bb7683312e1e8806e9b73b021777f7f878bb7d304ec58ce92e5e36d3d05a7383dc77f3fe6eb84b615f3f290bf8a43c34ef5478a30a6ad616157c9d7dd046aa66b522bcef61c9d19382c32425d38ed3fc049e73035af1e8b97388de22c4dcba0bdc09fd36ab7eb3f67659cbd92b8d7f6d74b56fc8daf17068c65fb016e29f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_1(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7817fe880c0a4224eaed0da5f3962727e4b3be567021d37d3b6d4cd779274378"),
		nonce:                 decodeHexString(c, "f1cdab91c4e7c1433dcdcd0afbe4b43c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "32a2b5ffc520ac3721bfd5352fed023d04439c176288521319b5e315b6e5e85a"),
		additionalInputReseed: decodeHexString(c, "c7708c25003e6587fc8c8116c500d37299f5d5ffcad3405349351d4fed623874"),
		additionalInput: [2][]byte{
			decodeHexString(c, "45f88f2df43c4b9c3d829b7cfe61904ddf658c16043271f01c5f06ad3ec7bc32"),
			decodeHexString(c, "883cfd717ad8466035e6d3f3c04813e21657ad62eeaca449785aeb0836ac94f8"),
		},
		expected: decodeHexString(c, "6e0633c532099ebf0b10d4ad35d78a48b82fbce37913e655484ae40e29772a25630a7ab37f1d0ecdce27773a2ce88521b171432c07c02269df1822d2b6cde0d9f768375d9c60e688f497fb7ae262cdd5f7e8b84b84411d619c36529b41576ac456a240ed94d750fa722db874098ef7200c74c3234a3e5f21fcbc2cb5d50c4297d1e70901b8936964ccd242098002f4c8ed7dbf49de8c2a924c737f248d46ac1469f676377ca52cba12f28d9b534504d6e8423b5404b7e14de954b4225bb53551"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_2(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "f2bb6edec000982bfdb301d1d88a23ce840e496a4f595a662e4127571264f1d7"),
		nonce:                 decodeHexString(c, "e9e283c567f11e7e266459fa781c6fd9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5339015836ebd69aa42857010f44e8a72b81f501c96931fb491dc1192f6f6a27"),
		additionalInputReseed: decodeHexString(c, "ecd5ea33146cb74a707eedb8df881eddb1797cbb7b16c16f8d741d23795774fc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d410d6e2e848f2241ee45c9870064ac0217d97f59a8e80f6b5107ff0e4240bd0"),
			decodeHexString(c, "8a8c58fde3b8c9711757cb17e46587d0c5187f758d64478e9968604af0367136"),
		},
		expected: decodeHexString(c, "990b1f68152b3607f3011f8d04ea33a3e8fc479c8a6eaeb589133569048fe1284ab44d51bdcf4f0cd4c8d64f4c6337cdbe5f4f497ea90ee4204845bebca2ffde7831cf49892829322644c4e20a45a9885ff619bdf5e79ee53c26f47072e20a46d2b108d180d6ba5859a696f472bfaa80b2fcc7eda374a3f91ac0b06c9f13afac1af244a389cab4489d0ee04a0598f9c5168f39b40e7127dad9f20d69ede6cae7683b25ded1cf9d903541fb4b0a804d7c163ab068d22949f28a8f4e853e691e51"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_3(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "6968f5b87019b4cdafcc9f3a89321f25ef5d8d70fd0781c9e3bb01b3ada18c8b"),
		nonce:                 decodeHexString(c, "61d9142b639aa75f5f9d798ca538475d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "09b121048e8a0cc4b2286efa12fa8b4b959938261a1ec8e607526b7a27931191"),
		additionalInputReseed: decodeHexString(c, "fbe6b8af6685422eeeafc32327a99104b45ca5602513aed0a5c6235328e8a7a5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "04f137391e27caffecd4413c775117feda27cad839aa900ff2af47c700034b08"),
			decodeHexString(c, "f185925cc180e556a0703a5956ab6d846121f9d9cff97f65bbed3bc44904cb5f"),
		},
		expected: decodeHexString(c, "c8bbe16192bda74ef89d9859b248ac658896bd40b5491c90e923cab6815ec3d2126c62410370f5f44e01fbf1d1653064aed835604d5fd0633c8b71cdde6c831cd91d69e420db83e6d5d82c26c47a11f2ede616a2885a884835cf2142a6ae4cabe989700125df12902374bcce04f3fd78f034e50398d9bcf463dde6796627820c75a7efee82fe4e16375af57ad3154973042e0a92110ef745f468377f6cbec5fa1a1470eac80408f8e96d37248b100ef8476c2a85cccdfca5696ffefeeecda9e0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_4(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e8e99ffcf08aad8e50386f5d079d79d3db783a74165c6126b42b3140f744a7c7"),
		nonce:                 decodeHexString(c, "23541930c8c772adb62981dbef8d054e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cdcf1c30228904bd7ba31798bfbbd64757aa251ac9a1ae8c20a050670feac59b"),
		additionalInputReseed: decodeHexString(c, "546e04247d6cb5212a57b62f99e1cca767a5768cf79296f45f0db24732ba6368"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fd45f66c8dede41387373c38674605f3e075c9b7cfc66123a5478b8f8e3ab276"),
			decodeHexString(c, "39911a79c6edbbc805a50d2aa018742094177a8e216d647c64428c00169ab2d6"),
		},
		expected: decodeHexString(c, "871577ddf34b29e5caf132aa82e1d2f1586b76e39aab62acd02f6d4440908a772ac5f6fd48c5f55f1ebe0e76221ac46b834a8a4f5dd9958721ee053ba3aef1574ebd980a5da6a94693662717ee548af0f921421d1afb814e4d1799d351889d2a1bdd57570a913e428e6613b16e158c1cfed038f6578920d60db73dc10a40da9bc363a0206b4e7e49670eccea866efd9a05bc237042cf052f2a4140f9377e3c6792b88ea06323fcebb99c643fc1c3653758d6866cdb148837fb0fdf77de1564cf"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_5(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "c7774e199b5a8c0b306ca236163249044ec2153dc89bd1c1459cfd40cc6069fd"),
		nonce:                 decodeHexString(c, "1921837aaa80f4dff34a97b4dd7e94c0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "143efa24f34924fa52abb4275a63cae7048a7fbb8b76300fa8d109f9561f1699"),
		additionalInputReseed: decodeHexString(c, "1f437f758512071bd23d091c2b1ad8d51b99acc663e1d037fc5421092cbb1a45"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c622ac1071b50e4f899e4760cfed476adc013b6ff95c9b7be671f79cd2487ba5"),
			decodeHexString(c, "f973f45f75fb0d68e0bc5a723a72e722e6c8f3fea08d785141c78786da5101c6"),
		},
		expected: decodeHexString(c, "9475c697af430e94ed396c707bb7d5ee5bff18405131a0e898ed38065abc28ebdc1dc33d767c4dab69c846e3350bb414ef2d43798710958a6ff3e6b55de93c2ac31793a1dd4b07379e364ce72553323b9bcaa8839cbbbd347b4a82010b78967219b84c6fe9f9285ff741a0036aba6bfa7dd0d5a4ffc1936341b0e2a31082123b6d2af6740cb3ff43bb4a87ee74ef7eb06030745453d2ec225c8f31d214f1dead0f29af01ebfe90d2f8a8bf5e031242ebfcbd136b3e3db1f63a46f69a26d6159f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_6(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "898963d0237c58e4b7b6e894ab271555407d3ae8c1c4599f5f5490ad5701984a"),
		nonce:                 decodeHexString(c, "6e5ddd58d311b547f6fd2d4d67addb4c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a6b86839b83978baef72b8cfbdd0cf180518af0e32e52ad4a73db460af05e187"),
		additionalInputReseed: decodeHexString(c, "cbe5f14445cd310aecc97113232a0121ed2082f2c4152b4be68448f36c91b1f4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "efe0ef028e4179ae10b378bcda3d96056ff21d94404bfe022b563cb6690ad563"),
			decodeHexString(c, "98cf6a771c05f904b53ff9b12709d20bc3f1821385cf27ace7a4a584e73866c2"),
		},
		expected: decodeHexString(c, "5682b6bd667b45dcf16527a817852b52a7f5d0fa8c962f3dd3af63e7e71990da92b75e9fcf5de59b1565f525a734e978ba74dd80fe89a2e527960ce4207b9ca514d933676ad93e6dff5d57314a45889637a623eb7832854c3897faa511ed6dd246d2b8280e7d0524647d4bf7715b5546e0a9a1dec246b1680adea2eecdc354fb3122654102cd0bf94ac9333caef3fdc369e7649653352739783d048e08e8d231b332fa1558745e2ce89dd76d1dc442a71dc3d5eb7d3481558941e261f989b097"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_7(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "426bfdd4ead656611ce49bfd9f213843c194bb6863534ebc258415148f457e6e"),
		nonce:                 decodeHexString(c, "685fcf539922aade348a2af678038610"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "af676246632dd70920d661518d4dc5221381b2fbf1c2f3bfed01cbb930398095"),
		additionalInputReseed: decodeHexString(c, "971785b18e244d03e25b9a80c2c2204f5bab6dcbcaec986342450eb9b376bb5e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5de582cba43a610866578604c9f2a542831f41c277d50b324f4edf1e2e5d498b"),
			decodeHexString(c, "46e4c325d2c45e00a3c17ab35115b5370abbae61337eb2da4e6aa91f951f55e9"),
		},
		expected: decodeHexString(c, "f2e8be2e994b74a4945fedabb167778523865ed27826f9c26ca2b49bf32af1626ae62bfeaab13e9bc52a081f365062a5cdbed0872f6479cfec5a5e79171d97ea898e8d10ed71203882d1d7b7d28c5d59b8872985abc628e73622f616c4c0904ecb1e4518be8b4398662dff8806c3f43750cc9be95aaac2a4730f40323d63af157d13555d043c4d0d7cb53f202df282fdfc5544a234f71121e893814f4bfa926351c5e9427e90f1117a3bce7a16f0e08cd06c3d7c458f9d07ca3269e015733aa1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_8(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "ddfb3d1d93e977aecd08efbd71dd48168e67658d93596b742670ed7c8804bd3e"),
		nonce:                 decodeHexString(c, "730d34a80ca1fb4ad2471ee22461bbda"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "670337d675a17721ac63c3793153830a26b1871b316a3e10e49c555f44719577"),
		additionalInputReseed: decodeHexString(c, "390c53a5ec1db52996eb042f9a76e45f0bca76ef6ea31b4642f00658342e601d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b5436e880c15f03c3bb846d90f3ee5fc5bf5393865a112a4317d724738f5dd25"),
			decodeHexString(c, "d193f932af858698ab086bda36d04dfdbfaf487fae4298b38fef97bccdf63f38"),
		},
		expected: decodeHexString(c, "bdf9e1ba1fbafdb8f4628098aefae4810ee7fd565d0d285ddc3840f8e24a9985c2de57edf5a511079ba6c952c95c626e296fd62f3579ad03db536238fe69158317c9c26d373816343505c60a48e07a00edff8fbfef0ce69ed176e5484d056af02a270bb6fce7bae0b223bfd98ad359d53b159f3295be3fd630a568d2363121c7021ec23b14693be48f5b55e06be3d729c2a80948194b1266da96317bc592362809409a7666d5c168125b99de26da741f17ca52d63685ee8d8260d45764fc78ea"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_9(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "457e49a71da81a2a08bb19b97ba8e62ae4b5ad4ae64daf758a83a75506f92511"),
		nonce:                 decodeHexString(c, "49b2bd7180f69b9217346f8165b7cd8f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "100e0b1066e2877f5e5da21b037c2bbf178611dae627d9beaee64a9d0186462a"),
		additionalInputReseed: decodeHexString(c, "c3181f694695c21405588f600ac33871b519e2b8e3b876424b32753da483d6ec"),
		additionalInput: [2][]byte{
			decodeHexString(c, "68e717410f99ae13712175e402b51058b7625b7da27224414b472f9622d163d5"),
			decodeHexString(c, "f2cf13d05e853a13ed47c5d0eeb9c0416688050342f0d345ac1bb21d5ae675fe"),
		},
		expected: decodeHexString(c, "fc23aad02870885394ca831b72201d76cf736f08f6132b12178e8e3b016fef8d3bbb849e5d935ab732054ca701154e7d3e87d1b51b7392ccfaa19c4ad28638c67bd149ff67a93c09ee1fa5c2ef7bf9d40844baae79169e52e9990c93f099e036b63b000fb8ea67a13167b045c8f9163045beabe0575fef00b89fd90390b0124961698f4ad8884a1e1faf576de7a179c03221402279b31c93136b9436f9a07b5a67b1c199e7c6cbd0b5f53ee5bd0ef845243077c6eda0e021ac9219f6db5ad503"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_10(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "79e96cc8e77d8fe72cd6c66becb52753cea28bf71680fa541f345b83be79973d"),
		nonce:                 decodeHexString(c, "b4081201bf23c94d1828e9ca1e825ac1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8aedc5ceb87a4c1b0c333c88d97e0f12d61b338e5ace5e15f71283d31a1ea90f"),
		additionalInputReseed: decodeHexString(c, "4304ccb2666b227c92e2b00659ce0b34dbb53451591e32914a60d6e6cbbbfdd6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d6e74777c02252b0613357b9a582f4d8cd7e436daf1674a663561b62d8ee7143"),
			decodeHexString(c, "0de123897d5f090b52db88e4c0f9fe736ccf27c134b0f5eac61b200d15e07986"),
		},
		expected: decodeHexString(c, "55a369d136e2d903c179472eebfc45ae236994669c46cd318401bc662f38a1f714f78ac9f15c819d2bd876a7af51e6caecff3c650a3e661e5d137a354cb16aed5b1554545bde08c10baaa5bce22284083b43a6dd9941a37f1a18929ced61181c137e9e38c79d107465a5a12f2a2f37788c8e398ac48b2be944d6dd3562c05922c25569c26a1203fdd244920e6c268028dbcf6807c05bbf1559969981467a479d7117a91f210118c1159749a1dbce4d8a0d5f2f8232c5152cbaa6441865ac3a88"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_11(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "b37180874dd4a7e08b1256966ed5845001b0773b5136956dca7194cd12a9d9e1"),
		nonce:                 decodeHexString(c, "f1dd35534f579307de11c1e64875e937"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7081de3095d83ced0ea3df2ee8d5be4daee545b431dc908bc10efc04db16ab4e"),
		additionalInputReseed: decodeHexString(c, "d3c8aa88cc8d5b59af3685177cf3826cd675854deddcb9b501c40c4288cd9cdf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6783f5bd86fe178e6a4d303342374ed32853925f143a5ad083c04a9c298feb99"),
			decodeHexString(c, "4774e5d062eda04b680d717f652d87bf5cf635f597287b76fc35e2d5ce593d08"),
		},
		expected: decodeHexString(c, "e478d45fd3eb6f4c398a0ec84f93ea6861f00666753c143506c5e417100077e2c4c9ece450d98c9372d68aeffe9e57ef9176d4084f9c6d02479b516942dd4792a90ffe1e4e49a8156bdd872f1f05facc06e71e581f919cd94fb97208515ba284fcd255ea6f1d1ebb7d351e1ceea1cdee631072d3fc3f4ef9d5fc57a9ca98c88b81003d858cb5be0a3520c34e52d3beeadf91388ec9a495b1fc7ff7a6799ab0af211abf52c15467274c04bd104df14033df000d8624acd253a6c954c0d89b7238"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_12(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "2779f20c02d086d30d53dbd6e7396a35e677214650e39f2ae83077fad70c0680"),
		nonce:                 decodeHexString(c, "05faef347e7f73efb53a92f0629e012c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7e1246d07b4e1bea7008dd8ecc7546e3f0a6e0e950e083373fde3fd994e114a4"),
		additionalInputReseed: decodeHexString(c, "55edb840b85b391d4f1940be52a3e3824119349c780811c570d2c88dbefcea16"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e83ef56f09f82af4dd91a0b887d3f182dccd973435b74b7b3c432b39a61fe720"),
			decodeHexString(c, "eb9f30f2886d0486c5240f43104e426b36aae0006c4b9c64dab1bb713bcef7e3"),
		},
		expected: decodeHexString(c, "68c3feda06172a191184e0bb77a8f3c9096048bf71ed95b20cba1b1726660900d7d9f97b7ac648c76b50b921c28eee3d401ba81c8a46fabf82301fda8ffe9d76bd93cb275638f7c2088cfde88620661eb844cf953cc141b31e946338a0203c8ae67c2af1330a53251818aebef893010f16a519fcf22060a9aa9c597f3409465cf3c9ccf753db8c0bd3b465b028adfc447e37b5129c17ae9e8bd01f762662c466491fe57384825c163ab8a26d67efdda01b053c19d3bc6545c3661f2ad1df1e33"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_13(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "71c9fb2eb8cca98860f955a8bb3669c70b6f5374256da23fcbc4ffc2e90bc0a0"),
		nonce:                 decodeHexString(c, "43b8ecbf1cb0c7b65a2cb7a47211541f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2675512138964d0db8074727158bfb4f0d3c093f1e2c2bf697a48c2ebd27153b"),
		additionalInputReseed: decodeHexString(c, "13b1d552e2c8c84f66961ac8c919166a248bc62fb896cff0b8b001cd7e147bd7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "27d626121ef579d9969809762c77068e4573af44b6e947a2892337a11404c133"),
			decodeHexString(c, "456ea206c38662750af39aed5fe0a39760f4dac85b83d7ccbc335f53a160a0c9"),
		},
		expected: decodeHexString(c, "464aee8af42ae68ee776780113805cade246b83a698c34bf4c92e5d81f28829ecdb808884bc7d784397f2b2f8c76a2e3517b53bcdc7257f44ec9357d014af4e8ddb44df98da72775567356f363fb85885f8f22505e5b5a80c824b4a0bc48029e3419d3d2f161b1469cead730cb123ca8387a2c8276635a91d0dcb2220797ae2702468587ac3a70b927625f3a6e2980d6fae6fddf4b380ca0d91eb4aee37b98644bdeac345f49523a241ca392972da02d70364f9401c21fcf39eeaf414a09fdfe"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed49_SHA384_14(c *C) {
	s.testHMACGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "c9e54bcebbbdf44051e80b91cd10c87dc24267923350b6770406551a5069ea22"),
		nonce:                 decodeHexString(c, "55201f3f15bc3a2e4caaf0b45510f19d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b299a41db8d56ce993ade44323c455fb1a3f504124c35a9e907d9765e810c939"),
		additionalInputReseed: decodeHexString(c, "2819b3ee279d57145ea1020ebc77c46031d69524a843158192e081f2ac91512b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "269ac853ccd332fef61330af7e80a33791ec44b6cbb83006e5ca0670597b35b1"),
			decodeHexString(c, "fdf031b1e0a8016bdf6a6ebb533dddaae1a3a5b14b9cf52a1a8028cc720b10c4"),
		},
		expected: decodeHexString(c, "a1c4c1d6e72dae5e4714bddf4a1cb8d01cff8a3973b12022011270c0de7ceb85ffb6a6aedfa54d0521ff33d748fdef8f29c52c7c414e692a30dfd0013776b58f58421605369c83d4d891a19c782a2d036f9638aba9e24b0eacdee87d4a8011699b638c287f0a12f11ede86a946be9c00d21a31584a2a0da536dcbf86e2df63be9a7b771999c9c7a6b748de713b7da757de2d731a8d980b75136b0fdc75ca7aef47cd36bb9370c5ca0ef81b9a04fdc78698720f68e5d54e1a777e557a1dfb4c22"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_0(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "c4868db5c46fde0a10008838b5be62c349209fded42fab461b01e11723c8242a"),
		nonce:                 decodeHexString(c, "618faba54acba1e0afd4b27cbd731ed9"),
		personalization:       decodeHexString(c, "135132cf2b8a57554bdc13c68e90dc434353e4f65a4d5ca07c3e0a13c62e7265"),
		entropyInputReseed:    decodeHexString(c, "d30016b5827dc2bfe4034c6654d69775fe98432b19e3da373213d939d391f54a"),
		additionalInputReseed: decodeHexString(c, "a0bbd02f6aa71a06d1642ca2cc7cdc5e8857e431b176bcf1ecd20f041467bd2d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "93ee30a9e7a0e244aa91da62f2215c7233bdfc415740d2770780cbbad61b9ba2"),
			decodeHexString(c, "36d922cacca00ae89db8f0c1cae5a47d2de8e61ae09357ca431c28a07907fce1"),
		},
		expected: decodeHexString(c, "2aac4cebed080c68ef0dcff348506eca568180f7370c020deda1a4c9050ce94d4db90fd827165846d6dd6cb2031eec1634b0e7f3e0e89504e34d248e23a8fb31cd32ff39a486946b2940f54c968f96cfc508cd871c84e68458ca7dccabc6dcfb1e9fbef9a47caae14c5239c28686e0fc0942b0c847c9d8d987970c1c5f5f06eaa8385575dacb1e925c0ed85e13edbb9922083f9bbbb79405411ff5dfe70615685df1f1e49867d0b6ed69afe8ac5e76ffab6ff3d71b4dae998faf8c7d5bc6ae4d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_1(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "46c82cb81de474ae02cccfac1555d06e5dc44b6ef526e0e28356ffc8bc6c0fd0"),
		nonce:                 decodeHexString(c, "628d4d942834b94fc977609c8ec0a639"),
		personalization:       decodeHexString(c, "5de51e3f49951bab36460724a63f046e75f6f610be7405f55016c93a59f1890a"),
		entropyInputReseed:    decodeHexString(c, "2c0693130c6215d55e37da43d67def719051e99871db68128e245217d2aa3230"),
		additionalInputReseed: decodeHexString(c, "5dbb13f5b4eb275cb757513e6b8af6fefd7c9c9e0f5304fdd9b4c0968458f22b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3ebceff3232e75c6beb79d97c78e93244a257f0772f82e234518c50e322630eb"),
			decodeHexString(c, "dc64e5a1fc7b32f0294db138dc131946e5602266f4cdf00037ffe513a44ff83c"),
		},
		expected: decodeHexString(c, "e3480544036a3684a88e23ff41a4bbd810f827021ca45e800aaaa36ed0b9bffcbbcc99a1ef1f1528b4bfe39514c7a390ba132d1681138c4b1b9f1a0fa1758837dde35d0f6c38683ba47a904937dc5ee3d3b75f909e5fb6311c6cda5e1121edc774e66092aa1dbde83e4680ff95c0bbc2946aa4d46770f247caa7b71bdefac9641ee99700fbd1e560f9f7fbd462ede64e009ced90c44c6ff03b890e16c79c7b8c959a27defa6f062168891977c637ec22ecfe20601d499443f1fb0ecc7d9505b7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_2(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "df8053def0260ae71f67e197ae8b547a228e9b67ba7909fc1cb3adca51058b15"),
		nonce:                 decodeHexString(c, "f6d5951f0b60c972d139b75dc44a3680"),
		personalization:       decodeHexString(c, "26890036a9b17d8e805c38568630e1c196091faad546ba8eb976f3aa031a8905"),
		entropyInputReseed:    decodeHexString(c, "127a84799fd7672e429f20876c175d135e5f894edc7a4da334eb8b73a334be61"),
		additionalInputReseed: decodeHexString(c, "40ea6bebb0cb94b7e527787e17ef9f7d3efb889fc1e47e49893ac5c4bba988c2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "090271c307b43b951c20ad3f081d2838df0936a4bbdc5eb6f2e16b1db482b1ac"),
			decodeHexString(c, "c203cc1a3af668e45653bab6b1aa39ba0669491a06d00cd39c97b777a8bfd4d7"),
		},
		expected: decodeHexString(c, "0d68d903c85c0172419dc9f782c5d67a0b3367d13cb2f734fed95c7fc082291edbf4fa83354c6588227e40bbff082be2dd276c264823a8f31ba18b00955d7a1fd612a2f37d824bc82cdec972d3f8384dfc78b51dca61e815766c877ef3d2113704c805a250aee7b55b849af048feb3536fe73ec4f0bee97006881d5eed8ea38ba1b8d16a3bcd91fda749b77d688997bff09f104a2d8cd8e133ea4aa764b237787358dadae1c25092cfe09f79efeb8eb6e20c39cafdceed90e602f221fe6b1d69"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_3(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "b1a1b468e1d59716a23fb028e295588f17be6a79e589027237681fe9ce354860"),
		nonce:                 decodeHexString(c, "b1cc33918a64c8be171e595ee6a3b1ef"),
		personalization:       decodeHexString(c, "77e5a3eb6ab38419f84b57997627c6bea79703c95bc1cd24ea73eba2edbed540"),
		entropyInputReseed:    decodeHexString(c, "46c2ef21df2815528482ab4c7a32449b97ac75a51dfa1c7e67a763f17e97bcd6"),
		additionalInputReseed: decodeHexString(c, "52aa0be951816d21a2ede89f53913f6d5d70cc580a1cda8a49f8e49a6befa909"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5bd8e4ac61bdfe752b5a66cf2e048e812a8aeae8e20c3c8c43f31180e4b18303"),
			decodeHexString(c, "af5eab21e4dd9443b1b16f40413faebdb0e086991dd3c53c8a51bc434348311b"),
		},
		expected: decodeHexString(c, "d477404bcaf0ed53788354705f0fa9f46c4e2bef2cd94932b614b3c34e0b0c7c28d7483075c9745bfbd4e31e587fb1db77d557fcdfd3fea47da3f01e42635ed3fd87cf6c98a2f20aa833a1bb74a15b158e47841cebe53e4d5d8c85cae78ade156e025a7737aa9197b122e73a29ce0a881c7adc8ec228f4c14e56c722acb0165b1595f010266151801812c031efcee4a7739876777816af8baf4d29496912a012f1f33c07107b2db5ebd681722dfd76f3a58e9d7426e7fa75e326eaa416c5d820"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_4(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "098b8c107fbf943bcdd2199dfd15f130a20d518e95dc81988748e1f0ecc5c45f"),
		nonce:                 decodeHexString(c, "74622ca2940807df86fb05f0aab47275"),
		personalization:       decodeHexString(c, "220bbf23394c3cef156f683d05739b76f37538a0d360600bd52f0076425b5f5f"),
		entropyInputReseed:    decodeHexString(c, "25f19d1d3bda1f70825f3e1fcb18d29e8e410616c105fda9324f4617af39f021"),
		additionalInputReseed: decodeHexString(c, "af88f076ab39db1dd0e7002bae187965cd144382a3d1ca7b1ecd65d346f7c090"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bab9d09dce5073d11fcdf9539501dc998b6fffa8a0716edcf583a7d7385ff41c"),
			decodeHexString(c, "caf8d4e10513e5ceacad6f9f145a6f79e5c245aed4965ae85e2e7c5914f97510"),
		},
		expected: decodeHexString(c, "f556494b3849d78b06ae75571f0b9c8c108885fcb041dbd7892bf639d8ff6c82e19e8ce2d5aeb58e8b964ce4f75976a0a9c7f3ec8373b83150b88d6c58ff9b810124d4ac62d955aa64d194afef2f77de6994642ec86cee40aa7a5591e99a63edbd8bbdb22fc3c2506beee6d507fe34fdb4d4f525dcbe30b5747ff920a13f9e230899ffffbc5615e994ee96a1bfd8890cf607379be1a39d173662d0967c9dfea33b14d78cc8818c2a1956197f85e92bc11133ac4f7657f2db20eceecae8ca636a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_5(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "f54e9df92752d30eec01c3756d569bdb39abcdedab80b0aacac76ab406723f48"),
		nonce:                 decodeHexString(c, "0bb359a5fc6c7aeebb6719ab44114a75"),
		personalization:       decodeHexString(c, "b69f77d5a08850a13f8e6d06847c4bec181ac0f6b720be3c06c0b67d44843c6e"),
		entropyInputReseed:    decodeHexString(c, "afd340af202be3ca30e4de794b826237105202dcff5d1291cdaf266673275825"),
		additionalInputReseed: decodeHexString(c, "40f14c3340e7092b898758ea3c36750943acac7fbb6a83f0df3392f7936749cb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5bcfb0786c447675032d2a32b304f25737de59cd07c84d3875c45475b15797d4"),
			decodeHexString(c, "656ab204e2c1834f346d89c37a30164db414827d83ca732c71ec71efa8182c28"),
		},
		expected: decodeHexString(c, "6eb8f276a8ff516f789d94d997f33c2e40b227776fae0681c83fde659462b72d37cd48c95899530ca072bf2470986ef29dfb193be7ee9ab3f8cde2317c9bf02a5f901ccb62bb665bc3a109eab7e3910888a522c765eb49b11d1ad0fbcc45abe3841e9bb4fc0e73188497cffba54f3ff82260767d0f70ea1668f45192e6719102e75aa5cc43084c50bdbd1ba491bb61ee9e5175092c1f50d56bfb68977a567e41c1e05d2d1523c198ded737079131fb12dcf847219d71fbedb5659411d7aff2bc"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_6(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "2cc330b34c976c859936c21e2ad88bb60ff153e41131567f58ad34bff5c9cb41"),
		nonce:                 decodeHexString(c, "8939fed56356af7fe215986a5d0ed8e9"),
		personalization:       decodeHexString(c, "bf531083f35066ebfaeabd67b82d392ef6b121e7d9603a5407c5bc74cd596023"),
		entropyInputReseed:    decodeHexString(c, "a078dcb1d3fcee6b99714eea3bfcefb37a344a69d414965539ddce9df239be2f"),
		additionalInputReseed: decodeHexString(c, "51f223dc461ac2df1c4877f65ca876d635d50939fa9dd586c176d8ab73c6d605"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ff9d6807d71ded1305d9e2cdc811dac2d73746b001b53ec8a5509c4ce0a07efa"),
			decodeHexString(c, "f5222c8966659974dd8a7244d2cee588b6c9a2700f338683fff9ccc45b6d3807"),
		},
		expected: decodeHexString(c, "981abda0e405c976435ec7f938570d911e5bbb32add52a8b94e528486e9dafae139eb15cc2b56fedfb9e4b2d10dbcaa5e6ab985be16c62b9b75a037684986843a7a0e3baabc34859253df2a053dcb0352a0554fd2d4530de0251b1b852d1d3b6e08548e215902ec8dc46ee89f3fc262c7a35aef8216b3def65bd56f0482a18a329f96863afd951307740fd8653d333f932940e2a87523afbc162c5c1d2bbe16f33a4b0ee0ec75bcfa6aee6d8348265938738be638f78506ab731d3e9ab345551"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_7(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "b4e5aad9bf4fb03ded64e4bf40ecc6fe2214049bd5889a5aeea0bf47be8670d3"),
		nonce:                 decodeHexString(c, "29e6ed04538dd6d207767c367406d482"),
		personalization:       decodeHexString(c, "67826d2bf9651404d5df4db84ea64dcab10697ecb90c68041f421452109af3c3"),
		entropyInputReseed:    decodeHexString(c, "ba7ad29231fd944f00b8d9b762935b93819ec62e0ccfd48f619ac40c9c208304"),
		additionalInputReseed: decodeHexString(c, "67d6983465facf33369eebe0be12dc65fe736969e8f41478e44ec25d461e4435"),
		additionalInput: [2][]byte{
			decodeHexString(c, "65f97c99140c8c9ba2ce37710b06f822cc0eaa03589157a3b575bc9c423afc3f"),
			decodeHexString(c, "19c37886d613d24b0592ea0b3a465ec8f8a9229abde3fb5e0122032e1ac8dfc5"),
		},
		expected: decodeHexString(c, "05777487bc152260a852e1b31a091f8e929ed22d8a652a77e4391abce7efcf0570df3d466d56dc51ef14bbc55309c6831655ba97c6050e563083fd1f2fe65b43d0cf8762ef6598d967b473b68c4143287f70d096a6ea120e3c07f2a95b80b393ffeafac2d0309d349bff017a49b9ea547a5776b5c38b9e981ed0a4825853cafcdf0f17269b9df6189fabc30388a383e3c28949625ef3d59a2c371ef416ace8658adc0e0b0104f1acd4b349b91b660d64412168d3c9e29680a5e324e4d0ab9258"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_8(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "27ae2120824f3d416bbea1f987440c507a4f01fed08a1be27e6ec16390c92c4f"),
		nonce:                 decodeHexString(c, "8dab04203543caa3981373fb991d8553"),
		personalization:       decodeHexString(c, "cd646b0d1971f249f4c4d1eaa17e60c311d813057e0b71819a503aa41e5c6b21"),
		entropyInputReseed:    decodeHexString(c, "40c29baf439f23bfb599a5eeb95ec2059af24dd86c0825957ea8392ce3d980f1"),
		additionalInputReseed: decodeHexString(c, "90ee2d0bf06cb94190e6505a75d12dd77c266497dc99c5f89bde60be6789099e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d82b50cdfaab9b5d23fb6618b59dd28cf1a83c77ff2993d9f1edb87ed7bc388"),
			decodeHexString(c, "f7f728d8ef6af8c5e77cef1e837030a6aa5c12bc81423b0ecb07a2db95a32a28"),
		},
		expected: decodeHexString(c, "4b25aaf436eb600a103d3fae8e301d2755132b3de3c8b4c442129a88ebb3ab20c4d3a54078ecc4197994ff04bf0e460919978d47e45c7d10d76a1e63ae34624e2f64125ae1bef304efb1af688f20d8e212f6df4e11243a49177e4b6456010d784d0e4a94e75371a75c4050b27e48359549f8268dd2a2290ebde22282d96b2f38e3f06103dafae5f54f0019bfb013df39a76482ec7f878d26ef0e34c9c21e67fbcc3412aa0739e875da0e9ea1340592144eb232385fc7e605ecd10fee45524718"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_9(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "dbd5f508e8226acb957bbc4914ab13810b9b5b2b51a1b55cd4ac60f6b6d4c370"),
		nonce:                 decodeHexString(c, "963448fd323968c27d97e005b1a079c9"),
		personalization:       decodeHexString(c, "0cda5d501072cf482d3c56c49a3c929b423f6e15a3e835888b3a9873647ffddc"),
		entropyInputReseed:    decodeHexString(c, "e3ba151887006c56593eca7809b23cb768f5b3701b456bdc85fb5672a81db2d9"),
		additionalInputReseed: decodeHexString(c, "d3f38ca5c0bbcef46976c6a5965a8493f714aa2c8a2c817576cbc0bd6652beb0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "20014421f9af259892f017dd5392cc973f103d4736f3866e66329e5e7704e0f8"),
			decodeHexString(c, "686aba6c9c6c221b2b4a7de766963e4d9880676e7e6ac8e644dd273fcee519bc"),
		},
		expected: decodeHexString(c, "b720c7c56e10c9e436036fa8e1f1d1c0c0b7246c28bd36e5f3e88f988684b95a01127bc64cbcf12b9689f718baa52042b0837fea791391ee2ae42e54acc571239e5b654486a025ac25f46f10280ecdc65ed098e65e07dc3870b17af8bfd58edba026dc12b4ff04830ef132d07dcd7c62f67172caf2620a204869a81e39809db7befa25c5ed8a74b6d306c21cfd3778180d444bd99314a430ff4ef6b7061832df9b82603d6a0f646b398e7dcd8bb33a7926bdfa085a450d3de68c1e8cb2ee4524"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_10(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7093224d6bcf0915eb75360ab4bb789c15834a371baa24deeceb33f86e8bfb46"),
		nonce:                 decodeHexString(c, "f4e34325ddcbee671f9e45f7887c1481"),
		personalization:       decodeHexString(c, "e7cf1f32ba369cf5545ee672cd6746ea9a336de7039ecbb25419259eabdfa44c"),
		entropyInputReseed:    decodeHexString(c, "238993ec4a309e10d3f8e3952c840d564644062534f985a6b4e38688d2c800a3"),
		additionalInputReseed: decodeHexString(c, "bb186a460387baae27c11aa8c65d6ee003577eac47b259254a933f82ac683250"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d823535ed974b7ff9f19dc38b9494aa99f88143e3383b5a183ec00c925bdfedf"),
			decodeHexString(c, "56548af797f4a07ec42273f895822d877a311bf1f8dd5c96fd8449732a13a921"),
		},
		expected: decodeHexString(c, "159c6923fb71f9670db4eef12dadd143ee701bec9b0f76b56e9b1b8c473eecc3e38cf06c8f3b0c3d49580e49caeac0fd48da5f53d0d3e9c829c253fac4e4f09730177a63e0e759f043169e91459c9cf959d2230c7b94be168cf4fa02588d78aefbc855d55e444d671a69d274c66ad1851c56c0d880416bcbad08523cefa2fb384dd0f9f188e8a601ce0a92d42faaed0a299d6a9c86958854712427b35e73a0817193b50f3557e66d64ad80fa9ff87427b7de5b7e6312d1d9988ba77be90d4cca"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_11(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "ea96f8787458e505f5858e31bb85b6e335206f6d6d04bd9d333029193bd2a04e"),
		nonce:                 decodeHexString(c, "5f85ad152675ecc090119aff7720739b"),
		personalization:       decodeHexString(c, "ba45df1a14e23361201a467d2cfb7a3dce3128069a8a59a9a388b8e31c48efb4"),
		entropyInputReseed:    decodeHexString(c, "dbe34551ebbef10e822cd29e9ade1488c21fd9e798369d585d6f58168d509d94"),
		additionalInputReseed: decodeHexString(c, "d551272e5a60aa1232fcb4765e853de2ccec08941acc75188eca37120fa49aac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c1b34347691ae9f1bf6be396e8b49aaedb38307526627399fc10c48748c3a7bc"),
			decodeHexString(c, "722c0efa445262f5800abf75e43d9daa44e3dcee7a7528f7313ee52fca9f1803"),
		},
		expected: decodeHexString(c, "e2f873758c4e71704d8545dd1eab51206ac11dfdb00dfd1ec9e53bdc7f6b57f5209727049d4d781059b0bc4b6091c9bdee947127b8c8f03f1ee5f3665720a4f6c6777682ef1937719052254aeb97e3a17b6b552bcbc9154551a7ed41d837a27b6c37b426508409b75236cc156dad89d896f25c54467fd45f9698a11c7ce01bfb1fe171e4d33faf73a30c8992c51a838e9c0537354371bf79146a79a6d42d4e987b9773377fbf384979690b2c04c332f22567fb0921c3e33088d3b011921fca6a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_12(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "92ac19b133398b7d8ddfba3c6046421b3618923241097b8f68b6c7430b6d232a"),
		nonce:                 decodeHexString(c, "e9ad8f864f358afa7cac72bbc4fd90f1"),
		personalization:       decodeHexString(c, "0517ea7410bde64edcc70df48f3c87f578b38b8c7087def16031e52760037df0"),
		entropyInputReseed:    decodeHexString(c, "6ebc9c15913c11094bf7aaa510e6241face016a99ca08de6525a570bd1741dc7"),
		additionalInputReseed: decodeHexString(c, "439c97f62d6b7aadac64057c0003a41a44ee549f60afa92797ee7c9aebfc8164"),
		additionalInput: [2][]byte{
			decodeHexString(c, "669d42f9901e029bce7584bbd22a13a74e6f6ba50441a2633773bf5ac745122a"),
			decodeHexString(c, "8bf3c1a08b2d8459df96d6abfa90725f1a735809da78bf99f7fded0230771804"),
		},
		expected: decodeHexString(c, "3b832a7f1df591bba571bf7662914b0e5a3b34d38228e377e4e7dcb4b9cb396ac268d71fbfd2e1a5cff4429feba36f55c7e45cdac49a5fc8a787292011c61f4f102bb9a5d9c8fe1cf047956f21c74987d80968d2e4cfa29bd92a35cb96dd372d9baaed8d31ba3462b42084dc1841a4042311abfe4b3358f56c9e0c69e233638d3be56d0d269cf110d5200759eceb63fdf3b0ad25937857d129b68f038fc73a842046cc7c45292d6ec3766aafbc22f1491774624751f2c50fee830e24a34a27b5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_13(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7a346bd6d853803d07844ca348f3c4837fce3e3a727f712223da248cd82db6ed"),
		nonce:                 decodeHexString(c, "4a9710cd8b9f2e7b593cca42da7b1a12"),
		personalization:       decodeHexString(c, "3e8de39ab206ed166b203c97103059e6a9317d47f7a76bf4511829cc2e27a4cc"),
		entropyInputReseed:    decodeHexString(c, "85a78d0c764b24c3e4b21d25919c5400b4adaf0684c787326c19010728bc6f94"),
		additionalInputReseed: decodeHexString(c, "327976aef239b20833d36b7f352e8e6570f8f325b568975a661b54b8ada49128"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9419cdf1c59abc03013d7d443c734aff57a6d97c870a03762c50b459d38f5e09"),
			decodeHexString(c, "f2c9c49c76bd683d42dd9de9d45a97b78710f39f2ee482e877e3b0844647f9e1"),
		},
		expected: decodeHexString(c, "24a83991f9455a0410213cc138696cf4eece7b2caca0a627c6ce023b7f912c115768ab8aad0fb10e35591d370e0372fe020823365b5bbe713417bc2f050cbf86fd626caf91323271eeebd5f2aae36fd0aced63779565604ef2653a0770fe4e42649eceb6089bb7662ca3d744fe178f5ac5bc20ce7a90325497f55ffd9b25c59a6b82f07553c080f0c45fed23ce47d972605a2f603b72d09d608548a04031dd2bbae9ff898201e4460479548d70b176e917ff3e3683e49f3330cfa77a25cc48fe"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed51_SHA384_14(c *C) {
	s.testHMACGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "2d8fb8796d8a1764f8c824c55b880c53d2205559afbdf1cecda3dc2d05bf001e"),
		nonce:                 decodeHexString(c, "6252076dac013c7094ae72ca80cafce2"),
		personalization:       decodeHexString(c, "feea8ae0b299d5f79315383d938bcf9b536d11e036b28056bcbbc7fcede21cfc"),
		entropyInputReseed:    decodeHexString(c, "cab30a160ce49dbd646710bc429c163231d73fe0e121f8cef8c02f70598fa853"),
		additionalInputReseed: decodeHexString(c, "1a0fc47fa95cdafd2036eb5314e0f56266e58abb0f03b5e679638945b1fbcd58"),
		additionalInput: [2][]byte{
			decodeHexString(c, "30707f376333df203eafba7fc52b40d8f1d97521a71d579c8b8457ac1328cacc"),
			decodeHexString(c, "f179c19e45c4a4f3cad8b545d116ca29e45f322580b7fc9715313be53f047658"),
		},
		expected: decodeHexString(c, "eaf7523b910b653a305f9122363d96e17fd22ccb9b6158cc42aceea40c34eac73e496827dd5fe4312f102ba6aa7aee934d1f41609bf3e14c29aa3aca210e3cabe70744a09f4c180f3d1ddf8be0b530403c5238761226f2c2c7ae29b24439afd65d6d5a0aa8daa11abce36df02ce61d352ab08965122e16708731d72a9fb5de071c20c6cb039273498ff1588c901d997151edbbd41870031ee337b38233edfd78aab389fae2bd280e4bc85d1bd6655269c3359753b17fdac502c3a2e871149fbf"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_0(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "52f30bf62724f1a3c3db5ab47cf7222e9fa8ef0e9725db46d8fc67cf6e2595d8"),
		nonce:                 decodeHexString(c, "15bdb4d08eb2fff5f46c94cb0cd9423b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "09786b74d1fcb89a7b716e029c67a3ba67eeaa81080351ba0650ddaf4f4d7655"),
		additionalInputReseed: decodeHexString(c, "bba4d488a3f97da75221dd47453703396332fae43204afef8c64fd38aa510ab5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "76fb7ee7d950b5bc02388c0458cbc345b12a5e7277062db3fb17ca5eb31fae01"),
			decodeHexString(c, "61723bca5953738944db3e2d6566966ac17d113d823315722c166fd36473753b"),
		},
		expected: decodeHexString(c, "8dc17927032962c5d23ed0ffabf87c29f18d46e64d1d25bcd310cd07e1dce7c261345f524d0aa5e9d8f5e83dc7ef0f55b2c7c41d7aad8d8fd52e7c5e8c971417f6b5a54e560d411cc587ddb9f43baf07452a1f4e093b18fccc3fdd86342ef33e4bb2ded45a9b6563e054f5fcb64f63413c10ec3e8b2c015ff15b30c4c62a3011f46d8b7befa5391d431b9c7b428ab715d384453a8a2bf9741031235c70c6b54ee827e84a0b4b7e7959e6c8754ea2ffd9b99dc299cfa7e6679328bd4dfe9783ae"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_1(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "ef104e21f78411de5aea226771068493516ebdf1764ae416283fb6c8340da182"),
		nonce:                 decodeHexString(c, "2acbcffd6b4ebf4f61b643ce2e5c718a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "557b21189bd86e51bf575eb61c057e0c9efa2b84a34c0043990d4a3b69cb2bfa"),
		additionalInputReseed: decodeHexString(c, "744195df4403557a494959c2e1a625bdd43859754ec0b811dabcfccc2f9fb0df"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e2d3aa799e71dd0ddf09662346d2169245f6674b3dfc5ac232a36aae3ab6f445"),
			decodeHexString(c, "411e2dc5e081b287bc68eb585cc1512c37d18430ab8b6ac642bad077801bfd49"),
		},
		expected: decodeHexString(c, "828d76efc15337ea1a68458f0f2dcd389eb86dbaab9b83f3de47e773bc8c05fcbff30840e367153ee79216b9086b17a2238d36dd79d31c3c6999d879bdfdf7e30353aedf8d9eaf28fa9f22c0feaf8cf1172c757f0ecd4d7cdc22ec05c491aa8f843ff64e1ee5b1120f66f76b778169cb196ad2d246cff3aacf8526673f1c847f40a5c0f844c71dbb72695d372d477c1bc7d1ee493931956982c87eda72d21a1d8fda15be1c55bf5e1dd45d42b175c6ececb263c1471788f6b0f12f52aa253fe9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_2(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "6e88d5695794272dba32939aa4610c0e16ae96b2ddd26ed8bbb26033f880077f"),
		nonce:                 decodeHexString(c, "03535fe9595324013603ddcb1ee4cda8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "335512cd75d66d7e5fe1698c5331b9c3522cd93f2067766b8ff4ebe95c5eb348"),
		additionalInputReseed: decodeHexString(c, "9121669704952332cef474bbc25d3d057c7a1c771a17e8df5610edcfc81de4f2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b138b8d47552b4e37422de0723a15115b60c8c921929881b73b475af9abcbfb7"),
			decodeHexString(c, "a91c72d791604a04b548e1d9d9cef7ceae615d832eafb1560f9dc74603f3c033"),
		},
		expected: decodeHexString(c, "d99a2031760a13fda04e30f0188fcf24233b2e5a9ead7158d50f35e06f3cef4a7f4e7fda1cf8bc3583e76247c0dba3b7c8a080e33842311acd171b6d8b8607c8bf574f3cd0e7d36a016146143327f1ddb9a36a129aa41531780ebfc1405a41f0f711a6e7a29d2054f8b14accfd5e02eb03d07915e344967301ac521517ec30bb41857111bf49ec7b1fce7ace166273da6abed5ee5643f1d2f391a62ffdcd75499d1dea79aa7cb453913c4bf8216d030ae826eee6a5dfb4b3658855154ed16e1f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_3(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "d8965c0c9b0a87298a7451564668dc38354d79d23164219474ff73cd8b15e8eb"),
		nonce:                 decodeHexString(c, "cbd60746bf5631d4e18a35212b3002c3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "72bd6af57252acaf0b9fbc283cab1d0bf47a062ee2c4d830f2631e83f4f512e6"),
		additionalInputReseed: decodeHexString(c, "e40efd4256fc572afbd1450027b1e14f57cfddea42079c9a40c9f23682fc4059"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4668c3e8d9dd661053233f6e38728acd83b4f2fc8005c0c70a89e192a56c7403"),
			decodeHexString(c, "20123321ce0802c4390c5b788d34b6dc23708fec08f0b88f39fa6b65f0f8f041"),
		},
		expected: decodeHexString(c, "a97c61eb1b02269b473b725ebbcf87885b860eab84bc433406093de6f05b4fbd830c43198d5bcc1f8b8f3d2b3437f586091a8441258dc8af366aadab60a7a4ea757d0eae47217a2552041fb35a8650441bb2d5a09fd33215bf0a0ef4cc18236363dc9ef1b2c4eec6b49c80774958532513e348447652e65c3ce3bf5b3f776df14698c101cde01ecf3cfcff97e31ddb1e1f72f470ffebb87bd740354f6e1b16d0ab390db1191528d7ecad3a4250ace286e3db7f787d1fb24ea8c1650a3ee9e73d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_4(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "f4924423971763e5435ebe39265d5c2d1a5b34e7508de7b3690bbbdd469b1aed"),
		nonce:                 decodeHexString(c, "0b828a7c7c73294ec8282e46b76f7187"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "17903d6bcb7bc9823a22220c99b8b00ba56bb3404f4102eddb5646a61d23bce2"),
		additionalInputReseed: decodeHexString(c, "ef4230bad846b9339ba51dde6b5025959bb5fa27ad1fdca231b36804ffba7fa1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "99014f6ed3ca32cccdeef23efe05fc63928e0c07256aeabfb96edda1523727f7"),
			decodeHexString(c, "0d7c207d92bf6a7b4efdeb09d449d32f48d59c7432efbc611cc796189010ea1d"),
		},
		expected: decodeHexString(c, "3252d3d4d14db59f0cfc12141d5c4b1c44019034fc12a716c4f1e9a806a1097e1ad820e1a5444783543ed765ffc9c1cac1f3815be5dddba0128dcc8399bb3bb8fd5a18607ccb5645dae1411e73e66236d64c6d135621d3721e64d3c091f6ca4c8be9bb8a1a0ff4521ca1d23547047bd281254679415d10bec415daf7f593ccf71b8e596d0cd89fea6bf67e59ce812591f2a1b0133b46963d7d2ee78ffcfd67ae6bad9f3dc094614ebbc6bef03a116b58a8b4d90b76d09466a04c817f8755fa2d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_5(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "d8a4652f5afe770600ef1c30cd9dfe9f39a2bbd0fc353b1c1e68816f6fb5ffe4"),
		nonce:                 decodeHexString(c, "48d0cea960abcb7114c697607e6b2563"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "49a7e1ff623b3170f7ec0bab65d247b8782bcca0ec7c913c0a110d3f64a876f6"),
		additionalInputReseed: decodeHexString(c, "df5cae3f34de14674c2e00cbd8fbf32bce9e332f7191a0609939031c29625578"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3f4594783262220e0ff0d578f16cff40491be510ad440b0a325f1fb733183044"),
			decodeHexString(c, "098d7d40f3995224ac6177b86254a074a929a7c739a3d3df03e859b7d1e1a009"),
		},
		expected: decodeHexString(c, "2e841de66bea35f28e3fe6a4ab9aef7f66437ad3e9d9ec392da0512f53563ac29eecb44722ad84c314b2cb0aaa31a556715e4996650c497b1ca5d69f6fd27f19f47cc8e0e620cbe9685e612f37715e70c9d3998e3da76b9aa4c88cda42bf1a258358e2f1f5b8674589f003111e5c69ede1c03567c61a42990f83a748c5d18b7dba4dfba81f0ccb05e9c20fd5b3f32ed54e4948a480e95bf1a0ac9f9fdc930d19eaef898a6042eca9ec8dc8541778f1e40da100a566ad5d272dab863317e5d8c5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_6(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "f9e25060675e4c5734d818d9c31a0b232474520577e42f8c53f803aee2349f4a"),
		nonce:                 decodeHexString(c, "9a62a41cf3f5a9e198dff8c907a35a3f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "888a7529909ae36053c75badb44d103118e171784a7b67dc0d7a4e1b1d44391a"),
		additionalInputReseed: decodeHexString(c, "10a25d0027b1c55f615d3b7c3f235d791a81dfe8215315e0c38fccde27a5d8da"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7b10e25044abd0917490e7f1a8cfd24966803fc9be260f3ab5bf954693f60885"),
			decodeHexString(c, "a3563ec5c089fff127b2a2eaef12bd0cb3b18f3a0999754666113a052fd443f9"),
		},
		expected: decodeHexString(c, "83b9fef4f31c71aebf3753d0404208678987fc4cb2d293a8ac8a547aed18a7a9e09d8196a07d6e97c909e64aef00d9b9530ca1cd69d65807857d9b30a74924a6be96dd96fc48ad5931892736a77f62f68c3fca75af3e2ea5b2a336f1e080a24fa28f81fd8b1a34d3c8aac650acaad25ed1e00bc44092a13940c821942add18bf0ed70c578c305711b0a4991ec5bddfaecee804619b197fd716aa2e6713c0cf91ea0a6d46a4d0ea80a7f70f4fc75307d342e69d1fdff989808b7500275cd05218"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_7(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e63ba9b0ebdf68c9d88bd1992c681a93acc29d2e9d4861bc74b937cf551d4775"),
		nonce:                 decodeHexString(c, "664e8328020256b2c9e339de9e3c7aa1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5c68dcb9b9bf6d0ba6de6ecd561c6ae821ff78e956e6614719a5eda5a5aae56a"),
		additionalInputReseed: decodeHexString(c, "6754957a6eec240510a7b6679e4518ff6a8535323381275ef22aa0e2d8b2932f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ac21edc68b1128024e0371a8217260e001df716871a1cb80c30b19ad86728c66"),
			decodeHexString(c, "9381cdba4b29cff81c8effd21156c8889c8b1317b5fb1546a3a8d35ebe41ffa7"),
		},
		expected: decodeHexString(c, "c5ef6658de39e6ff479c258bd9a36c9b83da604f1309ff676c315d4a2d471021ee31c26c2fff030d88200e060b8f046918cf448794693972b51356de1466aac8d86f34817a7ce8cc290bf59d448dbc76234d283a163fbdd66259d4f655ac1035a7bbfc2e90c80cf9848c78701755d20e4b8db8b29d5d347a955a66d1c2000ac944837d8a096961629fd83c6a3ad8bc89088ad43976ee9e6f6e8dcc4a99e9373f9f21dff9c8293c9e0984cc03e8605d0d4cfbd91f53e9b8f8adfd19fe070ec765"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_8(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "b248abf23173d6b3367ab9b208fbcae667215e09cb86b5e5319530312d58fd87"),
		nonce:                 decodeHexString(c, "5420e303889947f0d54d1f4a21b1c7ac"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "777ac80d8d9dab22b8104b49d661c521ff3eaae4c5a51895124940bad3c61d19"),
		additionalInputReseed: decodeHexString(c, "ac818f42464518c092206afec75846dd7687367648fa08ac157fabb6580f13e3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c16c33aac8043aea30b67963472daa20292c8cc14c8d0b29c802cf1b92cac61b"),
			decodeHexString(c, "b823eb02fb84ac2108cf8d8dc135dac0d35fc5a869be0365d24ae592eba33e04"),
		},
		expected: decodeHexString(c, "ebb1ff30e5a32a7e54f44159b297d612f417aa384fa250abbcd88bcd9711a865d1d556d7aa7433f93a57e3236a71836ad2ace3a6672c99056b5041237586e3121a099b0faf96dd65b6a08134f7af1c964a11081d78956cd3f36d143fc2edd01b097d4a7640721bf4711e7fd38a4e5ff5ad5bb18ac218bdbdb7335b0be5267bf5f168142b908d3d27a373ff1667067469b8000edc1a9f7eb29ca4ce389723429c0c2d2f193519fe8042d8461773243b9deb2cfa9df7449f9cc9c649b835365641"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_9(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "f534da033b98cb8537baa521f397bbb2ffdee23a2672f79ed55be98164edade4"),
		nonce:                 decodeHexString(c, "917b1ebaeffb0a295bde8897135bdbb2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3d4590f469ceaa841fd25cb52bd00ab9830b1128360d0e9c3fbd16a6a0b06647"),
		additionalInputReseed: decodeHexString(c, "e6d3244526ae1e26fb246babf03dc856de0921ed822f86a94791857be816392a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "45a1c391e6072ee9b9184d648f8f681843a268d3d02c803e6d306416b05cbf5d"),
			decodeHexString(c, "b14be9444d71cbccf95d9239e1aa4ea22fed1d5fce7439cfb444a3908a378b83"),
		},
		expected: decodeHexString(c, "0fcb4ac3355428a31c3e86b083ae82b537b2047c143120ac0f1b1f22744a15168eb68136f1d9f2e2a5894bf05b006c37312beb0e360768516cbb2087522201ec7931c52c2f764ac9eda6a245618e7742bdb1e3462e4a9b58f1a49a1eb6cb25fabd83f4431ab909a9778e42da00427f0f4e2ce8e3aff6b4ed20c0ee885b031d12551748caae6cdcf859bb5fe8d928310d5b82e80542c117822595b9df7c27cabdbb9ae80fea2ea2b48426d9afe638f64f89432aa41055f4d4397161541105d655"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_10(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "4d887b13949210562deba62821b8f157a22e124687a6a70645691821bbd2767f"),
		nonce:                 decodeHexString(c, "677331b66d080c7be8ec3324a6e6bef2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ad8d24f72a557dab570ab96d882c405b2b8dc2bc1e64f2b66a088ba8670ca59b"),
		additionalInputReseed: decodeHexString(c, "2747d60a8618127dc3f028695590dd9b1cdcf439bd01dd74cf2056cd81d15cb0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "85794617a9f7bee6ba892f32194d07a655d2cf9e1a9b4e9f4116a1e5493eba16"),
			decodeHexString(c, "528eb0047ac098cb91b321bd494374fc53282b11c025c2975fb9bc9282717cc4"),
		},
		expected: decodeHexString(c, "1405058e484213e97d5605ccd3b534562c461c493b6176685f0360e090b2673593601e422a6a6ee98e7767a2c4cadcd7b9683ea019aec74bc315e6c29ed33b75254920e65e0061ba3a5e7efc04f4d4cb5fc1113da0fc3496bb86f9929cdae15104d196eeece4c65e3c326cdd2aa6f7d09234c5b570da8418d577c72c8b92064a60d04858ee4d6135ab551aed7b611432ddbf08a167daaa685f5e2bad22dd8f026400bdad223b9a35c088d33a945e62e55194f1869ec8a3b65ebe8b0f755e88fb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_11(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "a4d61034c2b4f0d00c25929755b49b4bbcc50d689e8f8d3bfd380ac260285cc5"),
		nonce:                 decodeHexString(c, "d1e2839746198cc8ba61c79e8a7a7fa2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f1519056f6320e265dfe713bcb23bc560060957223e8f6ea42364e43c19e3ae4"),
		additionalInputReseed: decodeHexString(c, "c99eaed03ea0e25324fa741617f84eef97cddfb6ebf3626132469d6bbfb8bad1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6b95c7b3a7fb407f6053bb8892e226fb08a7b732ecd4a31c507f9f80fd8d5314"),
			decodeHexString(c, "cab2aa665354356822a6b67533c3dabffdf338494761f47a83802fe185075f4b"),
		},
		expected: decodeHexString(c, "3d1ebc88965c3d28cb4ae3c4af1417399f41db1d7e45018d48a2035ca17f49d61cc90260b229fe9c9cbb5147bf28353addbe7ad7b181a00b912a202c625114c317ecc1540f799f3db28a6c1815de5198200aa9dc663c9f6c661b5e7d84b7288141e27ff499f7f059545ccdfe5936de7abc90714b71e1e3eecf6a40a021b7f5d4f2bb73eae9dba4249dbae6c25caca61caf283690d9db7ac82c093df84ba5fbe8332bb2cd04a057144ddb95c4d5a31da56974af324faeaaa48902f3852122b1bb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_12(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "d5dc885e8e3cb56445d9d1a5acf85745b3a7732525b7efde23fb0ce8dfaf6b0e"),
		nonce:                 decodeHexString(c, "d5cc2059c204e377e12c9541690c6593"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "66af05e178521763e51073884956ea08f9b58e1f3b917f31fe37d67d046ffd1c"),
		additionalInputReseed: decodeHexString(c, "d2576a2d3ba97955f7a4a70ba1f9cc8f95fdd42da5c17850c85bf9cc2c4d6703"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b882e10b2aac1a5f05e5ad5ebdb7035a2513f153b57fbe88a1116ed43318a276"),
			decodeHexString(c, "632fa4de8fd3fa5eb82d503449c58d4d767e75cf05ed8c2272c4b6f128cad1c1"),
		},
		expected: decodeHexString(c, "9771b247018776cdc9873bd94e622a4ffb17eb7079ed40bab339102eb2db3c360425e775efd010769804138fd54509646a78758e66877fb49506ee7373ff7ea90127d6c81d6bc227abe60c45126bc052771d03e73c269c0a688f20f5ee264598fd096270560b50732000358b7535fcc15a64d9a2bff1b869c3f812e88409fa462f5663c69fc78aabe17e0696dfbda38d017a3f2c6533ccedd75979ba407bca789f77f4fb9d1c720d53ecd2bc693491200650720e2b597e85c6c8abe2de419e21"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_13(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "134465658f23894cf9e6e30d3fa8386ecc4e8fc47325b51ce6a7078691d8ddb2"),
		nonce:                 decodeHexString(c, "4a89f733c574323694de052b8f37e4cd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e85bc925be30d26629a4ba986b3935e84771f0f2dcdcc7705eee3ccce72bc0ee"),
		additionalInputReseed: decodeHexString(c, "c6d056b08c06d23e3965efb527cad7d79a6cf4c2c42efeacfae8fa9a7e5aa288"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d6521341f06b94c7d50011e8ced84a12114677dcebfd631e24d78dfe47ede65d"),
			decodeHexString(c, "9ace912bccb51dee2807e3453f57446fd4f1ed7bded13400ad8b422eb068cc0f"),
		},
		expected: decodeHexString(c, "41c49c7caa17a3d600314497ce4b0e2644268635389af7ab0a07bbd2666971719981bf886a1b8e362ab4b3cd62fdb54d0147e6f8f3ccd728a2d80e5c4c6355a1b0ca77ef263866bc93f551fc5fe270c89fb71f82c4a62e67b33b1c736c5a2ee5a99b7e01616e3c9a072656cd7875b790cf60747e42c3c3868795b6a307e6f9ba9bb6108580bb8fc40655933aa1c3bbf25f42faaf570c72c425a6c8a94f6b98cddc1d5f405672c8e3fb86013a43817a826497eded4ba72cda33acff49105c82eb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed53_SHA384_14(c *C) {
	s.testHMACGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "13ae3ee6e1eb2d6db9803cfa996ff2be06de00d18954f1e1a8bfeab5faf3e36b"),
		nonce:                 decodeHexString(c, "7a90c61357d6c6e92bf9084b097f0e56"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8e76a11f2d31b18f92e4694b244f4001ffff67262c70c94b6964c8718fca7137"),
		additionalInputReseed: decodeHexString(c, "0eb6fa8cfd5086178d28dddeab747dd19c34d65926fe6f2a963eed48fe62ff3e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d528cc854d9354fbcd5c0e80f39e9abc24bf50e062e0cfcc378778c406413ad7"),
			decodeHexString(c, "b7dae3fb7d546620080e36517367e93e27bdc9ebb831ec3ef45269c3ac0e686c"),
		},
		expected: decodeHexString(c, "bd2703f86207a193f17ca6ad2e6b5a15c9e182d4417b1285796d3d8d932c8d465ef10b32fd020d95c86b2a2aff1589b202c91428618ff138cbab1feb48356bc5d9f0c858c0c748e95b8611dfaaf0971ccee710812f166c37b08d7fa09dfa9b2ffa19b994135b9a6b8418ddca535a19e3be570f11c2706bd711fac50d39e658248bab0cfce876a9591930d42ef0115e10462ab4022041e9a3c154fd5d22a911ca4deb96dc604d48fab1f99d075a7d3366dfcbf255ce46090d269ff147e93c8eec"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_0(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "8952e4c0f8b4c4bdc39fa2143baf5f0fa3f58c521fbd65923a1ea4c4aeb9934d"),
		nonce:                 decodeHexString(c, "1eb8c2fb74a36ecb5ac714945c95a810"),
		personalization:       decodeHexString(c, "a67ff3850f1889754753da83fd9507d3d6e086e72f70a5ab2263c57c4e6c98f1"),
		entropyInputReseed:    decodeHexString(c, "8e8d9bd53545499cd2f6035b4fcdc24914677ec9e254b4971fcae5c71779492a"),
		additionalInputReseed: decodeHexString(c, "98efde1cce88f77c5ce1a1fef0235eaa2c6ebcb15e0d19388ccbf8b3c683a213"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c6a8fa4d6d2eeb8c7e247d4cd0b6f2c9d0f3241ff83481b1844546faa1636199"),
			decodeHexString(c, "85d99bcb67e1799402224743e28f56df3af012e35562b8ec5f3badc580288f3e"),
		},
		expected: decodeHexString(c, "b6a7bdb1170582417e895ff8fe9aa09de7f92719a974a9d4e7f9acae4b335b2bdadd102cbfe7181c79a6532994de87c10720d658a15da22e4bf72a0062f8ce6e49ce15dff04ca7a35fb8719b87e18635f9867af5daf40b5b6f7c38bc897f9c98ddb9d351e9b3ec8816b91b0dda4c37f4dd139f50dda9c93e8b7660572263a7a9687d2487277ee9def47c7b8f89c95651201c3096f1af8dc2c7a597b0c71d4a67396325fba454c89a6f2cc1139304c49783e0785cdb3ff86574d906d2d9c501bd"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_1(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7d700d622edf2ec2dfb07d3516883b3e9dde9d0f086eb64c58d9f7bb9e5f89be"),
		nonce:                 decodeHexString(c, "8d7e350db3bba7a9849f831c62d717c0"),
		personalization:       decodeHexString(c, "6eb7022a6cc3a1a4432ef97430184c490d35749948839153e579dbf29ae421de"),
		entropyInputReseed:    decodeHexString(c, "6b3e8e88f6452b2a1d95743632ac4176ffd9c8cb5e434be1ece3cafcd77ec5ea"),
		additionalInputReseed: decodeHexString(c, "135a824e8805255893b25112beae2fd7c5112dd993c7c2b85b967c5f33e7c4c8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "216acd9eebd5d53d671ae26e7e1f61363a3aca481cb3b5b11db692e4fa1934a6"),
			decodeHexString(c, "a4d47ab035a0a41fa478ff5e4c9a1d07b988f09450fd7b51a3979d2e3f1d473c"),
		},
		expected: decodeHexString(c, "40ed92a49555b56f0f9103730687ca76304cca9c864857378630b51c4d370b09441da65182e86acc98286423c147f04fb60d0e258fa59ba990453c1cbfee97b75e8a922f1f1a6f8d2cde288c3c446221e40387a0e78226b1f43a5be34bf1c2c3c570744f23c593e401a1db8654b3055b25375973f9a30dbdd518a3b91f488091153077d13e02e2753be6c487912ccaa1092ef088b649c18ffb522f8ddfde5cbff6f94bb3b810822ad8ae3a42ebd4050fc5cc49193664a1eb4ac8b2cf690e57b5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_2(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e0164edf2fb11673bbb07794d186ae18ea28b9b26906493015f2711f4004256e"),
		nonce:                 decodeHexString(c, "0660c87d156e47f84fd9cbe91cef02c9"),
		personalization:       decodeHexString(c, "4e217ee9371ea800e1652f8af94cde68bd0d9da365d7b54b2d4ec988e490db9c"),
		entropyInputReseed:    decodeHexString(c, "8376dbdb5af8ceee0c338f8f58735ca69f51ab09967097d44ec48774e9c45b9c"),
		additionalInputReseed: decodeHexString(c, "5fc8538133d78d7dfd58bb937ea796fdbe11a364d51e39584bbe39c9ca0dea50"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d4f482b97182560a625f4f05f4361c57bcdb3372483a4bb129820491867bf729"),
			decodeHexString(c, "77fe4d79d11a0f61de7bf9a3fe2326ab4f6a2e3e8f1fffae3bf5907c590fd071"),
		},
		expected: decodeHexString(c, "9bf3273ce76c7e0d88301d8a5ea78437fbaf0234d82b31128609cab39b62adbc0ed00acfe640170c005e34b3963b15aec66da65734a3764edeaaa911664ca7ff3da668e07087aeb6c2ad30fdbc6aaaed67c69054ebec77585aae13bec5a0636121512f6a5355217eb5ad1ae437236c7f1db694d40613123ea9a9306d54f8afb943fe61b5add4b0e769671e6b62418948708848b4148ff4aeffb77d6da3b2b70efddca2709e231a3f153ec562dbc6bef4ac877bd436abe9b66e27a3bf5f63a141"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_3(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "4dc3f0c0044011218f2a1137a4e9667b0d5a313fb60add73bba82cfaed51e19a"),
		nonce:                 decodeHexString(c, "f640659080658ae971808a71d63020bc"),
		personalization:       decodeHexString(c, "2b2c67806b28940882ba31b310ad91ae47aec546abc81fb54836a0fb333cd6bb"),
		entropyInputReseed:    decodeHexString(c, "d91df97869c332fd4ca22587cebf648861071828338264c3f1ba7a93efce2432"),
		additionalInputReseed: decodeHexString(c, "e6078c2ed1f1cd15b62f54a5ed1f8893e725a0f33284a0bf8994522e43370c32"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cd1341b4c78db1b312ce22f1e20c99d7c3ce93d9a5f7102526bd81e92729e3f5"),
			decodeHexString(c, "69783ab2209c743432f6c9fe385c535f7c7f687b424a633b3e7a8509b2bb1e3a"),
		},
		expected: decodeHexString(c, "1571d5b744066880b1753149198c849444e4e996304518092e8436dc5f0b28149bfa1eaaf8ff70fb61f27f67156a489d9b6a7162928ce8d9724495efa4856778445e1dd39afeaeae08b77117f73a7fe278c009a30843fb4a4e730494b1222a0d61f8d2545e4efcc509b05575f962e8b5ff8f64dd4c3b7f55e8e53602846b29bf51c73fe80ae108f0c030dec533020554b736093f967e2cea17a0e0e750fb57ad680868f5392a7fd4687feee3340bc2c1ddeed4ee6bf144c472c15225b587e3ad"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_4(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "31e4b59081e7f4775a190ffcb56f124f32ed7121c17058c6458dd9e49de93d4d"),
		nonce:                 decodeHexString(c, "1708b0283c1c0e3d750c300c3f00e7c7"),
		personalization:       decodeHexString(c, "036d96f491d1bed8261ed73e9288d9a9628f83c208e9bbc4a6597211aa4eb82b"),
		entropyInputReseed:    decodeHexString(c, "5da61c6e93770f1384d5f6859666eea53f771d4ee27c6606e4c0bcd49c1591cd"),
		additionalInputReseed: decodeHexString(c, "d657051bcfeaaec4a75dd6190a88294224f0651cb57291b178e229e6ec4a3933"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d338328e55305f1481c7ba015fe24f200cc54225933d35654c14d86fdc50b4ea"),
			decodeHexString(c, "6410f89556f0ab98ad60bf21b52eb32704dc223f94765f04b88ca871bb6c5e90"),
		},
		expected: decodeHexString(c, "361fd35fe545528ab757817d74a33163c065304c115ae20f9267b08a86dfb0ea4fde8e28932b41db21b013d10f7d13a35fb928fc86b0adfd5a1e92b83fbc3ef3cecfb5e7c248291a1bb9ed481ed8689963e432fcff36eb0a286bc11b2d52a501ebede5cc006a9bb32af10afeb849ebdd83df22161561bae98233b67975d8ba68539ea0b904f5a1c427cbc28e8fb6c31a27cd775acdb18947c8611175d148ba6fbd38fde1e3f4cc685d9e5f4196bdcaf8426b283b7fbb9cccea6f56c14fe519d6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_5(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "af3e5350ccdd5c2b6840bf1d311ff0a49a2a50b423f8faba7ff619e7301d2633"),
		nonce:                 decodeHexString(c, "7220be061dc2068058bb51be1e2de0f7"),
		personalization:       decodeHexString(c, "87e05d034dfd0289f59f807b6cb4f2fec4df3edf76daf9821b809323402abad4"),
		entropyInputReseed:    decodeHexString(c, "51cca903e853bec1935e81ef555434634b43ea31d5c7312a106945d4fac00cf3"),
		additionalInputReseed: decodeHexString(c, "d7067c5c9947f4890b24f0a33b87e355c5903f4159ace32e4ce670538f16d336"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0af84f59a388b86e1c3cf83daa45b5c035f7503f48321699b67e525da4e7a129"),
			decodeHexString(c, "4305764d00f691651deeaad78b5cb81438c39653aa7b8dc414b8f2247c67de92"),
		},
		expected: decodeHexString(c, "cec037c23291fa3e402e4a8a523e9c60d20d68d34fac7521ca54219524af7b8bed00f581d61779950a5a384ce31e76c827a0c6f82add039a9f66e903ed9c1a49691770e69d1340c169f12c3c4b3bbae6510282f1511d48adfc08320b19e0107af1d0fd6d16ff9cf9d0e05036ad0395c9e1b61879bab17bb0cf307516fab5894d0c0ed702d6893d4a0794c73b33ca811d332dc64e31b216bfa648dad5c7a2353e8a094ffa8ed1c9a1f7fd2c71b8da775bb6b343e41a35471e0f37bdea22789c89"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_6(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "938826a359c6b1cfdb231450ec8039362bf1e3735c7683cf508116d6887fc3dc"),
		nonce:                 decodeHexString(c, "7e77d99b842fff3909f95e3ec2f8780c"),
		personalization:       decodeHexString(c, "9dd7bcc2089c5298c69467482cec4796d70b9062683d55dd4b644d3481bc8531"),
		entropyInputReseed:    decodeHexString(c, "26ce016045c4334ca4d89c61b5fc696c5ff4025b4fd88f67515edd48ec64d5c2"),
		additionalInputReseed: decodeHexString(c, "96b11f9dd6b00cfe8dfbce669acb5215f4266348f578a301a05d07b5de38fccb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a8edaea53998ad49e100a9f94c7d42ee49685daaa50eed0af8dce137ae142cde"),
			decodeHexString(c, "8bd77996990672c77761120531761ae6cca803f142844d5a30847aa120ac0801"),
		},
		expected: decodeHexString(c, "c4d0c598425a5ceb2e6cb46cea23866a2b6f54601a0609c2d2a638d34c7e7170e9597f1e2f5c07511dca973185afeb57af0f35cd4028bb91f7d4b0d592afa31f5a3031bc70656f6f210c0a0bc8aac77bb31e8f778cac79ef08b1d6c3d99899e297b674dabdc0a8c782e06d9dc373d88de5d6f0f4100ae8a5e3b5c30ae8043bd27ca94112e9a4f7d0cad349033271150a54723f4593bf5af99fca5577c4589c7efc08f4fbee0a6e245dca858875f63ca6a6ae0f68e6cb338a39c84b47873e0527"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_7(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "a2d662fb36cc6880adcb64cc1526686bf26fb660304fd4d061b5b9511beab168"),
		nonce:                 decodeHexString(c, "d1d4cab3496a3577397bc20a6b9adbba"),
		personalization:       decodeHexString(c, "746b1453dcb821b05b25ea0f3caaebc303ed34f94013f38a1b672f1cc65413df"),
		entropyInputReseed:    decodeHexString(c, "36535482708449a24667b28c5f4fba2c6ac4de469f398684fc51d6082ebb251d"),
		additionalInputReseed: decodeHexString(c, "1773bf56578a3cc702b07261ead2cfb16e11fc6c0baf3294282daf3a596f063a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b32f6d0a83eff4e33286bc573ee878a6d46bd74b5c5b89987d5b4c47ce9499ef"),
			decodeHexString(c, "34afcf34a6135c2ea236eceedcfd974a19e5b2fe238dfb6a53ee1f05d0a62ce6"),
		},
		expected: decodeHexString(c, "5ad60c49595b13a8eb50a4b0a716416bdc25db1fd4a861ad85abc09b5dbf1f8e2340e1e6d7ae0293d9118f9c60fd2fc2d5aed7398fca63455a535e62332e8b35a28c511b622056d6a81150c53a29d4c39a2d93db3648cf4d290297342ad3ed5fc8955cf4ff24ec7f954b3a5289c8c1dff8cd49e0f828a31633ce7bb96fb5119a28520a7e273610c38aa332a89fc78d4766af9924d391e6578fc5c67ea161bff0291d118d0ab4932beaa75493aea37bb758aa8c971dcb4f7cec6aa0397f962077"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_8(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "6e18c972eba02e02c718b1ad437578ad36ba868562ce0151f733abda4ef8eb6c"),
		nonce:                 decodeHexString(c, "0e821bdd8c6946b5d47e86c659e6689b"),
		personalization:       decodeHexString(c, "df88f4115add77c4466eabc180cb18030fc5eb9428cec014ff9e1c83aafc0495"),
		entropyInputReseed:    decodeHexString(c, "1dccb719ff27fdddb1754fa6391239b1b2aabfb1729c7fdccb8cd2f00e6e5b50"),
		additionalInputReseed: decodeHexString(c, "c1c33dad45d7b74c799fe05d1bac8046fd7f27cb4eb4046a1bb16dcc3ca5ba18"),
		additionalInput: [2][]byte{
			decodeHexString(c, "22e7efbd5c39f6a7ea9734de481e034da2f7d961dba04203a6ed9a32c41b55fe"),
			decodeHexString(c, "cb8ae3f995f5c671ee667aa35db5cecc17d5923ec6a64078c1d9926ab3dbd29a"),
		},
		expected: decodeHexString(c, "fed07f63164dff673d77a3a07601f13af78962f6f72433b92c1a645cb37a8972ed0c9ae2e14e4fbdd8ec4056b6e6a97946d84dc58827e5a0211bb67666c59b4b7f62ba56defca35e172ccd0a1010b3f5978482a406bf62c8b98305f646c1a217a6cd61ed259e251e4679c5e16f3eb293593ee98269f45abe7017b82d2144848023314595619fff4008caf339ba464e0568b5ce732422149ba3f6e06eaf5800aa317e86fc5d9f952add137957aab899ffb55fdd7bbc8cc9dfaa05aed8616a7083"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_9(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7bd34cc9435d2027f8fc31897ccce23190cb223f080e2a7d30b80e7698013bdd"),
		nonce:                 decodeHexString(c, "be7d5637cb19fa348d79331e4537fbc6"),
		personalization:       decodeHexString(c, "b07fe0927594261f1be72ec59213a484c65a786c42de68d6114b5487c6fb9a4d"),
		entropyInputReseed:    decodeHexString(c, "df3f5b35bfe19426243aa2bf6779363acb22753f9dd4f7aba109a62c639e5519"),
		additionalInputReseed: decodeHexString(c, "b92c236303b1f2149826b0afc80448e59c182af7b4bb80bf45b1e3ecc5b86469"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bf5611c8a7fa06ad9dc12a7206278fe7d8963f8f28937c4e9348d14b4840ee54"),
			decodeHexString(c, "5c9455b7ba43ae4d34de3a62bce43842029be60395d409ad9897c16232351e81"),
		},
		expected: decodeHexString(c, "2c9166a0b71f64fdbbb0e0043e0883033ab33f703880f7ff61993d8afdee327b9a91280ce399b682e399c7da42f443b2dea057a940256978a489b4c3967ce15127ecf35ad056ccfa971437aeee9694c3a0ff8219862a10d71ddc467d29fc475680fde5935b36ccfad7be97ecb04b222c6796784ddd3f3753c67d6cad787f7694b086274b27687a5bd5e950a7d642bebc86deed14039ae9cffd1f3185f03b99dcbc3882a7f3e424489dc7af0a6de73eb4ab83b88068df3ef3a6faf27f32887e88"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_10(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "6bc9f3ce436c9727132d310a0a8dd28ab9e27ccbdcb01eb75a22392b7d2f1898"),
		nonce:                 decodeHexString(c, "3d104c189e8117ef18d4fb441cd2acd9"),
		personalization:       decodeHexString(c, "fc5951e5e91bc2e6544bec5c04787eb196ddef8fe4ddcf9b559bff5432eb5f3f"),
		entropyInputReseed:    decodeHexString(c, "4036509c4336f0825531897d7a29dac079532eaf202b2a67be141c00714c58ee"),
		additionalInputReseed: decodeHexString(c, "616c5e4c654f5ae44b9a1dfd3008cb0c3503f423b2188febd43889ecd0b922a5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d572c769767b16c4c4e7e4efa83685d1c30835c11901a0f68887733619b605a1"),
			decodeHexString(c, "e5f2b4abcf5e38d3fe122d92c60cf7ea2763b5a2a705167a4470c8bcfe743abf"),
		},
		expected: decodeHexString(c, "1a5e548f18d3d7aa3a97121330dfbb64943e3c502fe791c99409f661f8599f67a399233a2283c0b5cf883de4f597b2b1e5ad0c6f02ac446c9e8bbaa2edec83f01f5b9b0f0cf5b92ae9ff28422810fe4bdd38fa7c54bffee7a2a8bb02edc82af52af290af556d9580450816a83e57df8db3ea0c09742b949ed2e0019d00801082847c5b4572801c625027a21c6fb886c588843e54e8d8f3ed62e7e44dcdadd7491c9f0dd4c78cc90de50e7e0ef2b558708c893f37607203760bb85417206f59e5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_11(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "38ec79ad129be7916b80117ccfb68dd83350f04a7deeb664c33bb15a60986177"),
		nonce:                 decodeHexString(c, "7c28dad465ab68d2d68871fbdeca641d"),
		personalization:       decodeHexString(c, "ade83f71ff379ad2a2fa3830f7e94193bd7907a901bea1e3a0305642dcde326e"),
		entropyInputReseed:    decodeHexString(c, "6e8bd5709b281f72ec76dbc6f439e64d80c49215ab0c5fa1f281aaecb77dbb6a"),
		additionalInputReseed: decodeHexString(c, "45adbdad1ae2ac5a2ae469f14bf6f8ea800a27e866cec715f7ae8f9c42500c3d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c8ec07202976f211670d80ae1e9a8b03313d533dbe016708478f1af036006dc"),
			decodeHexString(c, "8d065fbe3b5db28920ceeda6f0523e34ce54e83cd8af021198bd0ddb16a18e1f"),
		},
		expected: decodeHexString(c, "e43c03625fac50da86c19094bc1a8b651a098354700502bfacfe044d628eecb528fbffac640b6b076ffb7861d609d43f6718dbcfa2579e231713d3590e150a14f095a5033767f84067cc39e0a870bf7f225050343696dc9be3edccef07c4c3d9c97a54e1c8b6fc04f23889edab11da5d61f25922e4acda2f17092d2db57911b2cdf0ed1e668dc284867bbf88c335e0e333a92e4c27c0d89ee48df71cf79503d529fd0fff0f0ca7c54a3f9de0b3799ee87ab292b0616d11ae284c82d135376af8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_12(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e91f2704b65c825e247e4e19137d759a810f94c6e63bc51820b1fc49f00cacbb"),
		nonce:                 decodeHexString(c, "3d01349fb30710fe9b4f527694aaf759"),
		personalization:       decodeHexString(c, "e855603a0974ab0cfb2588ecdfe8235d649a8942e860c853dcad342a05c15dc6"),
		entropyInputReseed:    decodeHexString(c, "a004f6cab131c8af76208ca1d0bc815948ec73d80614018188a5ae7ad3e6108d"),
		additionalInputReseed: decodeHexString(c, "f1c2ac22b208cae0f50b50952a2875c2aa8b75d571794ac6e371abea43f8134f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea5aeb13e9e8db85c34ddd9698fb3f8ed87a4011872d4735ee5e5770d61de8a1"),
			decodeHexString(c, "3cab271fff159c2b8c6a53dbd46a4a013ac12959ed8ad49575e20fb0d8c6dccb"),
		},
		expected: decodeHexString(c, "3e397b12b767a64f3287591098a55fa1505b65340cf47e36b7b177f8a3f6fb812bc6df451b6279c7b7adb4da668dcc68a6f615dae1d87fee2b85ba50de41a3d6be5876b94e2c16881bc66ac60d13c41ac21e34fe2fee3b6acd72a87bc25c8f0cc81feeac15e70fb13c3c2648931428ca5074ded58136da213339334aa8b251a1ce759bf5aceee492b0c552540c0342f3afc7cebd021c156ddd06d67cf80f2e31f62aa140cf92e3d88b7b0c7bdab4e195e76bf64b4d1fe135236dbd957b53423c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_13(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e55b437646b117590e2d2e8e2ac30d1449d1cdec1ba027dca3f798305ca7e54f"),
		nonce:                 decodeHexString(c, "f731b9963fd3539db9e2ed1e6dadb327"),
		personalization:       decodeHexString(c, "375c6812706d50af25b86df447dff3ba4e4d626ea747220aa42587777548e4d0"),
		entropyInputReseed:    decodeHexString(c, "b0bba4dab3c92343b7939d16cfe4a8f5ed7990dbfb93dc3e88c7928a1ba175f5"),
		additionalInputReseed: decodeHexString(c, "297ccfdb89b4fb8aa0144097bb89c6e0729d14aedbb7df0d64cc10db08c884e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4a7c4c1029c1517abadd9086051fa22cabd10aba56502df64bea022fcc94f25a"),
			decodeHexString(c, "4d964f68e733bcc3319e19eac8c9c5aaa9dd7585d9a5e23684122b096cf0f1d5"),
		},
		expected: decodeHexString(c, "504723ac2ad7f96b25ee9e42c555f738858ea082769bc4c8b2f6c212a283df7fd6a71558666f246f52cdd3dc972860e4b967fb68d451d9ea36553baeb4eb2533e9d8aae48878605ba8ead2b8722fdaafdf21b993876632d40bb9dcab36700b7367035fd8bdd4edba9137d40c8a15a2d2d3e0e97700a3bae14a144586452841ae7bc73308a92372a74c360db736ec2bc6c0425124c4138b47e97992703432eb5213ee6c434ab2b2b720da708ef8f2865f7a2976857e9e3158664d79c385db9a42"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed55_SHA384_14(c *C) {
	s.testHMACGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "a6a7697716f2851260bb76cfba048f8d0bfcf726713032ff549fb69bb8ae7a1a"),
		nonce:                 decodeHexString(c, "debd33dd5306d74e7d6e3e480ac94a29"),
		personalization:       decodeHexString(c, "10e90bf209b2e3b3ea9c5e77bbe028202bf3847d44ed3b406a89c304c6e1e72c"),
		entropyInputReseed:    decodeHexString(c, "13ae40d4d9c43848a68499421bcc68a1c513b7bcf3e9f4581730861f26115cc1"),
		additionalInputReseed: decodeHexString(c, "6767d287e339da85620ab205054ed4af8ac72f6afa2c7acfb3f75bbc58f65f60"),
		additionalInput: [2][]byte{
			decodeHexString(c, "590c8a55521c1fa20a293e19941bddb0ae16492c8331b244b42de9bb403f2111"),
			decodeHexString(c, "8c1754a8cb8db97cd6fe40ae1c375b78a78933e9504118b4fc6cefaa7b5a2b6f"),
		},
		expected: decodeHexString(c, "0e765e75a0ecc056b01ba5a13f3255274fbcfc7219538313668d09aaa6a17d736ca29e6f47f7c464c17e3777a33a37b90f0c750e425de3d8550ee3cbe2f2955dbf75a187ef63aedfacb4bcb61e13de61a183f0fefe070a8ca772f0b4c0b47b3f9c7e9844dfd8068d227c8d6c790df25ca935dfd3eda0e5aa42fe1b7e130aaa7a7d4c65ae8650cac7ed0df44bdbbd469076a184d00bf606f9d35db3cdccec14483d1656204367cf48329dc1823073b9ec6ce9eb5ff023c572c1386630b605c388"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_0(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7297b3ebe66455506d74de9f8419a110e266733abe6d8a2d12c65b9ad52fb562"),
		nonce:                 decodeHexString(c, "e5257e1a417ba829efb8c674ccb4f0cb"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4b741b7974aea4de35b160c7fde146a7fa11ae65620ee0f3d71c7862c8a18e5b"),
		additionalInputReseed: decodeHexString(c, "54deb3b788f770e8b360c21bc0965f3cda246aa1bc8282211643ca519a963d85"),
		additionalInput: [2][]byte{
			decodeHexString(c, "15b46ecddcfecc338fd2bd568d3be59cd90d3f21300534bda380bf65f464532e"),
			decodeHexString(c, "f41e11f56e6408e338d5c9db5a59ab7d7bf5303bf640a5db0b3d796effd66821"),
		},
		expected: decodeHexString(c, "64405d6acb6af89470ce210ac6b1280ca3c6b83dd44698972fe22a4fb51a925cfb6527778bb866c44644723b2364236709d268e50eabab118f253b4a5de547f0c921eab5c1d1af7530e95ab875814896a11cdca1af438b7a06092cba1a337b785cf650daff12428cfcd20d4f4ab95a29a61c46d3dcf02ee2b1f3ca7755cb5bab1f7ed10c3175173df4e33740c24519bdf5abc354f468a39287a4d2c82f9bfd1816d5f4365b1ccddd72b6ad60dc2315b8a6f85ea7daede68f59a2edfcee672c1a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_1(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e2ae839dc05a9506bfa06c07a0dde8c1484948fde99dc61ff24c90425f31f9fb"),
		nonce:                 decodeHexString(c, "9c5ee3f6c54c968d3be2774e68252994"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "15ceb5ad15e1f48dc85a1aaa9ccfe67568a4feb63d81fca94301fcc5ccba5cc6"),
		additionalInputReseed: decodeHexString(c, "97a72fb17b4ca0a3e3c238cd7bc6eae72cb5f7be4a4923712a83bca2f44732ef"),
		additionalInput: [2][]byte{
			decodeHexString(c, "94001bd1d8699973fce9d3c6bf97c6838cc5fe35d48663e7d1066d4e632a2f57"),
			decodeHexString(c, "2d42690c637d566289d86e3d708c139219125635ea46e16e32cece022f3d2c8c"),
		},
		expected: decodeHexString(c, "1ee2f2f003223bacd93b33a448d54802cad6cd40a2986724a59ff9c2ddaff2eb1541b712aa252d552955848a58f80e6f4777c76e7ee1be6c8f7332b64539e7eabbe9be63069453ad4f1fe274e6ed9be6ac649d67ea79416ccc9543acb2c6eb0ec97f77d4f3d575ec4fc0484a0d382bcd0ac495421cec493535514e9d5e76fe3e16c82b2ec12f454debccf1186a69438c876d9c9b82dca5ebae15ff793affd67e1983f705c36c05b4e5fbb25491b98423be4e2858c37729e70b9276bb3d7a2b6a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_2(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "0fd336a5aa1c4d91f091ad86e22ec3c29d3cbd20aee9ab3c1636d375660af1a0"),
		nonce:                 decodeHexString(c, "c971391543d8c1fdd2c06c721fbfda1e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6cea8b3c07d8438502e6dfdcdf2230bd0ce5cae6b78a07bab0280444d446b4bc"),
		additionalInputReseed: decodeHexString(c, "32f0ec07ef4bf8151747cfaaeb449272e097c217fb421a08817fb044b44c7451"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9664738f99d5e8b41985985944edc9a4b8e64c6051d9325db361fa99cc073c05"),
			decodeHexString(c, "b0b3bcad41520ae89652e817767deff215b9b7e2afe522a9b7837f71b0cf9d7c"),
		},
		expected: decodeHexString(c, "a77bbf641814dee6e0b69a7925313735500f7ea6499a94f82c85fb114fd9b3e5efabab13f31697f4fd9590dc4aff5fc509b4312ee5674faab70d1d9b69d6101de3ec5feea4a478c41245dda7a5b4c3d2447e7e5a7d41e6341055b7caecdcd8becb3c07d7aa073bbe9b4c1e50c6723637eb9b09d6b6313bb99a00c317832d3b4d88fc8806a012379100ed732b21adaadc3ab7749d9dd9383c6a6e3397b64f842ea2c721294a24aaa715c5b6e13ea414d07769642dd08ab7b3a82f056d11548751"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_3(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "51ae93165346e120fa6d9561fc31bae7f27fb125b2eee3d6fe905762c765e6be"),
		nonce:                 decodeHexString(c, "909724716f94f4d52e5bdbe5c6d164d7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c3b09d88bad07746985a546a7dcf4bc152c50f16ec03bf4c65a49f580714dead"),
		additionalInputReseed: decodeHexString(c, "bc9d09434c4e67387b20c4c15d5fe9b178a20f26b245d2bae4ce3fda8e09679d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c5655c20e765d2ac4af4120a883f2c47e97a690d78afed45239efe89002472c5"),
			decodeHexString(c, "68ba0203609e50bb3e7652ad440becff2c2b3ec57e09f706fac6bfa2492214fa"),
		},
		expected: decodeHexString(c, "0f863be20940ddd9d51bd9197881dacb1c0c5ee5c6ff383c002a02d5c93b28808b420ca026f0ba578aa84625a2ef2936f94ca75bda3d542824461fe10d522c1994adbf5f34bbb1ff216c1f21115e615020886675a4e0d5b635dd904c7f45e91f3a3bb3dbde52985da50c4048ac3455312ea70d9abde19ebeb829be621e1f9c88cb75c07aa98d3c555c7d754ffe9337661b6b27c9dfd7c8e08024dcd0613105e83ad98b5f86b166fa5bb1987f9e75a2bb928c45009901df3c0ae12e8a2c6bc94b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_4(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "0656bda83049d68101e476174481bdeb4fc17eba899bb2ff9446ac96e5463839"),
		nonce:                 decodeHexString(c, "010caa9377e872315fc94afb4100985c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a2dd33670d867bea86bea3db08598c374f571ef9beec36a127fa40bf91392174"),
		additionalInputReseed: decodeHexString(c, "ceee5fd2f4e9936779b1a7ab37559d16e5c83946d35c4c144e929a5a35a5fa0f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1d21905a509ee57ef427dfb8ba0a39e28e990e92ca6095f58bb064dd0fb12a80"),
			decodeHexString(c, "b5beaad4436409d1e0a6c4fab5ce0e97478af176046bbaaea799f7ed223200cd"),
		},
		expected: decodeHexString(c, "7619bed124605e790e0bc54fc1eb95cce6a0a0e012e3d016fa2e617b4bb10fe0a6d40ae991765e1ea6b2ac0b19d19dbdcf48d6e3a8c52de889163db8fbf7106fa3f04dfdbf52f7c8a7d567f0395d941e8a848e2cc2ea3eabb532c9b50594bcde33922ab92cb0f1455e4945ecad21c4666c4c5991960a9c45027cb548ed17b004eb4a5dd73e2a4b0f4b2f93e0d82a5225395fa32a61b6e35f4a1ca1b84afbb3d09328af40d15609bbaa8c557a1d994c49aa91b8cce2acc1a1d9ed05a901176acb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_5(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "43604a9d7fd01eb74fe518e58e6ee2d62f3d569345b3064fd6aeb6befcfac79e"),
		nonce:                 decodeHexString(c, "bd069551a21d75860ab8935c5c1c10f5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4838b0d7e1d75697fb268cfea2926087ca80001100f0c66b87480a93eb06fd01"),
		additionalInputReseed: decodeHexString(c, "2f49b9590315b5dee4c473a3351fb21f7cd2ab313c8d937dd9ac2e4d208cc750"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dda255cf58a41f21b9619d4db803bbcfc12ee38c82980c28d458c97541d3e431"),
			decodeHexString(c, "504190ac13621c417cb469a23d348fbf076a9efbceb68227481823070aeb418b"),
		},
		expected: decodeHexString(c, "813791d29d8bf3ccec2502a4c446617f89f8cefcbc7e11038a814249af3c0c147b35fb40b67434afb69e0778e03d6c47d08d1dc38aa1a5a902a3de826e5252a13abde9d6412ff8b39eb82002237ae545f4edfc5ffe5dd2c2ca54c29fc201166058232412045f33c1feb567f684018fd947093581a0ee220912eac8705d2fa658f7106d2dc645b167ce3bd5067a8ef633456acba3b5581ffeb79447626b7aa4d3786392a9b112b7d22128bc3abbef53cb9cb33c4a3b20f3ae0427bd5cc63ffe29"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_6(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "ed41fa267c226f8f78db1f3049551b508f603f6e1d63f2a80908e863aeae45b0"),
		nonce:                 decodeHexString(c, "2662eb2c1ad0f203f0d936fc47bcbdcd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0b83e3fb5d2348f7aab99fa5fa64261a01e5412b4ae37f866d1f98b0a4cedc8d"),
		additionalInputReseed: decodeHexString(c, "9dd5a6f12106b5d7a2ff20d1a7991393776f7e31c01637098c9b93d1e23698d7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4c4f175a275df6f2324bd303a7dd6b382c5b6ea369f0a99139951a6a1ecd3a4b"),
			decodeHexString(c, "1329ddbd7d5d15123a84c15a9222592f3978d3df4433a591b8ff2efa93783ccb"),
		},
		expected: decodeHexString(c, "fea3d4f72303ba7ecd3a374e3648675efcd90ec502e60be6631ed9bb7c45cc86688a12c59a392338095607fa3d8ca240c489e33115b94b82c6c8c219181dc547d9c6b13e4dc5c798f116aa438b4c491f89a887b0e33b761f7ddeab10bf379401d42fd0e45ba0bb5407f75c61742423e1507949f19a3102fc4fbb611f877352c2b413384326560b8e069e1b7dbe600fc72d055165de3f7049f4c2f6ece834837cdf0be980f3ee1f6d72d978192f57586cb37ca04e091c01635c6fad7eecd5ad9b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_7(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "5176fb99ff294b0aa3a78fce18c6da9fe4bd3a8449d53e88084a73579215f7aa"),
		nonce:                 decodeHexString(c, "65e53e7a90589f4f8b38072625046b0c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e88e2de323d250a38c6933aac339d422dda2e94960636ca16c929a5814fcb1a0"),
		additionalInputReseed: decodeHexString(c, "edaeeb9b82b4834011dba1dda3723ce83860451f86409f74139e060284e2bfe1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b59458780c608b243ce1f63ef6659f37cf03660ef323acc31b20b250512687e"),
			decodeHexString(c, "18f471425008a4a5256bd3dba0ed32490145f4d55e0597409474d2ee619584e3"),
		},
		expected: decodeHexString(c, "d9cf0fb6744df5e2e884b02d690e2f04f20b0a09a7d680403601ffde3ac40bc7d6183f1b99f7623c390ebb521d42246ab1ec60e147367b6db20ef393498668e05e4dfebfcbaa965761a90841399f44bcd79605183e9bffaa8183b4676a69c7f69581d637bdfbf425901beb276a14bb2ffe1296605443376ff3072019b556293b90a292fd82211983784a9c8686ed04db7413e50f185d3411de389d116f5b8ab0d11f1d51fc447f77733e2dfaac3f1d8b4c4bbce378f128dbb3b2271a52f6ee2c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_8(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "b90d554ce3b22059f6ce8901cb53a3c150ec4b04cb1937bb4666bb02663f9995"),
		nonce:                 decodeHexString(c, "ce2df05a20e695870baeb8f1afde974c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8fd35525146cb1ed4d1a0fc2450d629d82abf079cf24bdadcbcdb433373ca872"),
		additionalInputReseed: decodeHexString(c, "78813ef273e0b11884ee8a47ae530389dc8f1e69e19db8dda077194b7b4c959f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f11c7e9bfe48f69fea7ed99898b9f658098a1e40c02be30bfb52d0b44cc9bd1f"),
			decodeHexString(c, "f05535509e55e24b99361d4cac7ec54d87001ac6d4e11dced202c6aa4a64ffd1"),
		},
		expected: decodeHexString(c, "8b69828cca0882dd5cf541431925311ad6f7bc62ef6292b6927ab4b01d66f0fcfba091243ca0aaa296a10469910d61d8d26be6c724653fe80f6c1e2be19eb06c6de81d19e8e9d1b60d101157c284ecff8c0ab728a3cc52471b435de3033b6ec95c39efd47a031116b41cf7e2617308901983bd086938f0e5fd15ebd00618632aa45e657ce51be2f0ef4e13bb663e448cf7f4261ed54a61169a9d30d5edab2a941c54525be4ee134ea6ec690f8bcc2b706e064390ceaae3a6ec0a80b929126497"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_9(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "873473a919a7170606bf8c22d097d20995f9cbc4b16f394000bc287659870851"),
		nonce:                 decodeHexString(c, "1a24671126b43dc409900d45fe7963f2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c8a69171ae03963a07b6e9311fc4ebb5f87397ee839121c2ecbe13c547ecc420"),
		additionalInputReseed: decodeHexString(c, "b21be6628641be74dc6ace81932e25ee43d79dabaf55d6a4b196d041685be339"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dfe57cb1c8b3cdc78f479564569b8638edf381eb7d7d73c0c3dade6cfb44508e"),
			decodeHexString(c, "9389f5133c6d9da525f79cab96e54d7e9474af313b3fce65867fa92747043d4d"),
		},
		expected: decodeHexString(c, "67b54eb6b079609a761cbed83b6e4f2296cd27fbfea32970845fc35b06c987aa0a8d6798d6c309142e5ac56ff4b4e8bb3afac10ed39f61ce2eef477ec68696d9ba293b7a46607a8f7fceaa4f4319868008456da0f9e0b9b86c2eb29ded7e608a9d01baea66ecb7e14e073e6a3b29fb6b321aa3c5dd8801f4c689d610da4e0f28edbfee32dc000d8bf988f5a4839f0565634b5a777a445d0d20fb10200c03de64cf25022476318c756563fb9be0e07c6f7344b41811ce3dd09bb74971e1a09a13"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_10(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "8fe60399885a694e9c5a47672796ac14b42eab6142d05db7ef8919101a4264f0"),
		nonce:                 decodeHexString(c, "0a0631d72903e7d90e9fdd9f7cc27bcf"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0e44f1239ad50c4b7a1059baf17bbe2c00c96650ba9d376021a8947a05c44c21"),
		additionalInputReseed: decodeHexString(c, "01bf4264a490fd179a63b2775fb4bad575aef8e591664f7c0ac0cdcb38dc5c57"),
		additionalInput: [2][]byte{
			decodeHexString(c, "228d836b9dc5e21ef846c003dbb1673fd435f0e8165dbd6a06c4e59c81aee22c"),
			decodeHexString(c, "62cff6bd20cb8343a9d5e42b9f9291f60a604799da5aa4ba8f9e87a501e4dde2"),
		},
		expected: decodeHexString(c, "f15b3f6facaeaa0452afce86a1b26c45375485979ae8c20a1a41675349cbc18e9e94fa8de7e0ecea9b8a0a7771abc9c5604e474e3431bc0033e6b81092fac2d31cb2faeab1ca32331a6b47e0e77a237a5aaae1d8a1a077f3603ae22470f315f04640eff0099f6d48d46ba06a7f467ae8d7d7ce1175fcb5ad8b5c9694e6d0f1a2dff89f58d075bcca0ed3ed3cff836339c4c8fd4a83d8ec8359132bdd678520501c766289cbc25e917fcdf9fc32dae256852f13811909018b3ab01434d9e139c5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_11(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "d62231788fbac95e07db32a3e94edd5eef35304f679064f9cb37be4d569acfb3"),
		nonce:                 decodeHexString(c, "387a23afcec2a98e6e1e572f4590f324"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b7c05423ed04ccbc6cbe60c36ba9110022f7f6f7efcbe8c27ab8741cc65afe71"),
		additionalInputReseed: decodeHexString(c, "5d0f5b1e98b6fac595f5f36973ebd5e6dbaec0865f2c6e2204ab9d1614b69719"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2f49221737580da91614b2603bbc5ad51e9ef69eaa261ba166d65a5f27fed225"),
			decodeHexString(c, "885a8f1f3e9b3aeb5c01a847cc7f22fcdf0a51d389ba0dedfbe1f6634687f576"),
		},
		expected: decodeHexString(c, "572dde076f9af6d7a58f689aee45d45d7004b7c59eee7c27059147c93cf76530e623d778c48671bbbd19c1177091ec8d1b8f144d8cc4df8921c8688cd3e46f84d2f751eab89ccd4e658847a18bbe44908812228bec57b2f7ef08588f69e6e0953f75a022d345909f21d423304e81944f9cced990ea0b48e9f103275b594cf93a128beff9a3a7002e1ec7861a116726c3fa07edbb7ff1e757a87d2b1e1b383a59578c6c20069496b3004d8812bf04ed6cf6c4e7687dac9cc867525b0a4bdb8323"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_12(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "3772da71e9c2f344cf35df740467a2ce6d1ce44cede3d6ee8fd267ebfa09e0fc"),
		nonce:                 decodeHexString(c, "e350c308020ad79dadbc1edc68a2bbd7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d01c7fd67c6413691667994051c2da7043a7d7cdc3c0b32e3b1842b07c2b1591"),
		additionalInputReseed: decodeHexString(c, "9bb381a8fa8e9f34401f151c36cb80444e9d5c22630b9590130bb616100439e2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f07a627e37a30aea544919e2a6d246aa288760886741a91ca9080522da18ba3e"),
			decodeHexString(c, "63c7f304de4e35dc6fb9272b38b9700ec575d29d4cc91c1add25740e35e7864b"),
		},
		expected: decodeHexString(c, "1a89a8760aeb668e72eff6d6e7e8642e15be44f4b581a134dcf9e11870262139d5727c3c0ff593c2c5d11f12f1ead95a78cb90ce96e6295afa9cb68bb52f01b699f07d792068885190cce21618ab56f6f64c46da8ac1ccc4e1788eb3c0ec07b2e91738c251e60a9e697727d12bd652ea6cb53d02164d2f1ca546d731313f3663943a61b9d8597e9cb987fcb19e68757b316b5e64e491dfcc25aa08bb91535232b1f70456f9212118a728626a3c3d8b925ae211a09a88537791625aac5b82ab1e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_13(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "5330cfd1e4677cc79df84b631600aa7143c61309f65162768054d3d52279b79b"),
		nonce:                 decodeHexString(c, "8fa0f39d31bf0762df895e55af4b29e9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a29eaa513f8daac7e4e5d63cf955c21feb8e7a446af43ae7e370c0c0986b1142"),
		additionalInputReseed: decodeHexString(c, "3219dfeaf296da7e9d7e4b9bb60fd26abfd477c290c55d642a56b9b5f91cd64d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "282c76e181664aa10b92449121487f960d8431c7f1392a0d43be85b9082f5289"),
			decodeHexString(c, "c6292a82e9d5b0d49e593eb3d16c68748e38d971a6c3be4d4da0e28ea6b98f09"),
		},
		expected: decodeHexString(c, "2073748681d934ade0e9fc98e173b64146afb1ae977dcfea9a4f38e896378b3843e7d9b2889118bc36d14262c836b55d956eb3b1f2d889629178711dd7574450126e57fbedb8a6731ce4c78d8b55891a04012f09ec75afa695b55f16acdad58a96452ca2268263b48a8b85abaac70581cda052f3f4bc264ffd585cc7ca09b8fc879838ad181ed7a2b01ad08d2ba96abc44c61af573cd187df345a44b8f2cff5195d5e0b4664f3efb4e2e4a694995d804b3fe272f82b390fe9dfe7f035225f434"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed57_SHA384_14(c *C) {
	s.testHMACGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "3ee0f0f2d187dee39f37ba774ead7db2cef79c91e53315573cce773aa832ceb0"),
		nonce:                 decodeHexString(c, "38a98516342f78222119cba03d38ef17"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8ff435bfc78b2dd7f56423fa63dacc72045e58902778b788a974ae1a347ab015"),
		additionalInputReseed: decodeHexString(c, "9522e9b02578fea1fed1e532d4763c6f014f8a22e83a14bfbb2a6556786f0e88"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0d0808177314e4a080ec86c3cf371e6ff58d6a08e56a6947ccef0e84435fc543"),
			decodeHexString(c, "1afb5d3309b1f93bbf9669635758c5e9534b029fcdd8c4112522aaef6347898c"),
		},
		expected: decodeHexString(c, "19d01ed2fb655833747a3af03cc638c471d52dd352160602375675945f0bba49a93ed5a62cb57b1213e336127ae99f08693b838f0f24b8c1a80f18822f023a3dc4a303eef7a8e3f3238f03ec77ec796dccc76a5a672afe7a8c465031241f7147437d9378c3412dbaf2bce373a2ebfa17a124e24e765bd9b3e2a8bd59af0a468a54c8d5ffaa370a5b169547bce4399a8fe44a513cd445d115a44e69e0c27440ad2ea276a43c9bd3bb745d1cb3d561f4667b6f61cc032c50c957171d2b4ae62931"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_0(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "f7e64a9bff8fba0efb028c0f01285a0c30b550e15814e4377b3ecf6050d7d37e"),
		nonce:                 decodeHexString(c, "45c98564cde8445f83df7ca3ae42dd4a"),
		personalization:       decodeHexString(c, "6122bf4b1d722ee2f42cb32f18b36aa1c61b9d18036fd2c9c61e4ad8eb0f047a"),
		entropyInputReseed:    decodeHexString(c, "bfe7429dc2a4cdcd2816f170c81f7358cf957073d696401a761b9dc6af1bf457"),
		additionalInputReseed: decodeHexString(c, "6f2c3bf3833894857e06e5a336028b0b8e6f60962bb2ce18da5d6d86229f98f2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fe7e0bb856ca9d49553cf00ec1ef8a2ff2d213de19ca07cc37d192eb32fa319b"),
			decodeHexString(c, "66caf1f1b8b6f12f8ad65060551d87edcbaf25ac2efecc303e624988c514d84e"),
		},
		expected: decodeHexString(c, "d97d3ad44a650438a0cc32fac69d9cf27230838dc7142b147ecaa453fe02dbaf59aa048b004966b7852730a6a374a1cd430177a6c02f3027bfda2165325da790d3ca9c41f6d8a1fd168fa60333699a58059a484d6363fff18df3c9b2f5e9b9fe7491df371c73cc84d321f580bb6ce6179cb017228f67c401b53aadeb21365e3044815a8cb38a8e1523913fec668a021d42a2af4bcebff900a2eb15e3f39d06f91629adf4bc61b38eb10d5e6265aeba11565aa9c5e033f2b109c71bf6e49c0137"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_1(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "324b4423a7304db37aa4a26c45adfa91b72d540a77b845654b6ac31ca77601f8"),
		nonce:                 decodeHexString(c, "b39fcc65e47f304ae519a554556d637a"),
		personalization:       decodeHexString(c, "e7a777bf050f03e4a879f66473ee39db07acb8c274da644486caf9d462a965aa"),
		entropyInputReseed:    decodeHexString(c, "739736f4b978ab2e680509268ece87758dee6fed381295c93fa62ac754b08b7f"),
		additionalInputReseed: decodeHexString(c, "3df931603ccbc21f180c1bc8921b039ff66dd287688d871384936fb1578ad3aa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2e8e735b8197cd3c7a5dd6b8889ef47e940f11060cd0391766fbe5802b3773ed"),
			decodeHexString(c, "93a5a4f4c8dc63ee5fe758f74d32c1bb68ab7aa5c97db98764b8d5436c18ad91"),
		},
		expected: decodeHexString(c, "393bd2269534addacdaa8afd3b93592f2b51403f5a17410b309f2b305569f887606a5c3ed2e08336620c26ed5246858b6233d12752a77d0f81ad20a8cb3f9cd7ef20432f6c9246bf56130ba98cdc73cb22a9da87d3984fdc676dc6782e59a87d659bc8ea1ea38ff6f5b87aa793482c0952f9c6dc982ece0de2a20429e6f8ae219d3dd2d044599b137d9d03830ace7507ee077863ce6b3ab76b8295011d2d783d6116be5b6fa0a92ffe23bd458aaabd39a086583c6c8b0ef80a4e7aaf706b2824"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_2(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "5cc41dc27a3e7412e36ab40719cddd5de7bb62c4229bd2491864aa6d6ac029dd"),
		nonce:                 decodeHexString(c, "4e608011e4d093e2d05fd42c52d0a4dc"),
		personalization:       decodeHexString(c, "904d6ceb619f08ab3240d394353a472a1759b268ff0c3022b22ced3fb61a4ce2"),
		entropyInputReseed:    decodeHexString(c, "f9505f99ab2a3432d336b9cc59406ead347f2683fcf9859e52fd9657906dcfcd"),
		additionalInputReseed: decodeHexString(c, "fdae3352b135465e13ffb4f9290debb61074466df68b9bd82779f0432cf38dc7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3d11ec2a39484140a363cf2c95d31bbda42e7a348a640b0a026ced3e2c72207a"),
			decodeHexString(c, "b773d3efaaec6efc6cdd330a1d77b15576432382cf165bbfd0e738cc56b21dad"),
		},
		expected: decodeHexString(c, "b32a7131399ec498f823f3e60f55973017f6a93bb7496b092a365e2827d92a89fe4f63181d4bc9356169154066f4e03c1f08fc6eac7d784047ddccd6e4c7677802bc2a83f8711f9e2971792f97f4d9ade5cf14c2410dc8e7abf72889be22a4243a4d2bab13356bdddd161266b40dc030ec48ff8c961d4a8e2c8caa2b328da9dacce862d6594d1e96ce7b8b33a3fe41c548a449c89e5b1d4a817484d8d3627bd59fe3d818fa10c4f265a4c02724fab3957d345ec5f8908821115ba936c7df70e6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_3(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7d3713b36fbd5f8e7a555d151a28e76ac87eab9c471a4aa5f1ed8563eebf25ef"),
		nonce:                 decodeHexString(c, "f99bb84413c4d9e0a79e615fe2cf59df"),
		personalization:       decodeHexString(c, "ce3bda911d6f71f46015a1bb6d78862bcc386456725559bec231c3c2b599c262"),
		entropyInputReseed:    decodeHexString(c, "5280fe65211ce37b3b81cb59a1ad52bcd75a1a77efe3a997057fc838d5937d51"),
		additionalInputReseed: decodeHexString(c, "98c45281f4d54dcb854d5aa4d1e58b4d3509c78978489f3b5e2e551c35042eb0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9199846932758ec6113c973ff57f570c28609c71f20d42250ebccb376047c86d"),
			decodeHexString(c, "0b4ff7c01b8577228e84cd4c159ddad6cb773e257818afbc500b8a77a66f7a3c"),
		},
		expected: decodeHexString(c, "ace30203a6460150fa835ef4415e1ebf35736735f8d710fa3cec98ec3aabbe491c936fae33c796081f586e262efc31a834a4ab338676d2f94c8f6871ff3d8343852042becd3f2b1f8dac041328685f1c3e2667f7c1f31c2a29a0e7202149d1d4637083218c5c0b7ecffb01c03590464521d96636118ee08c31289547f6a5c7c743ae31e5511afeac0943b569c7c42dd0149fc89e34438d2bb9b363ea9737d02c1f72dca760edd35622c15196c2efbc2d33a224ceba1eef9f254e908a0c884bb6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_4(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "5f36a0f6c8647db51f449dbbda4335c82ee3a0a1778841a092e63eb30a6ffcf1"),
		nonce:                 decodeHexString(c, "48106f388ebfc9041129d7f64c31a482"),
		personalization:       decodeHexString(c, "947dd3b1ba61398108d34d13d9bf26401372d3296cf38e0e4be157bf79a78b15"),
		entropyInputReseed:    decodeHexString(c, "3cda3ebdc7ce439feb42f6b624769ff53cbdd88ee07a90167dfb547f94768c57"),
		additionalInputReseed: decodeHexString(c, "528f5a984e47b578602d68bb4f70ea025a310de7f2ff1c9cdd2a51eff6081ed1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "100214baf5285c1f6f289c1dbfc0b81fc5f3840a333fe452e44a36687a688431"),
			decodeHexString(c, "b5086b27ed5b03df251d7944c437278c11ed0bfd642102841da60d13ca068664"),
		},
		expected: decodeHexString(c, "9833deb506a12b0eb253b2d742d09006bce1b1ab1d062c05968205d0c6a3b7ad519e8ad30de9be8a2915204c9af34fe00553d50958d072690498a404a19df1b0a63a2b6acc8505c61d1601a5d71bc010af745228c6b64dc198505caacaa68a7b7a407f249dfb4ca38134b297c0dfd20107ddb5fbcd42fbc03f4df56cee8aad5a3f81e90b57a4701f54f79245c72673a8a5373d625825915384a6ef589ac95907a1853466d7f2b5a761d9fdd4865e409c6d41a5181982bdd34e8268ff2a6448d4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_5(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "8da6971b19f6a5837a13d9ed5e013ad35f52550403687b51c130f57bd0a96dce"),
		nonce:                 decodeHexString(c, "c1e9b7274cdec4a9519692f9961ac494"),
		personalization:       decodeHexString(c, "84c9e62142d44cdbb6ff52784e0343b8a2778af9d662d965a170f9ca7eb4968a"),
		entropyInputReseed:    decodeHexString(c, "aad384d050366ce9362f153f488f84f519091b98d830174838620e97905b5a47"),
		additionalInputReseed: decodeHexString(c, "9b2ee9193e646c42701170a2ba1df1b810b146686e78a4925297cc8964be4e22"),
		additionalInput: [2][]byte{
			decodeHexString(c, "52d985cc41a3d1117e2eaa6564d5f46ee925d2739e0e7422c0f7c15ebb17b9f9"),
			decodeHexString(c, "0f1d8c70052fde0e922127e8b85fb0afa0843921465cda8dc4a7d844eb9ed4dc"),
		},
		expected: decodeHexString(c, "d857c0fba8486eac49904de46590ba287fdf5f6071ea529efc929a949d9b32b06d0906855af0a436066191eea12073c86086c2c1f235baf1555e1dacf3f351cf2db40de8f183121ce13575362c397c8e4117175d5581a6fc8e6422fae435b662bfee81f02911b4e916a58fb627d3e5ed88fb484571e2c7af5f8c56aa85216cc43d2719e18f9c8f2fcc11867fbf637f9fe8694a2c5593c74ea48ec8df755302558105888cd7c91936ffd759c589e2bfbfcb8662c2ba6c4c57de1fb5b6ba491993"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_6(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "c0d602c8c089d87b75c9bd0b09e411609fbdabb841fe067a20f0cfc59e943b17"),
		nonce:                 decodeHexString(c, "34678abe79436b1defe5a06be5a7a543"),
		personalization:       decodeHexString(c, "868422746762db51a1e65b29d08bdf3e0575b66837a5aead302b10c513bb8548"),
		entropyInputReseed:    decodeHexString(c, "0ecd1d0cebd373c0c503b3689c99f190f8d44648ffc288af69e5c6661f0ecd02"),
		additionalInputReseed: decodeHexString(c, "66f359a5003afb401b7596c345fb6faa1f6085fa69b2ef260057d01f502d9aed"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e7131c5783ca7741c8ad8355a032cdf291607c9a7bebff045d339af065f798c1"),
			decodeHexString(c, "1f50393468e12deb31c5b5ae44b70aff6e317625cdd5d749475766287ed2933c"),
		},
		expected: decodeHexString(c, "dae8ebf94853f9acfc12ad366b6c2537ed3f09cbbf3a82220e7b019c8bc62518621924c04cf2fedf1d9559b78e9a79e977624cf291bb3d9376116d423de49bd83225eb24a355c64978f694a1c578e2076f62aa7d0384601f1f02ed966c5819721f70dd1dca0fe36144ebd27734ecd2fdbb83302452d1f8dabb9f9588197a2d22793309a440aef947c541ce11a32ee5ce942789c52c8a5776700e3c05db086a38eac862769abd7a53e907747b1b21ac4fc527c6f061b4cd2c640db5279ad0c124"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_7(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "97279ad5e38b74b2e1ce94209b17b7cbfded4ca7d91ae08e5a94bb018ca4536b"),
		nonce:                 decodeHexString(c, "d5959aed707e20a87c1b09bd1cd6b251"),
		personalization:       decodeHexString(c, "3341afd9141b95c076188011ee7d73d1d57e6986ecbf55e84ad6b52a9217cbc9"),
		entropyInputReseed:    decodeHexString(c, "9e8e8acb70e4f34b76735a87d8d3f556ca096e4b55494f1c1ae0a4dd4feaa6f4"),
		additionalInputReseed: decodeHexString(c, "c99dc4a6f578c71e791f51fd0d36bc672527cd3c92bf7e6ea79f761e3f3fd76b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "98ce47e9dc80f6abd3110e14277b30a33e6bf3a40369fc5b2eb62b5f804b5bfe"),
			decodeHexString(c, "bab20169d7670bf5e31dfea92762e2ef541af622788d577a220c1166a6eca33a"),
		},
		expected: decodeHexString(c, "b58936f25a4aa5c21cd6ca021e1db436c7681f9dacaed7d9cd91aa674420a999ba925283e3fc5af068429c5e21d827b8ff1b87b0f973011961962ecda3dc8920165f0e3ac5c508c74ab4056831cbecf3504531e049dd802162d00018b3cc5936dc320d86fd56d801b2476a0abd5d3abc64a2b9cb52a79d01ac72156751144e76ee1bd3bb30871f311b35c36f3aae0bf06ca5f79a6ae696f4c5ee80ae046fdf460130f000afbcfe209418c5056dc3bbe2279e631317d988ffdd0c2442b33e7cbb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_8(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "65f6116ddb0684f05509beb3a8551aefa7a038fd355b17c4cefd172dba6366a2"),
		nonce:                 decodeHexString(c, "cdd87b201d0b6818fd1475d2eef6b927"),
		personalization:       decodeHexString(c, "227974600b1476b9577168ba6f8053cf2b06cf130c68f2c13d8c841b79e3f22b"),
		entropyInputReseed:    decodeHexString(c, "9e06ae5b6139888f6006d98fe218e7a5bb0bc23a174565eea9edaa9563ffd299"),
		additionalInputReseed: decodeHexString(c, "f828dc34cbba74d1c42d401a60d56193cbc0a7d823a9e4cbcbaa546f5fbc68b1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7e1755e30487343364c9f5c1229114c923ab451390b59f20fe8a83e8d582869d"),
			decodeHexString(c, "c096ba79be0f499d853768c29aa0c609c658c496db0f8f0b0d03de5745a05e6c"),
		},
		expected: decodeHexString(c, "7342271739137d5d468857a7f9cd63af44529fbe5be721f8ddd34a7715ef4ab51b05b82dfbf745d35bf0c58677a11c57dc8dd5a7d33633e2813690a520d5094e0c2b3ede8e1f522447ed4ab823302f64319f35bb2e50c4c1688ee16d1c292a6c2b3a7e029a033df2978faf14be6313d5d60efd7e187ac791bf0eb6a3d531f5ad3ec733a4e85a1b2dce2fe8000c2f90971f1c69e249b10ea6bf439b9a2b1ba98a0152e7026a0c577a1711d4642cb0151c2b366709e9730ed2cd3b7bb8986c8710"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_9(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e00641429243afeb92506feaf36fe1e2bb13bb324a45d0ca4989296f408a0b6f"),
		nonce:                 decodeHexString(c, "54cfae5b4c045a81dcc612d6c8cc64c0"),
		personalization:       decodeHexString(c, "ec8e2dccdbc7598f5fbebbab623e225eb75b8c7ebab726a8c005c9bc6b86ecb9"),
		entropyInputReseed:    decodeHexString(c, "691dab095c4b39ea967d5416ba396a2e1a0691b21c6c0cec55bc8a55b79a9be7"),
		additionalInputReseed: decodeHexString(c, "be3bb59c9b5937405941ffa1898cde190399d01566b477b2bdaad4d5fdfaee82"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5febb9407c05e8b76319a7a87b7599d8cb3164fb2efcaec09cc13207affb7b65"),
			decodeHexString(c, "8a5414125a64e8b4faaabcdfa9b990df1e426a410680e742e87b467a703bb208"),
		},
		expected: decodeHexString(c, "8a0abc956a037b6b0e6a763d28df82294592a580f04fa8c0ca81628503e00bb524de2c691b3e5e98865867be323119e8bf3b748d680b77e0d5f4bab66fa5b47434e70b939f3fb94e18dbf5152e3bf6aec323b8a785a775ca8d83e70bb4e06fafc7b130fc21bbf991ea13d0934900c0564cbf152d7ca50f70fa08193133fbaff60f198cea5a75620a97636c1e12104c48760448f37c05954ee3460afaa73e0cc6a2d72f9a316d646a01a4bd997aa84f75c452750d25df6c76abaa70e5ede0dc2e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_10(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "ccd28eb5f41c2631344e6b65fc93523075ab03d8eab268989fb1495de2190b8a"),
		nonce:                 decodeHexString(c, "02fe9e118735595a139bd588731cc89a"),
		personalization:       decodeHexString(c, "33fb55f4e82e39355f8d199b985605e7995621d62e3cc18abcf4270cd9037506"),
		entropyInputReseed:    decodeHexString(c, "9374807794087e687ff7b47a3ac07ae9e49e4aecd223cb9fb4986ce5e900b44f"),
		additionalInputReseed: decodeHexString(c, "f4de5c6fe99b4f2055a7e9e4928d1be66323024f25c177180f404fbbfc45c1f9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6752ab7f862101e649b5e0df226a1013b1a39865bdca6f0005b533e9e21d05bf"),
			decodeHexString(c, "adfcaadabcfb1ac374b6513e119c0356d89367839378bce2f659d3ce17cb0a44"),
		},
		expected: decodeHexString(c, "008b88259a0e85f05bf03b2dbb47b22b691fda69b8bd96352cf942ce6fc6ca1f40a5a59179dc37e4e4cbcd663848e1369aa93a97edcd858ea0e32dade7d77ce029cfcbea8fc462099178b2605fb1c61df06fbc457913247c712d04844e9fa6c7aea53356a487577de258484ccb2b570b4081f9c74c4af2acf2b765d2485ab3adc8f2bb04a6df17a8833b57c4087c648faf74bdb2090a41b6e42d6e9eb751ecde07781d598fcc42e69dc69f20308331e5bad12fb9fc2ed38e01933913eb04670f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_11(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "a85379f1c9957631d034882cb9ff6cd7340b6eee66e56d950b81af854414bb4d"),
		nonce:                 decodeHexString(c, "acbe481a0aeffcc6dbb65a86f08097d0"),
		personalization:       decodeHexString(c, "94aa5d6fb60e9b5be0827a8ae29070ddd18f8aa450aaaa489d465663c0d0b4ed"),
		entropyInputReseed:    decodeHexString(c, "1960056e6bc15f7d55f727f93baca60ca68a1a7efbb885ed3debc21b60c90e2a"),
		additionalInputReseed: decodeHexString(c, "afea66aa2251cd1d5692530854c9fc5e78996859ff29641314e7e4cc99829f75"),
		additionalInput: [2][]byte{
			decodeHexString(c, "14718d37bdc74cbd305da367c1523e76878ea3e272a7c05283f89133d8b18c4e"),
			decodeHexString(c, "2f3bd1c76c682007db8319f6148b3136f2d32617460c538eed9365eaa7fa5c52"),
		},
		expected: decodeHexString(c, "234e50505e3f23e522fa54234cf4d604d9499ac13f29958e13376a358109a3bab3cc84a050fc5e34579c3847cd307e6d38a30d27821a12ee182ddd62ea7eafc33ee2149a86284954c6e5c2aea835341d79212b2b0b68cea4eee1b3a45c3a10781d6fa2f09b4fbff1e016dfd9e6bb27167cf057e2acfa3b62684edd89ed74e9934611c3b992129eb0c554a392f273a22ad11efbd22ef87bfc42092abd711decb346231930b8fa021f15e607a94e912fbc40bbd9f71ff7f13438a4a9ee852d4178"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_12(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "93e36459d8eddea5df5402204199f7fe0142d3b1276c613eb84f0b582a0854c0"),
		nonce:                 decodeHexString(c, "234d69e851a4421ce3625e68a491bc55"),
		personalization:       decodeHexString(c, "85dc9b36c47362fbe23adf0744b7dc20cd9656b783726908d502d40ed4b90f6b"),
		entropyInputReseed:    decodeHexString(c, "948033b1a53a4b9ad49f3f272bfc9abcb8e77105b0e31867f60ade5e91bee51f"),
		additionalInputReseed: decodeHexString(c, "a7ff0f75e2f5da3e85a45f5f07f124cdc5d192467d352a7ad742f906bfacc8fb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0bcd123d961ea61f6241ba7c56068bf0328e252fbe9c677d236c4d2b90920a9c"),
			decodeHexString(c, "c3da23c57ee5ca6eeb4430edf77c5340434eaa0fab9d0bd8374a28af1752603c"),
		},
		expected: decodeHexString(c, "e754021f02c98cced81149c5e73c23ca6a453716a2acde0e561d76fe5c59682d9936004b40f477fa39b3da9e5824b346323f9b54146998a0b87df1a6e88de27d938e54d0b2376c55e8f5e8dbcff38d09ca6469ef3f23adbae2a6dafac3d19415c8112042d93035b47ecd0c3a8a950dd93768ca1772b6cab2571858e5b77ddf583d9468b2a309a9c988796bdb1e9994ca4e3c4a85183b897f376f2d66d9dc437722cf00a473310dbd819b863f726a38d21f6087c58fa83f8e4c71278a82574c42"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_13(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "c2922b5aeffc9c6d6da00dcdf2203f671c4a1917fd608832ae2957ce03e08a0a"),
		nonce:                 decodeHexString(c, "674cf1187bdd274bdbae9adb1d7ec1ee"),
		personalization:       decodeHexString(c, "64c9ef61eb0848cffecb4dad1bae453e54163bfd77f2683627cf1378ba088a2a"),
		entropyInputReseed:    decodeHexString(c, "a37cf7c36dc6accd7abdeb41eff58ddc26913126c5c52f80125c1e55edf3d109"),
		additionalInputReseed: decodeHexString(c, "8dd22c90ae5fdf1273c7218afaa842de139079f561349d19e7b97bd44a2fd139"),
		additionalInput: [2][]byte{
			decodeHexString(c, "02249dc36641fe41838cab92aac6ab1776cda976ed00f80dad72b6cb4242dab1"),
			decodeHexString(c, "3d13d0da320eaa538bbfb52ebf32871807dd2b0b79068f4fe5954b05be40f15d"),
		},
		expected: decodeHexString(c, "2b7de182a3946971a6ca6c921ad204da2580d9204b877410318379fa3f4d0d2c28c45704378c952e07bf61adada75e6976c0b35b6ce0db36b36dff98fb7140fc88a907f0b5a595d69164de28a9e28426985d5f2e523a01ca6b45ea834d2e2bb28efa778588f60e714c6be5dea24b2b96de8196054ed74ab51fa845b83781e99ff870d45c948d8d514cd6d15d3911482a04461093b44fece4a83b23302a98486bb4d8446227b9d5046ec73c821ab793ed742453a5ee994d6323882807dce3a0c9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed59_SHA384_14(c *C) {
	s.testHMACGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "1bdb84e51c32e1624cab5b79447edd8e749ecc9889c789d21b92b8f49a24e231"),
		nonce:                 decodeHexString(c, "a030a97565c05b5d97e572d9e4dec7f6"),
		personalization:       decodeHexString(c, "d48c2e3096bb8701615f1b8766666e308bfcf52c55eb79b46e0f0b736aa4d5d7"),
		entropyInputReseed:    decodeHexString(c, "c515b0e82edacb1367ce2e511ea95cd09a9bdaee5935f4365830738c7e91b5d4"),
		additionalInputReseed: decodeHexString(c, "1e100d4c2e7c6908ddbe3b5e39e52808d5f2efa9b89d3a761703b10e8f10466c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "41773d5e28f8887d4365f1eacf4f5b29b9982cdb0a07bdb54e1d478c08be4a93"),
			decodeHexString(c, "4b8e3bbc11161f40e6c6b7f707b8084450e53f155fa925fe256bd82e57ad6423"),
		},
		expected: decodeHexString(c, "e223ae662bcbe91ccb0a54a5691307ef42a483892c656b4e0ba472b022dc415d22569668a03ddecf430ba5120c5273527b88678fcf9c5696494a329c2f235ee6a9b9665d619e0da7d8cb5dab6e7a5ed0e1ed7e1cd1678cf5dc0c6d50444ddc9e9e4daa1f9d4b28c5c0531954a15b6fe4540b52a7d5c2e9cfa2cbff7b8c725c12aac3085e020243162ca4cc11cbf5a8d66a5b35a602deb451f834f8d2350bc09cb164c0f86cec9cbcc09530852cf72eda789ee9ae19c95ea9ee8ea720b37de4d5"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_0(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "8e716219ea8116c507909e97d61a3b92121f19e2e3fb7929f7dad0c67b18407a"),
		nonce:                 decodeHexString(c, "421855817ff615654272eedecb43bdef"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1c01eff6c0628065dd6be922e32b47f90e04f4a55d5d31ed876b2e1e97bd282f"),
		additionalInputReseed: decodeHexString(c, "58acad049c511087a6879aaaf884cf034e013938518399ab61ab0be97ebd9722"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1b2239482315ba4fda5429b1b4a69af1489f9c5364a85d1d91232c9798026820"),
			decodeHexString(c, "b3068274ee36e9b3592d4bbe1a9a5f2e6673d5b92127e0c2555b8d2f3aeae4f0"),
		},
		expected: decodeHexString(c, "8e5605608de490c168614a4d72e4cd1229d04b5d054db526ee06441173fe019bc6e862de5336b669ba7baac800f0b24ca799f295cd9e58da9cff0c30d87a402201a7da9448a7af12661275fc8c46bacc418759431e429f3a74fcbff339386ff84fd6eacffbc813b35d8c5172d2633f209d5d4501aea23b619cdf3056651b8dc93d27410884db31abf58477b99e95916ed5835d83c4b205da0e103dac4037f5f42ebf433b30bd68d378d5b56a8a3320d7107f65645354e22be281417a0fc79646"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_1(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "c940ef1139c00b7b0adf588448526a2c315de2724d66f15389c46428349a2271"),
		nonce:                 decodeHexString(c, "1f1a0b171759d88f553640cc1df339b8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cba9adfd127d27f5f5efd8233aeb8f6a616cc625e218c4b7253d67dc31caf609"),
		additionalInputReseed: decodeHexString(c, "fe0ce51786042f350641bee8d7de2c3b154f9454ee5269378d3bb2b982318005"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9f66243ecef254f6fe94224e213198ee8abd70538cf807c5f66fe53f4546312a"),
			decodeHexString(c, "aa3c9d3df63d0f8ac0d5f0ccb240007747d5dc5e2e2109033800eacd9792e1d0"),
		},
		expected: decodeHexString(c, "f7f0f4fc8cc5c3f97c2882f38f399736e5a8b427e5210963793ffe9a25384b9bf4f814ce37dff78448d4009bb748ec5dbd60cdde05f427e8462d683aef6b554e2a4b545d281b0b8f8400a4eff73ba1e154b359dee4a40656cc9fb2b5e4ec1ee3730e0ff8cc322b8680555984d9e0539f3f4d584777c372a2a8f2f31871da1ea2bea9de4f3458007e830941fb4128983f166a65b0171ec9b2b395214555191d63ea7cedbde27a92e3587a233e8d2b2e591f29dfe50ab0022f251bc60122260657"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_2(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e2a3f99da80666fa79d1945214c35a0345e9494b197bd8124d673621018db313"),
		nonce:                 decodeHexString(c, "5974ca1d83e29bae7882b4fe257accfb"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "91b414245265b1e93bc020c324a7fc28a83c482924de62fc653762198c8069ad"),
		additionalInputReseed: decodeHexString(c, "254313ddf61bbd469575f94ab84004350c4c2df6fc2c6858ff897113dd6f9fed"),
		additionalInput: [2][]byte{
			decodeHexString(c, "45f7212a950095d4130bed31b683847484c60feabb5b9833a86bb0c99e89cceb"),
			decodeHexString(c, "91d14f6ab7f2ef0fa3f459f21ad50fb2ddced5634f93897eb825e4d94cafda0f"),
		},
		expected: decodeHexString(c, "569ac89357ac80120ae2561604e4a69f5e0db02ab85184b48498473a38a2ce7b88bef0dd20aea637f95c1cf767187cb8f9b9e89ed752418bd161d6db2cfbdb0ed051c42e0ae9268d17cc23614cc50b530562b055d6896a1557117b855a751d46bc4f57c7e03ad309e0ba685ac87521e7b6ecc438bb2f5f348f0872a4e51a6b544e08924e95dd2905f80df729cd8a300469602bf6e577fe7697eeebdfad44e6c0adbc37c02e3d43c4e2167bace7fdcf50380f63e57e5d2fb8e21c3c150e171bb8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_3(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "d6f61368ee6086cab85afcbbb59d68c6a0ecf440d54479de785e8fcf784cc0f5"),
		nonce:                 decodeHexString(c, "113d922492d63e3ce5c88850c575b578"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ddf843252dbbe6ec25a1465ba268c6e336d94babf43dd5457bd6c699db284667"),
		additionalInputReseed: decodeHexString(c, "4479ce8619d400e065b59818887b8e006f5a1ed905bc5fc8d59db4a55fc820fe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "58f634f0ab161650fdaeccd3cdea41f5ccfbb439839401a091ec460511fb05d9"),
			decodeHexString(c, "a6b3a1f5e9e7e967080b9252c4c2ea43dfe462aa693bea160e9ef2a8b1dd19a1"),
		},
		expected: decodeHexString(c, "3a39f21aceac07279e5301ffa142d68013bef1073287513fd6a25a1213232b2f7ecf61df2c2874d5f50d448fedba4c3fd5820607bc5fa819f0c0cfc712f100085dda85e759316f96b0a53ad43ed2bf8c2d25dab2470e005dbb9a025d755902d8b19e5f2a655668d7d1d5f58a6137bdb4677d87cc7f95197009cfe964187b6604e7bcf7879a7023fd49547bb1b20986b26672a85415f5f1b5e6bce61d29a2bb9bcf7f0dd3c76cf7d692257c63acfef18425a8ccee476c880585b35d433110b494"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_4(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "cc1174239cd74eaf12d4399004df6ec5eb7fb4f35bd2797203ebac3a5ed797ad"),
		nonce:                 decodeHexString(c, "d0c5a4b9ba64a8d8a7e6aa9869e53a27"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7d3cf5b2a313c4f0fa994ca2f59aa7c869bd2070edfb3fbb4e34369a477226f0"),
		additionalInputReseed: decodeHexString(c, "5f23433c20003f2e90a6ba4dc571b811fb02b66725b6dd6eeefcebbdc636944b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d97cb81764f037e01da017c839b8953454a1fefaade4e97511dead52dfa48348"),
			decodeHexString(c, "f5a224f90ed0717524b89fe9550d47eaaf406af17d3487ef803d56e613dd3008"),
		},
		expected: decodeHexString(c, "4fae49ec0a842f9159f7f51e393b9316403d4a10bcf50ced305e1607cf3eb98f8333c4d0dc8b5f1bc6db576052efdf248975cc0e12edc49d09e7b2f867641a2089f3054b1777be19440f49b8141c41d67ec1dfb471b783c5df7e75c27de695973fa47dad30fa14e1e9a5318a8b8aadca7be677f0f520e65554a32ee2fd6b386993ffef27c8aa5fad260874b6f662ac5805bc65a6004513cc692aa7edbd4159541c564e9bc647af5dbf93ad1884f5f880972f6b153f91e119c8b3070d55600e8a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_5(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "51da1446be3620fd89f32952138a70da11ca63d7917083c70ffa3eb2c87aed93"),
		nonce:                 decodeHexString(c, "0a5f170eb4d88096d987df3d42803e48"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "43df036d178aa8af20de68c8cbdba0ec04186b955ad4ea7289cffac94b723521"),
		additionalInputReseed: decodeHexString(c, "67d18a160bce2c3f10179e23957618177bfff7ab3a5300a7169f1ef5747a0500"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c1bc968e24af18be78c7d6001658fcf5348fd9f72946ed6988bbf9a7d0e5d4fa"),
			decodeHexString(c, "fb5f3227da5d5cc4846085ae5c7ec6ce81df2f5ed73d9424651bf0962c46590b"),
		},
		expected: decodeHexString(c, "39babf6a76695b3727daf79fdc369e26b85f84667107a4fd55904f2c8b501d21042285677889acd8dd1a8389ed4ff36111228d82e9ce66730584aa1ab0cfe9ff8cdf7b2d51fa8469b91bc9ea0ad463e0ee641713517279a99c966c2fea264068d01dddd07afb6a8c0131536f8480c1265f0dc2939bf49f8a945aa448f50d8cf9154ae882c0dbac1d2ef1558e62b56b8f1cd90317fc4b294f14af39d9f18266259e801f1425a4ec5c5d9d20d1acfb7d11d91209b1ecf6ccdb7faf6f8a1aa45020"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_6(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "34d4ac7f5ae763ed56bf5cf780aa0311e8eb4efc5187cac662454b804b33b574"),
		nonce:                 decodeHexString(c, "3e75cf7b0f1e5643a848016539fa6596"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "68f9b530f2b854b94576ba1ed03cc12d22486bb8f68e8e72e9df92033bbff777"),
		additionalInputReseed: decodeHexString(c, "2bea57c5c94495694c15b01b8d52a8511164837bbe86e8213f0d46659347078c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bab40aa4742971c21193190bc523061cfd908a8ae31c01e3aca6a40a44345813"),
			decodeHexString(c, "c7d7d67820397702b2f51bfade44cea275200f6be8f5fcb9007fdda32cbb4ffa"),
		},
		expected: decodeHexString(c, "b6d852be17580719421e8cbba4ad5550cc72623d6e9007eb6d603cf07b7a0d6d0dfad79890579ecee52647ae46e7396ebd76808a0b12e7857b9a5261b8cc1a787a589c574b14f997be7a8a6a7670745f79b50bb70cb7569420a19c82f00f99109c95b41e28cadef64c90bb5a7a9294f67bb199daf46705a0850bc89ded7db722408a762f57c6b03e10459d5b815e4a5b214f01574e4b1dd8ccb33776d1fdff36c2c8decaad8541a1f19a3930c659e2c8b1a39caa2dddcaa3e9ac9f1d9b0b632a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_7(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "4d138dc271092218bbf7cf3a5298cc0fee5540cb9ac257ad5f8f5cc958c0c509"),
		nonce:                 decodeHexString(c, "0a71d6686c44ffa60cb98079122d9105"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f67a35fe60519e53cec3e7e892c20699d6ce47b03d9c636782034360bbbf073b"),
		additionalInputReseed: decodeHexString(c, "cd6e036de18b11624972e37ce80a10dba2b04c34c07c0c858abe76cc23b29931"),
		additionalInput: [2][]byte{
			decodeHexString(c, "791bc0d1afffd3f0e2d45205bb7bd997b6bd909800003d7c3345ed45e063d1aa"),
			decodeHexString(c, "71489282bd26a8dbd008014a6010d0c798c8f9c173b0b04532e1419218d46a22"),
		},
		expected: decodeHexString(c, "5187b2404a031b5077618845f18e3a1c325bd86de05b02279424a01fe3c0ca03e45c45e0825e3784551f36d43e88f348a63a5d25aba9ec9ea24c4dc983cd3749521569088bc4ff519b0f632873ac87c54060d4da4741bc094c71b8214e800eae145fb34da9f2da217df0dfd032665ef82048657e5ecebbc23dedd868d55ffc817957a008e4e7b629eac5b0abcea3f14356b8beae85eeaad3e8b68b5cf164096df6a2ab0d13c85f5f2771065ffe8634ad83d35bbda97dfcf9d55d841d836cf2ee"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_8(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "5647f4d920a564d1f915dd867a51369ff8dfcf075c29630b9c253613453c93eb"),
		nonce:                 decodeHexString(c, "8d396e9e1ac8746cae57b560788f5fee"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c2eb00d47d17fbfe04915d9c2c3782bf044fa7e244d7a2d5e829923f920be8d5"),
		additionalInputReseed: decodeHexString(c, "b460c5f1d6e7614949e7e8b23b80628b697497c58cdacd4580611a570ca6d581"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b33c5050a4e32e79008bed48d36764d0d00e1b3efde60f7c041472a23c7e4303"),
			decodeHexString(c, "29c5d3f2d034c4deaa340b9e202bf282a2b460bed41404f24e7ff922094ec7a5"),
		},
		expected: decodeHexString(c, "4c0a10e4602ec0d58ff32df51251801088b90fb0550186269fd7145ef49e56b5c43f427f07798e3098bb3d6d637f39ff0da1d6e8ebf0769db9b189807e0231223101d92e558510344942e2d46c8e70203234f92d3eecc18ea5dd043cde87c848ab1d15ae6dcbc6fcb0c38eb33b4ea0e3df12420d4f4bd9d896eda18897437526488b13dcf02115e254191f5998e4146cf1a5abcb2519ac69d93af79abf1281b23e3c464a9d716c77a34af05e4ac71931cbd4a70e50cd09c6ff31a7c1d7c9e5f2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_9(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "cd5e34cd4fe02e8ad1e41809b50f145b2c64f6ffd4a30a11b3d5fc448a853e54"),
		nonce:                 decodeHexString(c, "2a38103cf0c4f189705e08c6b75ff17e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "aec09d5b594315ddd6d9b051187c0478889116027046e2f2c748cc8924e69d9e"),
		additionalInputReseed: decodeHexString(c, "44f099ee77856ca477774b1c590fda11995d947700d69ca1244f0b7c28031d95"),
		additionalInput: [2][]byte{
			decodeHexString(c, "31f106ee11871824027de34feb461a32635a7f388bd4cc605d52dbf455b88ed8"),
			decodeHexString(c, "4d84c3f2c438aef6912eaf0132a46b3e45685fd0014de0dce7e28e0a526c208d"),
		},
		expected: decodeHexString(c, "7ed7c35ca7efe3c808bd88dd3f79387a8189d782e62a2e3d918d1dd9043d4708f3226c8b645a61f5f9b1ef8b5bb466a6c706a14075d1388a88b978ca6b7fbe4d72125a7ba57d9a6cd70a64660312d040f7bb7925d616832a412459c9f387cdd7321e7aa956300662b5b780f73d458e5f85b59bad19727570149d1263c8ca4082a201ae94c33daadd60d8ee5b53d9c5f46ab134a711dc4b752d1d6ad4a748623036c379c3e68fc7c749f86ce4186c3cdc3274f6fbe82a49923ba45d41327361a3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_10(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "1fb61b336e7307188a05a439acd8f3d20b756604cbd5afd0d8da6078794cf13d"),
		nonce:                 decodeHexString(c, "52c5c3f9ab6689b61558e32d60a41ff2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "960e3b822a087c5c1e0ae464ac18aadb75fd45a3cc68a2b74a2bd23cc728ef69"),
		additionalInputReseed: decodeHexString(c, "b867859b5fa999a5d072e66dbaa4057f50ebb795f2798e9be0dc282a765a854a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "677a37fe902adbda4dd6474cdcfec1e301dc4ed86dc7d6aa05b5f7bf556bb108"),
			decodeHexString(c, "a7dd81bb8f350172025e403fcedf35ecf5fb24db686b27f90aca03c44d52f767"),
		},
		expected: decodeHexString(c, "6130a5ab7d0ee6976519715a3fe556c4affceea9d7a1756a3aa1f38cd295bce4b775913600b43a22fbe7a4c36eaa2d6c62858b59978b0a5e24042e54467b313096c8a515ffde3a740ee648295ca0d85203d33592b2d78da08b0845c30825bfbb463ac316f5c1b2a0d48fe20f0360a5eec63665a49a4a83759b0fdded248aadd17b98bb0ea4de962e4d9bcf07c3d80f821aad7cb940889e2dc28af2da3907faf6a8b9452937f66b1d8bfcc1c63a5f78d3aef27b960a891c1249f508cafd606243"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_11(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "47bb3924c6718e325308407b12744ab5838e636670200c09c02b6fb4c6b842a5"),
		nonce:                 decodeHexString(c, "2f830e75c717857f89f381c6db3205a1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "809e193fa6f8f6c78efb4aa001c622281cc07a8379f2bb9d18b98b2560a9ddd8"),
		additionalInputReseed: decodeHexString(c, "4812418d21247f4346697f653b05f93b78f178c2f0679f729b45b34a32f34f1f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6cea09f18f921f0f1ac3482613388a468b27558272d70161d0a87c86cb08146b"),
			decodeHexString(c, "2bbb38d9abb7d397bfca75eb7dc8004d21caacf9ca4461de839751fc7b06a5f1"),
		},
		expected: decodeHexString(c, "04135f31d0d64388b7c2202c0f19db8a0f22377610a684dfc4b47c014d9476547fae0e5d9f20c064f3b7ca135652ed5f8acb71deff67312d7fcc0ce377f97838e5e0bd72f9d7162ed8ebb1928046ccc22122032ab790ea60d9351b01e951ea0ea0fea7dabe34e4ae3dc8cbd12e7d8fcfac322bb3562319d77ef97c7b283a7c0edb644b9ae644609509843a84eb9b414144c22e352bed3d6d654b42cb30b27a2f91d4a5ff0a81cbe078dcf65a7b1511e7e0029356ce64eb9efa8d54542b0660b7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_12(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "21c85371939e220d04c7f6521be229ae31078fc6241bfd767d27f5fa4674d8b7"),
		nonce:                 decodeHexString(c, "712b77d2a35b47b8f7e7306d6171ada1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "47603c7e82376ecce0a7b4e8173ea7a9e5567de970f4438c0b3fb8d50846121a"),
		additionalInputReseed: decodeHexString(c, "a63394e388176ba6da060b7d38dde5062cb5bec7e70a9a9d815fe725d34f2616"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f53eb3875ac8ae8e720900802f931df252beb6e59d5d4e0671a27a19d6e25cff"),
			decodeHexString(c, "19c70966726e171b65f6a471ce44312eb9d47cea91f8875d0c73171a1d5f07b9"),
		},
		expected: decodeHexString(c, "7aea2e1c8149812954a526df16a182d50421cba60aa1fdb686f5a269e32f2174fc44ed5636259d3900b7cee5951bffdc8b77bd0ed1550c94148d720906e3330a078a739e954d2da1781bbb4864d5c0e22418bae1abced550a740500f2216856e385d562db2ce66e124f26857339e27e0effc12a85d4d29b9cdc79c7c7fd62c77c5b8309c0cccc13bbec46752936ab721ae08f83790951db04ee402188378570e78b4e64de374764be228e60c4da0d4830a0f565ac36dc4cc1fa0514074e1d7fe"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_13(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "20da1922d85a790efa838b110d00e277325a65cbc51ed32e38e4cc081c1ae8ae"),
		nonce:                 decodeHexString(c, "369ac66ff41653fcb094a23524be822b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "89c8bfa7c5c53813d7fd019a1bdcc77bb1661b8c8fe15f469b41e2a850bad230"),
		additionalInputReseed: decodeHexString(c, "1e963996350452d4f6fd386ea5ce9b3b095e64b1dbc1dc7ddf850ff63cb530f5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f0f7f1438e1420397b3ce1b5728f93fb16861bc6301f7062f2a4abce742a20be"),
			decodeHexString(c, "54ba8b63661e445887c242d969a99c20be75601827530b697cba8f81f3e46592"),
		},
		expected: decodeHexString(c, "8fe55ae1a9ff14bd6cb3edeae6f0585c73e8a58b387ff6dbc026fdcb3147afd63a4bebb8f07bd8d72323581672d66ebb3991349d8f5a00200b4b7b84f3b632a88e6b4386a9dfaeda4be5900345edda2da0a025222571cde032308abc879865fb23fc07a12bafc72fba22198f6409c412edf4eb4613da40701f20ad714f8c7f000974a852f76f9d89c899a501824be72f354d57448bbf08e1c5900c839017fdd855655326ef3168d07fec3f2fe2a03588a2f3890e310d1a871684041f7431dab0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed61_SHA384_14(c *C) {
	s.testHMACGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "11cbd0ea3440ce0af21bc7f522d7353e51b920e62186fa7958ef79bbc57e391b"),
		nonce:                 decodeHexString(c, "4d9cb4b64740eae3de9aeee145fab47b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "70527b723ecc4ca6570bc369a690c22732fa5a30600618b11f52d4f4d8aa785e"),
		additionalInputReseed: decodeHexString(c, "caad06f8b6e566f52d3924c6e49c58057fa50a4ddd1b9114cb91749f33467d29"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7e5327b7ea17eeea3b49ca990b729b246c5b67ea78cb5343bd4beab3c1fa3ffa"),
			decodeHexString(c, "ace200de357b9bc573fa877398553ffd0d211849c716a21b79bac5e8a363a468"),
		},
		expected: decodeHexString(c, "c18033a738017188b9965d3e5fcbb584d81640bc1575de384462d20511872c44a5f4a924455fb10ea32ac8de8f1761faea96e318b5ff962a2d25523b1662ef000a043aea2ce6de4e543f0db126173b39b76d217dc6ea9b25c0b4c2cac0fa423669d05e614d1e9d51c917efadbe65bf57cfaf0497a4c2e6a091f52b60375f8ebf6aece0ac54d668143b8b1e49fd8a4f97e9c0d8484555197096c0fafb1a98eade4a630a3cf4c48e436d33feb3fc44faf78cfa0e081cfc642b5f2352ab03c7e776"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_0(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "f2a2eb28c20d4a3602a537f22bf96564c2348233264ba1c46f4c470cd288fe6d"),
		nonce:                 decodeHexString(c, "7b56d889ba43e11b7b93084249a5ca48"),
		personalization:       decodeHexString(c, "669229823dc900c0e01d5667e98b976b6b84169f822029a4ed49a49e00f0aa28"),
		entropyInputReseed:    decodeHexString(c, "ec5c63ba8e41027afd786a20366d4994908a173d3528a60bc36484bacbdd67f4"),
		additionalInputReseed: decodeHexString(c, "18dd4b95e8bb1c091553e0fa89a878c0c25614e0379a3c4c1dc400f2c9e9942e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1ea97bf0d6fbe42a30bd9d71e5e44618d6c8252133c65030e43627d4a36d43a6"),
			decodeHexString(c, "c2d260f2500ce256b127a045a6247de121fd7425024856ece553ed860bbb08e3"),
		},
		expected: decodeHexString(c, "67bdccc7dbc29c11906add1276ce8fbeede3c162605b406a63aee6746ac4a0dbbfa4109f9f51e79b6bbf1554e4a7020b664399e2a97772472bdc1f64f92b4df21623e4d5ae4a1841442e01b78e84f238993e8633ea1ec00ad0dc7e04ff881e78700ff19756aaf0c9367df8167626721d1e5d00fe59501e852947d0b2f5af53982a1124518d094e02566221c08057b3c017fcb86de4f839f644c89e161414f789c69062c288103e4ba0e3fdc026f07a2bfd93349fbf1af8853a091b0db1bf946b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_1(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "524e0b3987a13865f9e7148a487167b803d1e9782345f7da274bab9037dc0591"),
		nonce:                 decodeHexString(c, "76518d0c3e117e3e7bb8f07ba444f1df"),
		personalization:       decodeHexString(c, "7afb4b1156e88958dbc98fa1c8737de66f94aa50158095bb421446893a27c7c3"),
		entropyInputReseed:    decodeHexString(c, "3775bdaf78742a49459c5734d9a020e74dfa4b80f3c93ae9d8946d2da9aa8cc0"),
		additionalInputReseed: decodeHexString(c, "d463511cc9970a66fcd1c2bc753b0b297c73d57a790928824378a30e91b5eaaa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "10d2b9071e467a97e945dd8647f0777810c34f0bfda2036089fe54d07a5612d9"),
			decodeHexString(c, "0712eb60976a1cce60976731a958160761e088334dad29c9fcb9de862ba13c1c"),
		},
		expected: decodeHexString(c, "d4e24ddde04f9c4d005e54aec06ae459999c85397c21d21ef71e2f2371eadbd675da95e88826e0486a93f7a499483aed6f2d826763d397be3a4ecb907be9170534f717a20b38eb9ff4a5ac795f144a3f2df606a3468a2d1872595ccff37ecd38e81236d4bbb74396faf62bb9efd0d943d84643ffa5d39e305c5a559fb7ed61cd93292d616f88c858f2e6202147ff06f903a12bda491dc7968d6b93fea0d2a79c2511ad8cfbac4da63760f9b388e98349248aeb31eb0d976f5450864bc1bda4c2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_2(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "8fafe8890a8009f46461f8a9bcd3b9de0a8d9c432b04cf5523ad1b4d18817f7f"),
		nonce:                 decodeHexString(c, "af4c10c6aeca60f1b75fc6cc37fffa98"),
		personalization:       decodeHexString(c, "ce96285af32fe199aa849fba0029fb293e13d226fa2765a09a5a99500d7e25e1"),
		entropyInputReseed:    decodeHexString(c, "d53ff2ec5aec57bfcfe2a061430dbebd4908752f41e07c0db817a76598b16e25"),
		additionalInputReseed: decodeHexString(c, "4f8e8ef0e938a42840fb549a4e59426abf72efb8cb55ff864144c4960578f2c8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "adaa7c5de633125120a9913a216d9e1fb150c4943b74bb80ff847199c953f6eb"),
			decodeHexString(c, "b880fb05b66c1a2fc3d517077aeb8d3d489377b599de539cc9ba589de00a72be"),
		},
		expected: decodeHexString(c, "0d949006b45243d470c3293647c52ecd392caa53458b535cc7302cd50ed98e91d5e7d949781aaa5ab361e067d18caad35d58e1fa2c27814623d1996b46675af9c1fd841bfc0c4de6f7a06e8c1e8b963931370af367858e9610a38f2d294a000143667d6861b92ca350cf142e69ac9a1b21a2ac7bd7394cb6cb29f350a3f3d579c319dca8e97f07b358ef5e8d7bc74f55270656224e9565bde1196dbde36d7a4aed33ca97b1c08580075d0dbce6a722ced2fc79cc112cd4353a4f8487cc6d64c6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_3(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "30cf48964968c4ef2c52d1959c9e6283aebc465aa22bf1cdef99993bc6fd469e"),
		nonce:                 decodeHexString(c, "2b42ad6705d038abfd7bb9cc9ad99c07"),
		personalization:       decodeHexString(c, "a7ea3df5198e48404ce3bfc4e9b45c301625552f577b6c191f6d6d54a2830f59"),
		entropyInputReseed:    decodeHexString(c, "10e3fc0d2ff11927989f781ed4d0a920515e3c88adb85af411e6a9892c68108e"),
		additionalInputReseed: decodeHexString(c, "edd2a6ae87dec0a512569bc3c70b50b2af5a9747e0476685c1d2176c7faa4135"),
		additionalInput: [2][]byte{
			decodeHexString(c, "19954633fc58c4b426f4bfb047f0842a54451a7bf82b8d82dc119a16421cae23"),
			decodeHexString(c, "5068b6790142f031af62dbec417b07e15de14bfd9b544e07bf8a9c0de79d160e"),
		},
		expected: decodeHexString(c, "49459ad6a2ad11d838b2119dd742564ff149d6b4ed00f425d3211636023981d4a3c661b2349507c77aa184b533e16a8beb863dc0263e15c1e3837750306ad75f90ef8e1f58702fd9777cb0134140627389a367c4b981f0710c909c1c98373cbf445a78d69ffeb5a6093e7b6eb4c0b340d7a06616be1a09fc91706b94d572a82733ee2f478e90f5a6909c89418980e4d58edb6ffaacf3996812b8ad9e9f90c33819ec0ef1310952b169240375ba02ff14ff36c9a9594aacb05a40ca0162c19474"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_4(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "904b2a32afa780eeaaf93772cdbec8881240592fd9bf2aa17ca75bf1af9a1b4d"),
		nonce:                 decodeHexString(c, "074d7545dc33b608d8c17461eff38d94"),
		personalization:       decodeHexString(c, "36ba3bb758c1743d63d85785fa683842dffd9d5b0cd20cbc428a4a742de83fd2"),
		entropyInputReseed:    decodeHexString(c, "fb83e8792e7e9f329554f4c2eb5215311e820fe6d5b0d2c8baea609e0076fb30"),
		additionalInputReseed: decodeHexString(c, "86631a461afaf9be0ba899e48b864a3a6cc42039ec8aae7d4d0aec79c98303cc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "731fb925ec6cfcd9ff8062c73391fe389149e655c6d32b5bd1bbcf43c7cc1aa0"),
			decodeHexString(c, "e2cb59f86e5eb25d782e7afd13ea164b05c5ef2f62eb46ff6cc6455052e14f82"),
		},
		expected: decodeHexString(c, "a8458a6e8d6409b3aa95c9d504d76db3301f50eed28fd27020fbb2260d6dc17df32023db59bd6650366fc16d33855a3b66ba682c177a6e13f240e784c131ebc605dfcfe517ab07a740ad4b5266cddbb46672dbcd9733a24bca24c1528b4d9971ac18d23c59df33b78342c10a35d904f0aced97fcc7d3c5ee5c6e6cce6de9876ac9de09cd44eb664b4ad813a33f26ae7e23b494d32f5e9f227bac7ca9f3dd72534d19570385f9d6be91b5a3f2be7c4ba5ede5c63616329f55adc4ad93ce53e05e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_5(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "17c8dae44ade95803cac47130d9def668594abbf448e81814b1a7f619d18a25d"),
		nonce:                 decodeHexString(c, "7fea0426850962f9fb35f3e678bd74bd"),
		personalization:       decodeHexString(c, "610655c5bc744267958f8e71df00554a468a9e6243d1de1e98c49703670850d6"),
		entropyInputReseed:    decodeHexString(c, "cec0ecc480954c6c00ff8f01833a217b49ffd08886971e4837e5ca7520d178ab"),
		additionalInputReseed: decodeHexString(c, "14d3ea574762c2fc46619fd0d2dc1e706030a0c3cde67d894cf47db54f12ce78"),
		additionalInput: [2][]byte{
			decodeHexString(c, "216c20db2b052f7c5140e377ee104fb28d318d86e15e11b7f2c228b1e73419fe"),
			decodeHexString(c, "06344a2457b24b5497b8f96ab4fe3d965d747bf1c9f62d83486a9e39050fa868"),
		},
		expected: decodeHexString(c, "5fbdd7cf32439844b53b7e3639f8ce04dbcca6d73a24c162003611b2dfecb42e48f9906cd193c38f13d098c2fde912546313ac8bb55a7ca9092c80f3e35d39344667a077f9e57dd6692f08e3b72862149b6ecfc5fded9ddb4e48fe81d2cf5ff549a763a0fc52fc89f35effcf0386c130041d1a390d976c940055cb8f05845397a82079795e7b4375c4cdd8575086d038d82029a344b9b05123a4c3b2a94c9f63298721a061a9818ab26bf2d1506923ef07530c03b4439b531d10ff467c75f4a4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_6(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "88aa8530949763ed1811b51da951fdc99e73de9adb5f59aadbcb37ff19a95e62"),
		nonce:                 decodeHexString(c, "5fda2dcbb422b93239d1f2888cbe687b"),
		personalization:       decodeHexString(c, "99ec25dccd34936273f23180767d289afb0812fedca02d6689b263f3d10428b2"),
		entropyInputReseed:    decodeHexString(c, "ec433be36c420751746ca60a7089935c1157d0e5783225058ac744bc32ff6643"),
		additionalInputReseed: decodeHexString(c, "4f7a8d169cc0dc883b9a34b9ed76544d3a50befcfd295fb4d3683f332ebb9e97"),
		additionalInput: [2][]byte{
			decodeHexString(c, "277fac5ac7e308c65419fefe704491bca4853499bdaad08a383308b9a8a4a6cc"),
			decodeHexString(c, "d9eaea08587aec254b3508d3b9f4c0c5b3975f3cb6c0d931ece904ca6108f4bd"),
		},
		expected: decodeHexString(c, "2b3cee08641f6945c67c1061aceafa3d4d68de963d564ce64dfbb4d5356240f2be8ddcbbb960b9f2a17c7019bc7ac8bdc42915a4d090d76be88feb25fc6c62d15e79f65b9f78f1d01dcfd09ad1caab462fded2e5a13954bd8f61389148f45c1382d43b9dc0e4d2d0e764534aa03971f8dbcca65f763b6026e65338195d89e2b3fd2a59e0e788a810af7aa9ce9ab41aeedca2d546c232d7a5f64e817f425c3ffd0e86962452b5fd257d8318c57f86b146f4b2ef61f95cfa5e576df551d19b753b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_7(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "0464dc56208f92e46ed3111a3e98158b865323d940a529fe255086087a846c1e"),
		nonce:                 decodeHexString(c, "ec62f2942747c10086037e470f9b8ac2"),
		personalization:       decodeHexString(c, "5aa6a4142314e44692552dbae38d4161fb6d0c05111de3629a74969a57da5e30"),
		entropyInputReseed:    decodeHexString(c, "91b1ff304cc43da69dd52838d9a5cb25c94e65421c22d1630faa76b309daf314"),
		additionalInputReseed: decodeHexString(c, "5714ba37f54149599023405df5bf905db4cbeaf5c92a9617887c4aebe21dbe34"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f328d28098672ddadb0b228071e14b2a385052cddc526b5efea9ed14e6f74e35"),
			decodeHexString(c, "51d162a7b07f0c2c6d47b90157b42809176ab6c65d7740dfaaac5cfe80197997"),
		},
		expected: decodeHexString(c, "6dc0a86bfdb86cd5970f3362610a05e47e5f533a3c6f7467e687578550a51c9f9d9122a4dba8e655c178cc65eb2887dbb7df10bebb4ae40cb5f5ed91ed40d3ab0e0913045e4e48256327b0e831a185405a82eb64080c9114fcc7cade85c54b72b2e69c51a332c2da72e570597d2f88b972581441a775549a6b68928b5e2b55b444311633508843198205efc6ee1d21fc94e7cfe3c0af7e990790a60ddb64c46014a613e6bcd3581827f8b34e3734ea8e9749e754799bcc5434741ba3066a1604"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_8(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "effcee1aa32640976a20181ebea4278acd43c35b9d6752ea0682c51257b88a50"),
		nonce:                 decodeHexString(c, "1371b01a96a59ef4f3685b681b63d6f1"),
		personalization:       decodeHexString(c, "34fcdc78e2ce57299a434cac6b363056197ba68a654dbe3bd711080b5bd6ca04"),
		entropyInputReseed:    decodeHexString(c, "2d0cdc9b15bfce0dc64a8d6fcd78dc4eab0e63e85765a17543114baefb63a012"),
		additionalInputReseed: decodeHexString(c, "2c66bbe53394842f890a969da5814a8d96268b871189c038586636c1d84855dc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "db1c11e38f0f87046432c3cead438cb99a4e7391012e0386da3d46f2797bdbd4"),
			decodeHexString(c, "f76264f42d8d3a7aaf7e9bda6dc76bc68bf3cf482af024023fea9df43f08fd54"),
		},
		expected: decodeHexString(c, "6cb9ab4b19105392793ff64e06fdaa712504052ce3d341ca2a5fcea2ef2144a9916eabab1ca93314f987fd85cbc5208b0f990a08ba91db97a279634b7e6d27e38c2f8b1ac2be45bf8d3d2b75c5920ea23400e98e92e07c404884359a2a0e57c446bd37db5887869b5314aef3c617f6c889225e0b2bbd3e836b2aecb636673aab5c7d7f5c628196ae30f8eeee77e031815a48019b4489344edde02e858594612c671bd59a5cd15a6b8f377516b415912d0abce40b231452329ebbb8ce3d83696f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_9(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "ff152813593fc9689488a0caaecbd7cd2e3d522974ba2d01e0b7cd2a629dea8c"),
		nonce:                 decodeHexString(c, "aecd262d975c457f0f0b47177865b045"),
		personalization:       decodeHexString(c, "c654f0035dc9368acc3682b1e67e6b4e7829a8f4cf6d8847df5321886a55bda2"),
		entropyInputReseed:    decodeHexString(c, "ba0eaa8e3a41ce27dc9f0d78f0d9fa43a619b4aad68b6d68574c7dbbfb3344fb"),
		additionalInputReseed: decodeHexString(c, "27b3282ef1f4fd94a187fda07348aba092ac547320cb9a764ea88c84e41e5836"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f69797766e8da3cebf2a091e7640dc19bb740504aaa457c7632a7d61ba68fd82"),
			decodeHexString(c, "d900eb2b700d720861e5eee88d57b9bcf6670976afe026f183679b97fcb28d03"),
		},
		expected: decodeHexString(c, "3cc0bf1580212378888ac6b90bffad75b561d268087f0de2a0cd5f79689c7d350ded6e83d3a0f75acf63a924112ddc751ab2bfb8f429cee62f72575276a9c3bc3f1eece3ae8318ce9b674b29d7490699484f0afe62a1f91a3777eca8b19ec841fb34598d45264efc57cfebfcbd558422823c0770b112e9e9e4a3207c7eef54636633861ef2a2d923b0cf0db95b39bbda39f30b97ed666fb2c53e836e01490170d5ba8188ee68360711175dd2c71a448125f6d07c1d911e52223a68fdae0c31d4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_10(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7710195aa2b10d179f33a842a5da4deac502335b316a3ca0da7d4ce069a8f39b"),
		nonce:                 decodeHexString(c, "b21f20f9a8439884eb033b2df4c19de8"),
		personalization:       decodeHexString(c, "ff042dfee453f0699ec38e6c485e7ba824e01e187920f82ffed7caa8a800c382"),
		entropyInputReseed:    decodeHexString(c, "90351d93fe396659b113a3ef4d5d20fdc55839fe48e4262512a0ed99a0443d0b"),
		additionalInputReseed: decodeHexString(c, "b41a50fcec9fb545680eb813cf1a73eead9b63284de78905ed13d8f612a3577b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "12361ff8bed25cf402acc9e495a49805a4c56e9470903b91d402c9cdb6e11dd8"),
			decodeHexString(c, "5a44fa0387e06aa921deda28ee4d18cd274c5b77cc24d57a6e5239575ab43a47"),
		},
		expected: decodeHexString(c, "56a3c4c1567bf630840c0a1fb4e7abd3011b1ff7f8835fef5692fc8d4ac0ba2912d2cfcc627fb266c3fcb7b165bc2e802b6f11f874fd056e1c4e66a7a73b69bb37cb2e5260d4aef9b2fc08a9d6c54b11df3759e1f0e7878087229f33bdf84eea865591020d9ff8eb28697426e47f7d9ee3a42ca33c041b8ddcf0530e35204245ffc8bc33b365c256c13a10c64ce4aec906b959bc58f4cf2e62bcd63435f73b42e4cd259f41e36b7123f4336b406aa7432dccf183d3ffe7261b8c7356e4624e55"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_11(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "c56165ae25c2db25ca2ea19a9c89852595cd4ae0c21ddc4f1270668f218f199c"),
		nonce:                 decodeHexString(c, "d6f72a450ba4961b51f1b14ecd1ae0e0"),
		personalization:       decodeHexString(c, "0b135987380f86cb9ae03d7c0f8af4459d9b2b78123e7488b8127c246b9623d1"),
		entropyInputReseed:    decodeHexString(c, "46934a4dcfd6e0e4182f4ae810fc45e2b8e5f0a3eda1806f66f7e5565f62d702"),
		additionalInputReseed: decodeHexString(c, "3df90682931b43e7f7d944a3277770669fbd576d8514718da540c82c774164d2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a43cb1e002e1fa1be993f6748c6a606a6747acddab4df31030588d200694880f"),
			decodeHexString(c, "ca9d31fa7fe470b733d5e998afcb8d0a42e8e8cc00d02951b5651495b48ff5ac"),
		},
		expected: decodeHexString(c, "81616da7b20c0581cafca1f7de7047f9fac4c4d2b171a5a3986d55aad60207b19a1eb85366037a994704fc05df424489b0562006f4bf3f782629f210528436c5db827c78c100c4b437fe4ea43cd46d621bde66808558b7a3906b6db0069dc8e8e03aaf2890c94f4120bd45cdc3f3a69c752d4bf838412b16988d478bd1ac605fe9b58a30a31df8da2d2fdfea1c29d32cf70c3435eacdb2d7fa41477b02582b5b088c5fa5b0c7de1fd9a4302b160f9693b69058289a2640140f99f89ee1a14a3c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_12(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "471eda382a7459fcdd1d05222b73e374f56c87abaa811dceb9b7e59e95e370f5"),
		nonce:                 decodeHexString(c, "ff12211866e7867e6f8ca2af2d101947"),
		personalization:       decodeHexString(c, "bd0230981221816112f3a8674474e3f8c64d1e39ae7edc8ffefb326702c788e0"),
		entropyInputReseed:    decodeHexString(c, "4af6bb1c16e41185fc599c0d38f585fc33738ff820bd1264b2a4a4b861d454d5"),
		additionalInputReseed: decodeHexString(c, "667b18eda8f6e3ce4a69471f64ce0a8398ee74ae9e4e87d808f86e98133c86c7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9576e0932c74b22f12d9e63d7f455f4339d421aa0d2f6f86c58bcb6dd084d30b"),
			decodeHexString(c, "5fde63c7142fb1d7666456cabd486f5e1654cea6e599a793a67fa42d0afe9bec"),
		},
		expected: decodeHexString(c, "05224fa03392264f97bf82d2124ef4fdc0d8af2b3f679ce32c7ce4ee860f8c691699eff783b45abb335765fdce7635b05adbec6e19ea72adfa7c61c6cb1d34ae4f6a430cd281ca87294d1cf0c390efca4a697fe0cdaba9584ef52fa82d0cfc5b39e590efc00933846927cfbebb9654607399de888c68ec706a2bcb4f52801ac98e91ad0e064ad15f9fdf80348c6e8909aab99072536100fabcaba115e7c3c6798e01b4633effc28c2c951702af1fef5b18c034fcfafab767c41a04b27db76883"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_13(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "9ae5d6bee49f7dce7bd859c1c818c3560a95560e0667eca940a367a19063eb10"),
		nonce:                 decodeHexString(c, "b577ecfa21165e086d62b059b806eb34"),
		personalization:       decodeHexString(c, "c9ae2fdf6af5c0cc0a836ee403d11c22a92de69246de3eb7a0d940d07ad8d0c2"),
		entropyInputReseed:    decodeHexString(c, "2ab82ab429b6ec25a98cde0b2e96ea173ac68708535af8b2669f47822130327f"),
		additionalInputReseed: decodeHexString(c, "8b0522fa8f19423210101de990d55ea4f907368d3d167f023321b5b37c5baf9f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fe49489e934c8c41351b67c3d16ce068200677ca83d5ef24d97ddf82d119d05d"),
			decodeHexString(c, "b75a929109e7afa92617cedc4df22792f4b5aa4c50b490f9909cc00fec8cd128"),
		},
		expected: decodeHexString(c, "50d33ca5241c5db4eeac7f3c92690db17465d67b076bbedfc9219ddeb0e1673458905e2e0aebcfa87fe2a22a35a45fada64aa195720c01d70d55d6fdd21f07ce5a96af4a71ccca879907d4a4dfcaad828c483008aee220c83c414ad94b76cfb547ce84c4b5635af6d74d3659952c7f19e83c2eee9ff7de75c052f02993a84e51e6b7ac61a71b7b75e42da267a4ac2af2b05b64de3f985da4f2a2adb7be80a84750da1d7fafff2ddafdd91e7bfb4adee9ead173330bbd7d1e820d9b4817d58b09"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed63_SHA384_14(c *C) {
	s.testHMACGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "00747daebd7492e77e6a14540609d38cdebedc3e8f1be99adf1c7901e1291984"),
		nonce:                 decodeHexString(c, "fb44af868edbf951a0c1d2d30356d500"),
		personalization:       decodeHexString(c, "9198a361cd07db1392bacfdbf9e623cc98332bb5d7b554e0f692313d2b7d8385"),
		entropyInputReseed:    decodeHexString(c, "284cf4dcf0d697b5a5cd7e1e16c6b1fce4f5ffad977df9be6d7f6e3bddd2317f"),
		additionalInputReseed: decodeHexString(c, "5f2b2cc8aba9f0e47b2b0e7b19f2443f941574e8bb18dc80f4c2187a74410dc4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6e99647cc62c8895265d96b172cef01ef08d810700691e5b8e95a609e4d30c98"),
			decodeHexString(c, "1fd149c6eccf4384f091353c2b0d84509a5d07db012f7c8b11b10719ebad1f5e"),
		},
		expected: decodeHexString(c, "95507cb7c2cc71e1974c0632c67e9d44767fa608308903ab51a05c7493c4f61e96803d9e9e9fe97c4d8baa10a828fb4566b368a8ef08f2a5cd5a8058e3e3193bf3cef19d6a6d29b613aab8ca1c522ead73884a3fd12a7e76a6029f67052fcf33625a53ef9f7659d9af5197715aa5db2ab74fd63221daa801d61c7a3288301de6ae7ae11d699d3834b4d56434db1ed679fc57ea3218f438278e999fe28518a09d8b18b2b68ca96bf8928e29de329f8c398c8ea5b9c4f13f387e487c654119eaa2"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_0(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "4686a959e17dfb96c294b09c0f7a60efb386416cfb4c8972bcc55e44a151607a"),
		nonce:                 decodeHexString(c, "5226543b4c89321bbfb0f11f18ee3462"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5ef50daaf29929047870235c17762f5df5d9ab1af656e0e215fcc6fd9fc0d85d"),
		additionalInputReseed: decodeHexString(c, "d2383c3e528492269e6c3b3aaa2b54fbf48731f5aa52150ce7fc644679a5e7c6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c841e7a2d9d13bdb8644cd7f5d91d241a369e12dc6c9c2be50d1ed29484bff98"),
			decodeHexString(c, "9054cf9216af66a788d3bf6757b8987e42d4e49b325e728dc645d5e107048245"),
		},
		expected: decodeHexString(c, "b60d8803531b2b8583d17bdf3ac7c01f3c65cf9b069862b2d39b9024b34c172b712db0704acb078a1ab1aec0390dbaee2dec9be7b234e63da481fd469a92c77bc7bb2cfca586855520e0f9e9d47dcb9bdf2a2fdfa9f2b4342ef0ea582616b55477717cfd516d46d6383257743656f7cf8b38402ba795a8c9d35a4aa88bec623313dad6ead689d152b54074f183b2fee556f554db343626cea853718f18d386bc8bebb0c07b3c5e96ceb391ffceece88864dbd3be83a613562c5c417a24807d5f9332974f045e79a9ade36994af6cf9bbeeb71d0025fcb4ad50f121cbc2df7cd12ff5a50cddfd9a4bbc6d942d743c8b8fbebe00eeccea3d14e07ff8454fa715da"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_1(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "0bfd73a55c96ecbb6104fc1f91d8601e7b57cdf85d6e6b5360920b4e7d1cd026"),
		nonce:                 decodeHexString(c, "29bb1c55e637fae1608f389d179f4fd2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "650251a37ad27c2b5264b1605ed5a51df949086c10ece31255701733ee1c8539"),
		additionalInputReseed: decodeHexString(c, "15b3816392285fc665572c48a168068a10994cbe4ceaa1955f07075039c73b4a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "374241cf3073e2f82956c76897944ae9c43907fd6781202b10e953c3aab1cfb1"),
			decodeHexString(c, "4d434031e2a2b1e1ac5ec98081be46d05de1b4d25e3b4dbc8f040b627f8a6f7f"),
		},
		expected: decodeHexString(c, "f4283abc7c0f40478bbf0234e2f7656b7c6d1d356c12a3e1f76666baa19e8a05fc1537bdd2fe855adbec4ed4d287fbf571615f415867a2e188ab60b3390053b27bd8bf4745887c93e68d0dfd01608d6b306af273b66db6400daeae962882c4c6a19b363f24d4bd543a8bcc7935f078602cee1cf3c7b30343ae2ae0d5ab111764d719205fc30325b2f938b4ec4d0f1fee2f431e70cb1aa1e7d826d54b7b4fc50560453349d2c52f09d6f5eaac72b5b9ca9b00142d45abc550eff26f1dfb8229bfd1eb21e4567145d7ca47c84001abd7f5f5e7101b9941302929a37f2150620b899907f7216f3e2bb1fd028b196031692bdbc0d2769c448b024880a131ed98612f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_2(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "da5589e7fee0a023e01a50aa54987c5b6d70503b78403762cdb53c9ae7ec65f8"),
		nonce:                 decodeHexString(c, "53df14cd7e30ba0eb703b912387469bf"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7f000e5dd78dd80722e194a4616aa373be2e093d23f2a4e7224b841ef550772d"),
		additionalInputReseed: decodeHexString(c, "4c74a4655dcbebd1331b86bc224be30e6c3386ba844716d1a6938447ca7a317d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6397e8fe13b3ebb08c0b7ce460b5a149b23433e110b881a9c095cf24d236cee9"),
			decodeHexString(c, "6aba359faab473d0d51f21bbe7b2ffef3a03b64364777a48f80698643d9b2504"),
		},
		expected: decodeHexString(c, "49c7ea8e2740fedafd8d31571a240f175ab5eb83b2104f738f3bdce41c160c19edf7b2e2c0603d9e7f4f26f132f6b8bd8c61fb0eb391a5b4b6d23e3db20584e08be87648984d0b9f3b05c763665b110d58fba8d3b7c635a78ed8f56ce05414b8bf4e0985e1ff0b4f55eda8cd516836099ded2b6092c9a1d532bba363e0811cf507a22189cd3d20ac6e66380fc8dde32dca54ec76130cbdc0aa70b5bf3b582ce1405c69dc0e26f65d91644c557d1b55ef9cd893355e7836efcf53dac2d468c4909e1538ec1555c94c04b62448092f44e81be7c0984bec13a53a953efdc16d3497b1ef5fca39231feff486c84fa7756419bc909c8782559951d971157441047b80"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_3(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "8a36af663dfcbbece9653be51c8dedd7ceb125d59dbd143ab4c37f21d8cca464"),
		nonce:                 decodeHexString(c, "920dd161245835ed81ff1ef1d09e367e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d43118910c2b62d4bb980d0e4305b07e8b321c5a04b46d4a7dd4611aa328543b"),
		additionalInputReseed: decodeHexString(c, "59c96d6ec4e49b8185f275057047153ef626456085dd77a01cb89cda060bcf3a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1492daff48d8c7c9e9e8f38130b8ab2de6e02c6cdccc25fbcd92d8aff1fdc66b"),
			decodeHexString(c, "d2f40e7dbdface320825d0b766d0317f47c74fb55a5a325d66a5834db70d5eca"),
		},
		expected: decodeHexString(c, "435ed803caf3e5c94bcf6ab61969bcc4e83f1cf7e73e481494d494faa9e33cdd890f112c89bd235d6d1dacbbcb73fb1c9a54a4b282032cc01787bfa9bf855edd91180432c27d98a2f7983933140f63688ca595e7a9fbe38d12280023d383891f0fb8ba3fb07d835a0d48f3f90860040718d341fe5dcc101b51243081563589b00a3e7c2095118c13b8784b387c1d63767c3c655025021b0eaac886d21eb5faae0e35fd073cfef4354c7b7e4ea1386d855e71bce01b30151629a7009b851fbc404731841bd24fac155a912d7b7f7a601bf6559e438367fdd898379b2864c548bc8e2c088348624e33c82990c74f994056d22add18e611665f1b45913a62f90845"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_4(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "dda69dd5af052570a7cbc2fd378eeae936cd301b197d23dcf21ce06161f41132"),
		nonce:                 decodeHexString(c, "0566cf1f231111c1ef883a88f356d94f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2ba7e42d84574f39ba1946450fe7394e5f3b9a21005d797dd03f27e0477ba74a"),
		additionalInputReseed: decodeHexString(c, "0cc796ceee78dfd667c309499dc4ca1003b2d923026c65826f280946e9f3f1f0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2483640ad6b242e5c6576df18db137a3cf0e4a3eb44bfdeadb9bb650ec816200"),
			decodeHexString(c, "ed978c3f50c3ebbf4b70a75771a940f03eaf7c468e9c4e9af5f8bf9f947a9352"),
		},
		expected: decodeHexString(c, "9bf785c4a1006da21f66ae308e6f23de2d1b01521c40404da9b605e1ff1577ca1d1300f0e47e922d02331c79b7c0b1e060926564979e0ebf77ee3e1f54907770baa80ea8dedb7aed1948df550b6ee95f2f71a28ec2eb5baa76eeaf0062e757500ec255369a9db75c242924d64a391af1536c3a9a6951aa991f02b7415a2ca77582e8d25bbdd023e4d0a0537c0074f5abe3ad34d24f5b98aac29a62c1c2648eb124af18c619dcda701e7a277ff1e00a8a267392419dfc1fdde4ee865c9f3744d92fb86b8aaa872b0142762bfcb7f9a45dcdf5bee93bd631b73e3acf9edfde744e7492b77fe38adbe631e7ffb2d1708f213136483ce6845398409b8550e7467b6c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_5(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "346e27bad2b0c0029148c5db5419a124583d2021fb74677b37b13e8643ee7aa9"),
		nonce:                 decodeHexString(c, "e9bc52f5c2689ae2bacdb7c8c8d22f5a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4bbd2f0ad3479decf2dfe2e9312dbd682d96e199e07f5fd4d22deedd83c77673"),
		additionalInputReseed: decodeHexString(c, "65262e1bda7014866794713ce6bc1ae4f0dce523c82ce43e6e0cf9a64983964f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c68c54bf2cad027cda08a3380f3bd525e354c4288a7beda1a7ed8d62931aac8a"),
			decodeHexString(c, "cbd0049d6546baf0a8df2de5f15b29b77ad07f59b4dfe6a872f0bc1cad71771c"),
		},
		expected: decodeHexString(c, "b8c344a8004072f76582e494f70ad0f7d21fdd13cccc387622ef04ca03a0a14faddbcecf8869e0f23b6f13fe58d9d769f3ac96ab9b9967150fb81cb5d773ca44960e9267e858ec9df23228fe2dc239caaff0f948d189248f5c075c3250270af7031dc0aebb327b004d84d0de699f5b02da1af448df0d13ae19f77586db22ede3f6d3d032d10ef2d7e2efdde2ce66a8bdc07126cd49241faff097d1467d862efc2a2e198e74b2e3293d4a99bac75e328a1dea3477f3f4c95edacdee48b14d26b054b5a268e242a2908449135825faa7b4fc0c9c877ffe7bb90faa7c3f136b2b4c78fad9f44c829bbf7eb8f747d501e150bedcdf4cdd6fcc86fc409a21e6e90e86"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_6(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "09587ae0ccf5c580b44e390e68e6a0a6daf45e7162ea0418135828599918ecef"),
		nonce:                 decodeHexString(c, "9abdecba73d8c6d56bdfe005485be3b1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ff284a85b127b00185f2f935356c3f87d076599f6b0fb7f93abf45f0d0bffb3f"),
		additionalInputReseed: decodeHexString(c, "4e703f5f59cecd926fc0d94100d1c54fc8b19d165bfef16437d7be92802b38d5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "59ccdafc72e5727e303d2284b80e9224c95ce5ed0edcd816c18a55aef681b203"),
			decodeHexString(c, "36d72751e4d6a7c6cb2ead12eef191254df53622f6c0fd1f33187f09e87880e9"),
		},
		expected: decodeHexString(c, "c1fa1565591a1225e0a61e1caf0fb6e4c17740c1b1088f47b90d91a0f99978068c162f14cf82a1ca936ec3312ecdec2f4b7944129722657ae20055a0c293bb678771b457940df23fedaa69eb1c1d487af7c7790b4359bfc84fc83e9f64b81b78b5617d8074d8c7fbb443d3bc671f8d2bb600c3fff2231e0d363b41f3f558ecec02b0f1d59a63b39f5b82b59bf88a0fc9a838a802875e7bbc06ecd0029bd62796e2047df49139bd5c34ef67dc930b1811428c4b547a6f67404012a5b97f93b2895dc2c2389070220a078d2fcd8244a241caaa98a9c0c7aef60fc856c61a3b8aab46ffd3f0cfd768d6b41e9714969587cf363b3ebd60c8c331435e9cd79430767f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_7(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "1ad037daea8ae2b9131f4490ccb453b670596978e097c7b2342c5ad8bda53de1"),
		nonce:                 decodeHexString(c, "0f696e07bf91bb091c21898a1f728bf5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "873089840b5f022441b355f8e5cee75917400c5ca597d6fdb8f52874cba1ffae"),
		additionalInputReseed: decodeHexString(c, "27b4177957fbb40bccb4832fd95be75ed8df2307be3cdd692e8878bad14ca8cb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c7dd83bc2e99c2428bb243c35e2544b10857620fcdf8964b65b62c58b5069a16"),
			decodeHexString(c, "ba57de1455a25c66dfed3f8d2e3e198fc6ebfd7927f590c702d3a5ae81e80ac9"),
		},
		expected: decodeHexString(c, "76957b10f67a690c33d9a5652514eff7b3b5ddd35acf424d0706725d331411f6cabcc35817e3dd1b51053de30ccb0210bf428caf0fd6e9e798870e2cac024643f5e15f6c5591e921e7531e60c402bec732e79f55f354eeb5ced5fb74513ac8a48cd6dd92a8f72ce26d87de25ffefd511974d629d17048f10a6315d1e06103f58f8d3a04391239d8b1e58cbac3eb7d8ee4fe9daa194cddfaf891a209f7e3f703a4c18fe4734d532d9b648d55d92d6ccf7b1cd5daad9ee400a52bc464ec300e4dcaeeed6ed9d741be4c548e45a6b9c7f73fe4b394ff285b629fcaf031a9ab3593d5358428db60850de0a2fdbc51d5c63f956d6b6625207e2a0e401891a92ef953a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_8(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "fd2d1b1f4150cbbf6ee3d8667e7f508b341b3c251c8b0abf3178d2fa5a80ed17"),
		nonce:                 decodeHexString(c, "0a15bf55a6570f979080ead216effa58"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "02b2e7404ad93c5cc41e17eb78168859388738fa935d1cd6b06422867a30b552"),
		additionalInputReseed: decodeHexString(c, "8937c389fc1b905660861a4062c4e6542cc2c587284a279cbc86c432edf541f9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c1f79f883f51e1de95afdea8392e121a9591674063411ba79b098e0869dbce33"),
			decodeHexString(c, "0ef847924d2fffbbdea4f12acd441e52ad39ff291e80c7a24802c4f03f09c8e9"),
		},
		expected: decodeHexString(c, "26a17b546d2dc3b1528efb53b0b0f87e917116f03658ff6e6fc165fb891f483af8ede7fef8ae44ab9ad07961b4a22f50fbdf1714720704de4d80edd1b1fbab4443e961a441ce4e7959bae558e333263f79daff8d8f9e3ab0d73eda9f4d3e31d535c67edba3d788ea7250584694628eeb55df97b01f5c70b051356b5d089b0a368d98bbac36c690e188e58eefc9b5e2b59fdcad05b71bc111b786512d13fc0ad4b9f799287f03198a53b8be4a2183e7096a0b9fde728dc409414753077e436fe1af94a93241021de8778d65a4708102a49875416170b30a6fea290d6882c41ed8c838388cbb7fe881a4775cb323de353032c6e29aa057bf81619e1670823a0ae4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_9(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "d4f64d9c63708f9294fe1b1de82e160274dc7ea857f8ab6f4ed629cc5c4fed94"),
		nonce:                 decodeHexString(c, "bd2ca16570134810e71a3a7a38fdee4e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4aaf3aa82871142efe6b7d7a4888b4f0c745bdf649f6c84fe5a6519ace6336c3"),
		additionalInputReseed: decodeHexString(c, "a8acefe33c7d7933ca6fc3c8495bb315bd4edd94668084de3a4f742ac5ca1fa1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "095006f15ac6f8f649ab217dfadd426a60ddab70c114cf7d52f5e6762a47e679"),
			decodeHexString(c, "9f095084b18d6eec18bb6ba7ff6a876344f0d6d7916c10bd510e2e0d546c4a3e"),
		},
		expected: decodeHexString(c, "3d3e2d085a23f3b08c0cf1e49252858855f28afdbfad3a58983b1d815b2643a968de890af8f3d804969d716dbaaf206985d413e2534ec6f2c9e144be0cf097590e3de9d63d5c530669d1b287f99d769e7fb6e2c71973c1ea02caf49d3e400bd31d578313d5c73bb52535a86b28f4252c8f6bbc9770554e294d0181904881d5224cd30bb95d85a952913f63e2bcb2c9e24e9a999a6c7431c5e6e2d76e4ea64480819ef95f40b72dba0f841cffc67bde3c9732aac9bc4dfde6e9789487ab9e2fa87103155411eab4c2e9b640c5ff417307467ab7d9b6036c8e81a51670525f1ca234fa4ec23abe6dddeac0c029a4b58d2fc8c24c3f57e2c2081137c92fdc373d23"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_10(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "f30723bc93a3fac546286c2ec8faf54498eea6f8d723c32c7b648265dc75d8dc"),
		nonce:                 decodeHexString(c, "14634281f7a7d1870208bac4896e22fc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "72bec353ce3bbe4fe2672c0b9f6266408008d0d1fff6c9c797e93ccdbc72dd95"),
		additionalInputReseed: decodeHexString(c, "ebc2b572f365a726531b3ddf7344590cc5f779771134ef7bd7aec4af95bfb532"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0941303cfaba20f7c7c4ee745ec65be3c4f6d217f8e6c9a1f5e6db94949645a5"),
			decodeHexString(c, "6039cc999268f1fdd5ee2979e76b584b85069f144507723e2a47e3af1d8c2355"),
		},
		expected: decodeHexString(c, "eb7797a46743e552e682c0c7ff02e1a06d5aaccbd1a54075cb1a9332e76570d6aa5dd7423dab5f12b1bbfcba8b6396f2bbc5a1bc4c7f1fc306b32037b503a1a26b509e7c736b035108f90e4b3ae880bcb1eada72644119f9ae9a73eada21f9de1d2b1356a90f83c6ff97978bdce08aa6412535b401dda98c4ce72534f6ed75383d51922e0a4763c5903baaf75e5baaa355b3448e101ca3229f5eecd346f450c2f2b11503bbf23bf5d8f79392cf1425ae1cbcdd5bce53ca7ee0b59647a0a4b8cbabde28a7368fd46965ec0f55c8cff034ab3b733d19ceedf2b8f38e541da2bbb51e04cc5506d1ef8ab0ec3b43c34dca722e830d745ce631652976dd6fd9a6aadb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_11(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "070a6da7f4f59da9ecbba2daf690ee9ad0c9cad330600b7ce7b95d5c1336c96b"),
		nonce:                 decodeHexString(c, "47bcbbf8eb4d8918cebe861e959d68d7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e5fa7ce34adaa38de3e36f425832e6bb0a23fe21d10c78800506d9054766ce52"),
		additionalInputReseed: decodeHexString(c, "3b4d05963c2fb8315371c2f35f375b6e39ffec667303cd96642fdf6ff5f99102"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4189cc93c021bc2f958daa737a17f78c03ca09a1a4a73faa8a74f3f109bf2800"),
			decodeHexString(c, "5da2d3a69f10cf9a2f5276d3d54bbba4ec02826f6ee0440608ff4fd6b1ec962c"),
		},
		expected: decodeHexString(c, "f8d6d5d7aee571a9d75923c6a2ed73f3e77901cb025d3e609c7cbf83b6478899b410756f66546bbf38ac3309f02fc870e056772e56abe76a99a147d12f1fc60ef50cf87baad21f5ccdb43ba43ef0ed777be5de30ca312f814ff05ebb93bd523716b8f8ad0411aa732d2116040d46cffd9bc2e463664433ef1f7fc56105b393915106d8ae860aeaafa934975d446ef95d697e1761017bf102e9e175c7d6d3a3aee0ce877f1ce7709d08c2c84a34d85d17f77e06a5f72269c9f18f94a9d9e635ba1a1b62ca5499e717423ae4bab477eba48143028ea7818d64563bdea3fde587daefd59fe7059f4f6db16a61837876946eebcd846fb5acf07507c38410e2ac3f22"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_12(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "09b75284b738d600dcd3322b91d380db45d3efdf2dc8e9fec64cf07d7a606531"),
		nonce:                 decodeHexString(c, "ab41f05d85e3eed5f62d55c5132c75f1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "51437d4f93dcb41145b2f95125d1daa7dd1f75dad6dc32e9e42a21dfaf35726b"),
		additionalInputReseed: decodeHexString(c, "7ebffa04f7f0c939e1bfb4c8686ebe4ffd7a1ec3fb4aa114946a6650f2b449ea"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8d9ccf3526b655cb923ae3e1416e84af5e458a2ae4bd55aa98e900353f8bce65"),
			decodeHexString(c, "d78edf2f7211f49b70db778b0fb0eaa217860f9197ad1242cda264c3ffa3e2db"),
		},
		expected: decodeHexString(c, "1f802d0a9526017a56c43ebeb782c19143571f979b141b644612f0364cb5531f8fcd527578cef89263c6fc5ab26baf136418fe203dfe3113124363c768812d3e60a66b14fe13c43891e0756fdab6f8dd2a28cf9a6341b7b39d996353cf435726b2a02560e0b5f8035c2a50b10de41ffe389f0b0e478d783fe8da8d729f1a7b41e09d3e3cc5f93ce24ad76b5650ae61701035d2abfc05bded61afb36dfd910be47c8788af1f74cd101746207722ee2761e54742d8f21884794fa9b0712645fdd962ca5cf2d3070f4a2c1db6f4c1aadbcd415486735ea1bf6894146e09c6cbdab36d282e20ce0e840871a0b435c3e800bad673754cae50ab4e7855e268d9bccbca"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_13(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "773a12318265c2de4d6a80ce936d4c8a13d81b646fb197d7ade8d8dca38988e6"),
		nonce:                 decodeHexString(c, "bf4fe25d32c137ff50f5e20e987ca8c5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c7ca4c2bfc9f68c1a79e8a0f9bf2a1dce0c09dee4134b39f1e51f0bc10359fca"),
		additionalInputReseed: decodeHexString(c, "4d995d9addb816122b70226a068c457ed4635e7ac9ce41f1594ff84160c1c06d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f068497d26966dfdd57d5a8ea1a05c1db2ac2d72248dd59d17bca9c6fff28817"),
			decodeHexString(c, "641d5482fad78093210f7e542f45a8d17fdc856be5860c45465b0775bc45ed7a"),
		},
		expected: decodeHexString(c, "4d47fa06ae54f60102bd242309d5366a953e72a2622d025f9babf6f6343429e4158691bbe3629e701f07a48ed239e734a78a400463139cbfeb45d6515bb690f1211ee03e908cc446abcfed29b955b92e7f9c3aae149195e174d34f10e30333fce99cf362c5a42a79ec907d90fb5806c1d09c9690d4aef060f0fd1b0b1877ccfc377dd675778adae40e87588e5080d3cf3eb1f710f019611267b2249007a01b3e6999a3bab294766c933b09537e99ef7251c588728ee1bf8c64ffc64de6a70a521eb745b4ca6307bd24ce5661def1d7374afb1c44a964f14edeb1fe457465c0b45d62a33c5c5bd1628d528b20154d73a946c44363aaaf20dd41244fbc81dd0475"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed65_SHA512_14(c *C) {
	s.testHMACGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "eadb3322979308075d4bafb69cafc6dff5d55b97c4a73dd9943a0a9e4ac01b78"),
		nonce:                 decodeHexString(c, "ced5ab91508b9718f6de9da47fd7bd54"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "797cd5a5f6365c28b1a56cd5d74721afc4424a7ca53ed8e97a2c15a727a682e6"),
		additionalInputReseed: decodeHexString(c, "8ced860d74040dceedc0fd0f3bd36ecaf36f91e4c56372ed1a54d25d65180d42"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a19980a1c86e9ee4db41f6467144b0dff4c0692141916d46bdb7c2ab79992116"),
			decodeHexString(c, "1cdee366e7c3e7e853caabc4320ca2b63616ae86343fc5ec2a21b6c24c04ec39"),
		},
		expected: decodeHexString(c, "84432c3f00ad23bf1ba4b464ceeed8da0760319141c214d6c31344fead11011ca1b10f19de5a3514c8df0b69fb85e8706db272d0e1e6bfd512cadcb4df7fe745aaaaa8fdd6e194c38b063c030de3da53ae6596834b99a46ad205690511e3aa69cf5bfd9ed78d6d33e357524dcc94278b127e89e189e52db00b426499a388241e9455deefddbcd3974236c67c6207a6f9c4c5d1403c02c828488e705fa4f85fa2771a1f3df7b2d5d4b1bd25788b8e29c679044e557ae4cc5dfa86559b6ec3b5a314d4de8affd2d576c3cb260413403e3ea439ed4df3501acb85dba98306cd7055027c7bc339878998e23f70680a855479060186335217dbcb229cfc54b66130c3"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_0(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "da740cbc36057a8e282ae717fe7dfbb245e9e5d49908a0119c5dbcf0a1f2d5ab"),
		nonce:                 decodeHexString(c, "46561ff612217ba3ff91baa06d4b5440"),
		personalization:       decodeHexString(c, "fc227293523ecb5b1e28c87863626627d958acc558a672b148ce19e2abd2dde4"),
		entropyInputReseed:    decodeHexString(c, "1d61d4d8a41c3254b92104fd555adae0569d1835bb52657ec7fbba0fe03579c5"),
		additionalInputReseed: decodeHexString(c, "b9ed8e35ad018a375b61189c8d365b00507cb1b4510d21cac212356b5bbaa8b2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b7998998eaf9e5d34e64ff7f03de765b31f407899d20535573e670c1b402c26a"),
			decodeHexString(c, "2089d49d63e0c4df58879d0cb1ba998e5b3d1a7786b785e7cf13ca5ea5e33cfd"),
		},
		expected: decodeHexString(c, "5b70f3e4da95264233efbab155b828d4e231b67cc92757feca407cc9615a660871cb07ad1a2e9a99412feda8ee34dc9c57fa08d3f8225b30d29887d20907d12330fffd14d1697ba0756d37491b0a8814106e46c8677d49d9157109c402ad0c247a2f50cd5d99e538c850b906937a05dbb8888d984bc77f6ca00b0e3bc97b16d6d25814a54aa12143afddd8b2263690565d545f4137e593bb3ca88a37b0aadf79726b95c61906257e6dc47acd5b6b7e4b534243b13c16ad5a0a1163c0099fce43f428cd27c3e6463cf5e9a9621f4b3d0b3d4654316f4707675df39278d5783823049477dcce8c57fdbd576711c91301e9bd6bb0d3e72dc46d480ed8f61fd63811"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_1(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "c2ff911b4c93846d07e0d00eeead3423845c7215c8b5fe315aa638745e63ca26"),
		nonce:                 decodeHexString(c, "f1062321318087bf045903cd4f5cc9e6"),
		personalization:       decodeHexString(c, "b62f8ed28a72c28d80b41e016f559bbda0a2a447f8e146eb93a509b302e03c42"),
		entropyInputReseed:    decodeHexString(c, "1a318c2861c6a93948d779ab45f14d451bcef2d43a5ac752995bc0b365bc3fbc"),
		additionalInputReseed: decodeHexString(c, "77aa1ff77bf037ae26e60d412f3341715afcc1fcd3bf971a481a15d45c794331"),
		additionalInput: [2][]byte{
			decodeHexString(c, "55ca83dff075f4de57588dcec9bcf0fd1fa267bc280d3c48f1f1f749e1997cc2"),
			decodeHexString(c, "e42e4aeca6716181c71ebd462082309868f6faafb5d9c82357c785283f6d5285"),
		},
		expected: decodeHexString(c, "384383c41b4df205d19fe68e563dbfcd2f6edbd176574248f3d1ee44143b70aa5dea695b87bb6c82378953a714084ebb5619aca7d63e0dfbffc253a336edf80acbd584cd3f916d6126968d564c1dabf7b3479a62e7dfce560b80a5104389bcd771e20138dad4c59f290a4525b00f6798fb2a3c8f44605a247653d24c772d207f0ccdc19a07037429c7e79771c6a6b4ca219a1f8ed9bbad9c4cb27415d18b7278552e50ec6e25617cefa7324ad786aaeca811c3aaa35ae00d2f2152fb6d98dca82ebe579bedbb50a40e62af9e229dbf9b9b2bc6532b5d78e6333cfeb1ad01e192491193c9459b78d4e9c6e8efe69cf0c702298e325f129027145af92170b843a5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_2(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "e1a333ffe4bce7b9f6bbc8dad8787a82ad66ca9b25a64f04b166face945c249b"),
		nonce:                 decodeHexString(c, "5f45cdd318c0588c7cbcd14846523943"),
		personalization:       decodeHexString(c, "ce1466063de221c4fa1cc308442db476acfd8ff34b2a0dbbbe0eceeaff210293"),
		entropyInputReseed:    decodeHexString(c, "a59119683628020e901a0a7fefc21625864ecb1d76ec119a10821b49a3431348"),
		additionalInputReseed: decodeHexString(c, "d481e022a80f3e60687bf153524a33bd6fe42c54c39a377a9fc27e047df53f14"),
		additionalInput: [2][]byte{
			decodeHexString(c, "26a88acf67d5ed00184baad664c6b2d4a91d437a121c3cad9eabf3d7e676b0d0"),
			decodeHexString(c, "524e4896a22bedc62820c500ed7da2bbbb4c1ef9f07b5f374d0fb4ae9bbe50e1"),
		},
		expected: decodeHexString(c, "3c3cfdebca060f534a952e4933c2c00f9ee0fcb825a58abb6aebc952e160668f711068881ba8a6817500bba1c28867cf21a12a50e46792abeb9f41bc02322bce1e77d236b7a45a7807fe22b8ea9e2859d2b0164783d364f6ad84f4b9341c576cd6ab2ab249246bd76910e0abf115e4c59e37074de5f4defd03fa61ce1733e33c98849ec28ca61b845035218afa7ee2867b32ba1efc50907d76ccca5a7ba69e9700875b200cec5d1fadaac77a0960c4eb899c06134cd9cb663c62b69446a460bc9e3df7eaf2a34df00fcd838e882f5af1aa701d35dacec0cafbe74cf6dde7893b880071d3f1c9e53b205bdfde9807999e73468264d6172c952a7f5f88a836b1c3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_3(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "73cc8caea7f1f2129bd035b77bba2309ca3bec73e9f993fbcce7e3f148670bca"),
		nonce:                 decodeHexString(c, "656e3f17e5a8ce9bfe3665f4b6ca8ac8"),
		personalization:       decodeHexString(c, "eef338ebdf4d9399441655090136becbcaf277e5ac73426f79552b3f27819ab6"),
		entropyInputReseed:    decodeHexString(c, "111fe051ee0e760b295b73470da27081ff17bfcd6ff9085c5e064ab844927f84"),
		additionalInputReseed: decodeHexString(c, "2114d320b65a5906d04c5166ee82e727cc53f0ba33ed54a3229ad9592995695d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e3fce46cd5c90936f20252e0065dee1940c7902198ae105017a8f50d143a50f6"),
			decodeHexString(c, "7ad27ea94de6ec7ad7cc1895381c735f007f6087d688a070b4cdfaecdd2a3345"),
		},
		expected: decodeHexString(c, "858108fe1adf90fb3238363ce3532362675a462563e5c12df97d054267df0b205ed3960d86893c93d2b1997d95abd9179512289297b00cacd1a51202923c4224561e9986d0242f50ea4667fd6402e29d18c184028cc6c85836b1455e2d2e9b389e0d65bcd2c78d5e42ad9e47707c9dd4617e6ef2d64590d0e0be5e4465eb611d91b1a45bca1af04632fc8dd045a5f5ba3ec1fc09e3aaa1d03719181e11c80dcd1c4d1aac3ca69d89b9d2c6ff7575d78843fc4695c1954fc663732418bddba4b20439da03d0428fa047f99a378447f9e563fe405fd8f9c32d580aa6dc1560b9df1530fcc7b337072cb60007b4e2762dc61a08e6511e7c93b91303aa3d46c14483"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_4(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "5eedd039764e7af96c3ef7d9e094e861dc0839c2a2642c4082afd09f2761c392"),
		nonce:                 decodeHexString(c, "a4eb8fb607ca7c5d7d4eb8e871aa9950"),
		personalization:       decodeHexString(c, "92a258c0ca5a9c030dd469ca5d8883ae5f3fdaf7d8e0fb23867d150f3d24a0a9"),
		entropyInputReseed:    decodeHexString(c, "37a297af07ba36a59572e3975138fcfea667e06d9a4bfd2e9c570e61fbc09006"),
		additionalInputReseed: decodeHexString(c, "954a9431a4f9b34f6c28fc41be05fefa3449c8ce0265a19b8a422935690b50c7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1765c701b279cde38b469bf0948f500b5afea8f7eaac3f100ae5f0b147005ea2"),
			decodeHexString(c, "1f6d382b8a8967efb9feffb8557f1cf40f4f65b5fa7d9846cab0601f5150430b"),
		},
		expected: decodeHexString(c, "bba8f496d47ec97d90533650275243fe76844b606d714c8bdf37db1e3f8045de44482d65a99b6d60ee4aecdaf0d262d96c058dbd704ee96e4ae52bd3ea56e9062b93e2b044124b7e9304dfa237e623d7e7bcedf59bfffee1c581c7e41a401832443ae80c6f4b7643591bd78254996235d011233b18d993b950ccf09bf29b2ae10b85e4cc4feba5503f8e81b0d0e7b50e7eb1a358726369e4af07ef64aa83813e61350068026161a3ccba808a99d11e7de5afdd91137fec9b77de8b59ded6286e590ffab21fde191362af132bac1e8170f36f95d53593e73d1775609a0ef04d9a75a4bab26f97d253b8e00ca430841cb5bba4439124abd37fb43f3510bd5690bc"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_5(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "95e33e3e1e5d24dcfbc5a534ad0e6ab6ab15dd6b094b7642e2187aba9a303137"),
		nonce:                 decodeHexString(c, "b5b7dc3d70253c3a8b446b591fab6950"),
		personalization:       decodeHexString(c, "7080c7d4ddd8e32fda42ea23adddf7a4d3893be2cb87d6c7293bff521c252189"),
		entropyInputReseed:    decodeHexString(c, "c4f6a33de5257fdc474a46ebbd367465127e6a9eaa97e17851f9a4d55fe4e954"),
		additionalInputReseed: decodeHexString(c, "611ec30b87ddd1096396d539ec973dcb7c408a62e6c37bfbe563dbb60d9f4932"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8a4a0f9eee67c54e3dfd846ea92981cd769a8c7ff4f2646c85e80a03fc556bc3"),
			decodeHexString(c, "05dc36b5d354f4c3b950053f925616c27e2317f886d2af09ec1eb7ac5397977a"),
		},
		expected: decodeHexString(c, "90fe978fec5cb14ad180e1ca8d3e266658efd9b0fc95353d4edd06c4682572a46e918d1bf4269d38f5b005691f4b5a8ded08983d307a0d7de64e681a302ea6d0ff8ddb87bcb5ab0871779b10744d8188f7bf2d6498a4ee998da93d1a2fdf3d3da635c52cc26977b25dfe17a5f5dcc80fd72d066db7cdbeda557ba52554e1ef5a075d7a40ceca83cd83477d99591228f4ae33163d73045d35bdf892cd21083b8d70a3297212edeea57ebfb66baf7af38833e72113001c2489ea4beae57995169a1354131a7f607a1551643d27f56ce8e96143a78b2a19f9fd72cae9054533fdf16825d852c990dbcf347d32529952445cacc55c79a79c55ebdda76f226bab80d6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_6(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "b43301c1af024ba6cd7eadf985cb1c6c303479ec3ab47797392d4220788f4dae"),
		nonce:                 decodeHexString(c, "c2b1f5ac6138bcb83e938be66b3232f7"),
		personalization:       decodeHexString(c, "ad7fcba1f90b243689b85a4ea1dc150bbeca4093dd8b9a0a491a678011ad807d"),
		entropyInputReseed:    decodeHexString(c, "f022f4e548b93e7a8aa4d853fc1b4c42ed9b182ae582f6876beb268ba23c4105"),
		additionalInputReseed: decodeHexString(c, "0410527589e72024491d4b5328b5659a330d9b167a1a27251363e262f393eb57"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5de8fac62063a676904aa9628046fe71f080ce285ef964acdcd11260734f2d90"),
			decodeHexString(c, "2f14a327bdbb9be4d9a813dd73445c8a8c911a874daf08a551e867f54983de2f"),
		},
		expected: decodeHexString(c, "41d553adcd069c7d2b265798f8891329b1dbcabe2e7c03502542b322d13ea71cd8272eeec65d31520782351a33915deccfb8e10cb64d5f9cd88eb30608f7b136486b5972a68b981e0b9b7298bb670ace568b98c88d35b4a40c25bedec94eff992c0083e539adccc37ca5a4093ac96aa13c83a59c080bbe02e37a81303500224daa4f380d2b88cb84ebaac342bfe5789658585d2892cef2bc9ab6f1ad51fb292e531bc33186e39b93fb67d4ac633a2f4f8c681c7f82a81a47b74905613bf10ebd3c57fd6c8624bc7e55b38e2ad063aea90faa038d671f86c6b17d4341032e11e13c526c4818dfc42cda496ecc060d9a1ac45ae0e72a6e05bc3a8aa851af5214b3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_7(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "837e9048e5564df02e25f7b7585ac5600ce4cd6a6de8311c6b3c6084356ad0f9"),
		nonce:                 decodeHexString(c, "fcddad47e7bb6ad7ac9f33145de13560"),
		personalization:       decodeHexString(c, "1d194d69897c5a7e8c36cc4cd97784312c9b6599274e3b20d022b1349ac45c58"),
		entropyInputReseed:    decodeHexString(c, "5866611c2b083fd1f9e5cea98f2725cdcfb0d2ff6f0adb74d6fb61f8a6ca02b0"),
		additionalInputReseed: decodeHexString(c, "b6a8880d415cc4b2aadaad6d7d2dc73484b70909345bd209520c05fe7f5cdc80"),
		additionalInput: [2][]byte{
			decodeHexString(c, "31bd3fc264c252bd3f8102529763d5ad3e45a4e068677423e698160db284bf11"),
			decodeHexString(c, "0b845cf842d1ccc15c2fa7224ad121b9b5f8acd1e07b16c143c931da56620906"),
		},
		expected: decodeHexString(c, "7a6dab28ae7231e2dbbd826c4eedd8ce062df31fffbb0c0ec045b0cd0a4e3457ff978bf39425e48cbea4884fc59e95665068361a8ee9175a48ef094806fc146ccfc3c403a770abd0c6bc8439bf68a89f13b0725a79dbaf976dba95725a4399c58d15c4758a515346cd0d6208fb0bccc06568642eb3e0c3a9a1df9567eeaa86924157ccfe5b2f8e8ec946871dad33f40f65847088c9e500faf8e25439be8a1e77df12a2b21b9f73244b82176e4bea4ed33d2671eacfa5c4b591cd0bd93dab7dc62f7231840909ca319278185f873d00820fbc239c3092d1dc1a3cd9c692ed6d37192bc587f8b3ee21c14fb20c520fa7899bcd2a1a53288a42cf70c6fefe7ef7b9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_8(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "f840c75ce0cdb200a3bd980d6cedf1c7321e5f303cd0446c7afd2d2d66657447"),
		nonce:                 decodeHexString(c, "b215333b15d55326bc9bebae6ae36efe"),
		personalization:       decodeHexString(c, "6d5ca4b1edf6c0afbdce02ecb30923b2f4f2b33121e21b2ffee964cc7de1abe8"),
		entropyInputReseed:    decodeHexString(c, "a3a337c6fbeb6a979a4783f2b7f0f0dd6d3a9d3747de639a9047248a04a19f5b"),
		additionalInputReseed: decodeHexString(c, "f56d2b1584ba2f129c77b29590c4e1dfdab5527b1791e3e445750ca6d4ae3542"),
		additionalInput: [2][]byte{
			decodeHexString(c, "05bd799249411b37b80590d49f3348631b06a2408a61635c70687003a8485302"),
			decodeHexString(c, "12d26ac3b87924cda5d78a3e3c0bd81280e340723643ed1b2ebf2dfd52f5dc43"),
		},
		expected: decodeHexString(c, "b48c13af7a9b6fa6385a7ee5d2ab97dcebf71a715dc465f413cb0962292df84c9c83c4093309f749359b0a0ddcc13162cb4ab8ff7b3a6336351ed79ebf47730f97accb6a960a9c5c25e0920a06cccc3b3f62b616c15ca18d7e0b5c2e7d8ad2518d1ef0bef515af866893e9378b56deec32825fe0a2c5a9729f658915b99ab22a03b7187e83d2d0f41b9467c8326f7bc87189dd8ade18b3a7edf0c0ea462dc22109ec91294cf8ce69c8cd0c129b423edadda8fbd25f4983a70d75001576a26405188bb0284975203694c318f3aa7fe47ec041bc4c11c9bceb1b131f74adcd72fc4d2813564de6d4711017800377be9e4c579e88464d67ea6e457a30f8f652375a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_9(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "c91db86e3984dbaa25ae5d851ef341eb647bd1df0517e171fb86069cf6183c19"),
		nonce:                 decodeHexString(c, "a386746ccd0a7e81f3557038711db725"),
		personalization:       decodeHexString(c, "a4585c13c83f962df72b58230ea123846df652b2810766bb671f675b96125a4d"),
		entropyInputReseed:    decodeHexString(c, "9926089317ab7142d6ab6050b1f7dfc21080910d43a702cce93cb1d3b155d22e"),
		additionalInputReseed: decodeHexString(c, "fb31319b4e622dedaa88b64aed93bb108362234c3d3ecefc78f796aeadd9c8e8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "877bafbab3bf9c20b1a85a5f4b3dd11a5c486042b807c39d59fde1eaed89cced"),
			decodeHexString(c, "89a5af332718418758129b8212643750542bf957bf35c64d6b0a276238c808f3"),
		},
		expected: decodeHexString(c, "931e43b1607f43260ca4fec3205bafd90ccf9916d721d9edc384250f9346525c7656cc7b5aed8acf92b8d843108855ac13f4f0903e51aa4ab7846a839ce70b7de88e0d52590ede14437b5493b6c2d9458d221b771107ec166f66ed993739604c487fb4ce94bd795e9cff60b4f8365c758c27fd767135b90b3372570a8e0e3b3a23da37e69382afbb76168ace3ca78852bf99a0d3a7e2bf192d8d929dff5b07730e00a8c5fa5ae243c89e71fd52907eec0b4c49fb86b81394e38a6b0523a89c0fc866c2c3cf76f336e9438d4f773cd5ceea4dd47b3716a9986153f718177d2c8ebcfcb90b986330f817334d29aeb9c93e9da5db30b483f8f434f2807bddec6851"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_10(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "3e4c40b9b33063edbfd21bc4e34c5bc1f454d7ed176e4f6edc3ab056a3b0d1a7"),
		nonce:                 decodeHexString(c, "9170479fd91d6e30caf99166842e0175"),
		personalization:       decodeHexString(c, "7a3d7511b93842159162176b7016106e61573aa42c57aca7bbfc97b3388c28b3"),
		entropyInputReseed:    decodeHexString(c, "b2941a7186d8c3f54e6f5f9884e47dd22a161a3fc5e00c1c9ca5a744c6a7f7b2"),
		additionalInputReseed: decodeHexString(c, "d88781b3afe2e1500b6881aa9cc23dd150054da57be0ca127e101a9fbc4decce"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6231b0f5cf182c6f108491c5b7ebed9b2a015e9698e860623e9a12e691a38899"),
			decodeHexString(c, "bda666c5ac006d6efc2aa0da52e74eded88955f8f064bfaa52d9f2524a195f59"),
		},
		expected: decodeHexString(c, "2d7d62310bfc4a3347122e23655a10dfc54fac51349f0c8d586aad39236a20368f4d96623e58987f7c1184148d586022a4b96976f72636eb1aa92ad221c5866b6c6803cbf6c982e1de12bc89618aeb3f844b2a518a578714e2380075acb828685a57683179753fd1ebd2d8aa1672940446756829d6ac1cafbb21858465789adc024b8fa544bea09cd4f1f3ed35f298d4619a5f92a6e4f712a0032307ed781166d7a6af2a352694be7fd3bc8a151ea848f8b14da8150eb22e264d76e655fdb3638bf250546eb29ff27850d2b5697932c6a876743561e0894a01ce8435cef74800f11e4bf44fa5149a6fa4f4ca43267a47d3841722ae7efd09676f341a54ff1bc7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_11(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "fe4f5247dc405c12133e9cf7fe00483649d0e7b70fdb1b39f8e8ed0a4789a0c9"),
		nonce:                 decodeHexString(c, "ab78417816b54d47cf98c0aa4246ab0d"),
		personalization:       decodeHexString(c, "5c5a5e517b3acb6d6d75742bc293e4d091d7b0bf37559f75df98d6306bcc2d22"),
		entropyInputReseed:    decodeHexString(c, "68028d1e7441ab77c5eaaf9aba0f2ac6e1be2af480026d44d5eec0e46fdd31b1"),
		additionalInputReseed: decodeHexString(c, "5f56dc4800297a3fa8e2b38483c29505485628866ff175b19d4abaf4526bad92"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d9bc081026ea5e35a52b9d1868688e03aed785af201e355cf51e6e8cec917c34"),
			decodeHexString(c, "bcec655ee8c482e725c5b915b4085a9d678ea26b71c1ce0a85f741f9fb3c3607"),
		},
		expected: decodeHexString(c, "411edcadb791507f40bfd00f3c764a2c758729f3bea116ba0c820efe09ed379095f7877cdd6c694c436572f4dd1b905301ed6e5fa1360ac8112860307958c7b64372eae8f4122d84ff2d4b690419e3043b8a6183afde8f084fa110c38403adbc878b9b139f6df5cf47adbec2d1f03cbcfeccc412942346fc42f0af77d52cf9127dfb02beae47375aac101baac38d0b47d8f04f83a7eff482ead93723827530869390630379767df1f40b73932789583da327e2f363ba421a253d35d205b00945d9f5521580350f631cb24c7bcdf7cdda7cf28baf625fd9d61134ec7a6d1cf4c80d05441722d081d4aea1074712f37884fe15ddb3cebdadb20e71cf3ab41676fe"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_12(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "9d129142ba466c27f348d5949fafb79675e334fc3a1948e5d008ee265076467b"),
		nonce:                 decodeHexString(c, "fa435596b661c527a82e5a064fd56cb6"),
		personalization:       decodeHexString(c, "ac23c42315f2bbe54eba535a7299113cfc88216727ede9f154d7bddd88041259"),
		entropyInputReseed:    decodeHexString(c, "f17f549c77a0a6a998712ef0e1f41ba4eeb354f77565f7a7627eaeab83ea48fe"),
		additionalInputReseed: decodeHexString(c, "7f029d2430d49de4909a758a2bda4f219d37eff01c96de7ca2a4071d128a1c9d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4b6a443312f10348f6aba088d1f81206c696508a75836e98951604e93fa6db51"),
			decodeHexString(c, "bc128051ddc96eef9fbc3a23ff458240d11a229d1a75888d622ceb7519e1db6a"),
		},
		expected: decodeHexString(c, "03bbf9e2c0c1abc1ad71506fe91d483481fc583a73ed2eb4c8834a87118088b20474b78e06366b2f32a5f50e6425be841e1885a72aa106d5a001e3909b1ac2a29940ded83f0724514800aa0dbbb18da6d573aa97c7de470e115e9332179cf8b321fdc83265b4d58ed39c28d09783590704ab9adf007ee44d4d74af437851734d470085d45252588d75448abc608be03630152582e0344e1a7522a87c3daebeefbc79497757835f079dd99260ed7d7e3e00bdf046f4dab3ca84b203f8c93cde99755c2f5b16c00d00f370715f188e80f3f353f2d218350fe1a9f68673ea8e9301333fe5ca7c703d21aa2d0df020db28d8340b5e2c07ce5bfbcde7194399b6f752"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_13(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "2fba8ed5b2be9af95fb02183ca8ae0dcca90b209be73511a5dab31ec81e93911"),
		nonce:                 decodeHexString(c, "7e529fca4f95a483bd307838ef0d779d"),
		personalization:       decodeHexString(c, "2de698d32010618c25ed86cccad2ea4d9fb9adf7b3dc400a2b1b4c975651d103"),
		entropyInputReseed:    decodeHexString(c, "bbfe77df481d807b309da929f319b39287d3ae0994f77ff616f0a763f35d44a3"),
		additionalInputReseed: decodeHexString(c, "f9ffcfd5bc9a08f6f9059f4bb7f49e093f404aa7fe736bbf4018734071c26334"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a309fb1f43a520a22946a6418500929e19d2b3316fb1a8c1aa5d047ddfdb8d49"),
			decodeHexString(c, "c1dbfdb9bdd4a3321074b57e11e5ec6dfc374248a918242fb3e22cc6612b3239"),
		},
		expected: decodeHexString(c, "3eee1bdb63433c55971297e15ac1691cbdfed576b1d2ada27cab33e660a3c8575fe989ef73e13058c9a3777c35bff1dab25e1991b78cc446738ccce723eb02136fcb24a0dd2597c3fd0a75774c4a21409689e9309e962be1e8b096c2dde59ad9dc6750051058ff6a18d57a19ec2775882ea0af65b172ed718678d841fb51437aa3133b2b328df0f4ac916a01d88c740981bf71c4664789ca4e9d3f7fdbe7379231b64683fc891c5222f8b396a446f3b50dde823f95177b7284663402fe5452fe7bdee304abe34d71172170ff3a911782b72b2556f2337d1d23d9d632bf6831d3c173fea3ca8eb5d7993a58a4b9f8f64d5c89319acbc847576b383fae0178a097"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed67_SHA512_14(c *C) {
	s.testHMACGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "a9fd18764900768b7909db87dd4c7b87baa2cae6b0f62a8c2ee3e4c550041ca7"),
		nonce:                 decodeHexString(c, "435c7b35ecc6ef373dde3d989420b92c"),
		personalization:       decodeHexString(c, "8bfc5a65fa21396081d92c3d7206f92637389c60cd7a14f11811c91535c0083e"),
		entropyInputReseed:    decodeHexString(c, "2bb32f9fc8c766ab840f5d0c73558dcac87e2102c28193e7ffd3381bc30e1d31"),
		additionalInputReseed: decodeHexString(c, "404236bfe24b471ac7df938be6a96b8ebf8bc758787714d226ce727e9d2b4bd6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8151ae3237ca06ca5b0373039681a9d3cf799e98c3fa2efb576822f1fe0aaa06"),
			decodeHexString(c, "11f0f8a2c16b1bc15fc93ff4793894f22d7494d11c94dde5ead2f0fb09bae6cb"),
		},
		expected: decodeHexString(c, "9c636c3228432fb70d521eaed3ba8e436507e29163de0f5b7e0aa9a5177aa1a3930b95f72fb0561353db7213cde9ebdbd9485a5df93ff416966e09c1e61d8f805e6a082d6372d58301660a9a0181e2ef906a5a8a999c88002eb4b4132b34efd21618871ce28be5e66a65a1782de11e8e11c57a2debc85b0068ab553400b26a0a0f948ccb4e8bbc1173dcdab388c20ef6e2c9ac796d8816572ebc134396d38d71ba8e986eeb063a7baf5ccdcf583a723ba56bec38d4cd3e7bea563b4132f19b730189f559300091e9171a61469460ca82d39b5148e4d288037f6926e96f384eaaa0efdacf2ad93f0da4fdca0bc5ec0f0d7c0e8dadffae4e46ae96a6511735a80e"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_0(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "12738c0ddd0c9ce0393d2acabdfa592286072a362e332ca3f8c401f01d610026"),
		nonce:                 decodeHexString(c, "b983dcfd4af5e451f6efe155fcf3ec14"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "07c8b69898caec3a1104e2e30b811ea095384cc636b9bd24e0f9837d3b8e0b4c"),
		additionalInputReseed: decodeHexString(c, "fee06814eab6e55cb799e815d84f07278ec6c12d82dea12e261c5b72d0a4eaa5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f29287d46d517f090df11af46703d5de778028c787a3aa1e5904ed737b776912"),
			decodeHexString(c, "0ce576cae56c46042ff27f9f11ed88f1ba534cf5f2581e5ad6bb69b642897886"),
		},
		expected: decodeHexString(c, "6293103d028540484c262770ecf7c47c93e778daeda0a5d17a838a5933871af041ac603d81c4a8d73f4cacff06cee74424b57e8440e83939509ea1861adcaa29332bbce015c2b4d6c74154b52a6de9b4c5ec9edb4f54b7be42142b9be07bec5052b78bbc4bb742ee89f0399071f49a73df87b3fe762d1656346c9e8bf8e4b4b8b55e4e1ff23662b6586bf0f105e9d001f1593c175c9a234cbb17cfdafd90ba85f347cb79b0046fb5715bbf35f08345c8fbc26e4722425f04ba431c48ecffcacf15d09ea5abda92f541e46bb63e3933a2c053be4565275d34fa085baf555f92f446ba5e5d05fa0c63c53042092cb66c406d9b6b36b00e76d51b49b75c36e41e52"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_1(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "86928f1abbb77b7ffa829331770a4a6fbe5fa6fac56e5cb5314f2201b0a11c53"),
		nonce:                 decodeHexString(c, "8c5dc3ce04fe9f323f97fd1210e0e3a3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ce84bcf3ff537f32e7fc9b669ce61e8a3a9ebd64a819f264fe472caa7e7347ee"),
		additionalInputReseed: decodeHexString(c, "e8609da75aa3547750862c4d9b2e1354bbd03239f86b4a661a212b282946e90b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8259af2f80608624c8ca7b29e7e15160c4d9ff42f2a43a089eaecf524a6e8a39"),
			decodeHexString(c, "a45b6e9025cb6d762e83016240e54ed2677319e8b1f1a32a91ca93d1d03328af"),
		},
		expected: decodeHexString(c, "b33cb571912b3ac3ef41da5929e7272dc6b413dd319e8f0d7fa5d77242d9203d834c64d85357d07b6580c9c04dfe4beb57b63f9993b822d9e8cf119f1102aa2d221b5268a5c2d9f789e8a05216b9a554372763d7339262f8bc332b8f44ed9d7bbef98c092b80c71a41bb0ac67289214aa1861b6794ac35ae32cbf43bd895f2556bf9e2b911ace2717a4b2db2f9e86800ce31840e4c8bed287b6c37b3e20fa3bfb3217aecf2ac35a479e79baed018d2aa339b952c34c8dc058b5b235258d749e967b3728726348d51b6d26f3ea967897e43876792d00ae763773e8e0fda6c5bae65b325c8db993c8e6c497efb84660323a27ebb1faaf0970fbb192ac20f2e2a39"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_2(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "4e7f19f3ba09b263b35e38e22fc91112514f742d7f964a5dcdd7f8b7fb3e0a85"),
		nonce:                 decodeHexString(c, "3f4b58669f8b8a8fe5bd207497df86d2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0c512804e4a451a5e4d87e82c6cc421707b4298f201f85c4720f312a8b4285cb"),
		additionalInputReseed: decodeHexString(c, "6ad0adfaed80bc62e6dbf754484a92e176f90bbdf7480ff9cda825b9c6bfa0b4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8bfe2f7a03539f48e4dc0d653cca6de9805a7ba879a34be483b38dbe9c9419ca"),
			decodeHexString(c, "790ec615c1ba313f9108ec1bc5ada3119c2209eb5594ed7b8f90a552d3ca9285"),
		},
		expected: decodeHexString(c, "c6069013f4cf0a0f4db69b889f0772b695d23f88f3e00ba05e9096aec8a7a0c6b513e0a0e8edfe6fc3d4da00a731c342795b9d0fade11dabff6d3b08819fc1a9a4dc7ae747dae9826b4cc17d2ea7950e403e631e99bcc468863dec9f6254af4a6e7ce654510ce94d47c1e5333f04b49965fdb342d40b2cb17843d9bd0e8bda4fe042ab762c001cfe4a87ecebde9ee8578d8e94fc15fe3dab75507a7bc7b8d4fb1a8c4e0572366bd0eebe5d00c35226bbed66f98dee0e8f1f5e66d2ce4564a8f8e177f87fafc792b174fe8da11ff50dabc08d74e98797a56932bc78a283c05fcc5e58ad6a25e54137789919bf5a0afb88c18657262966e3053ba8a3f9f69a107d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_3(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "def3bf611ed4977ab5f71cff6e01f3fa232d1b6f19d2cb4b1c38be2ec4d61def"),
		nonce:                 decodeHexString(c, "bcdeea883ce553e7c559ccedb3d9f0e5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "05faf2faa6ab6af7e8027091f60283031d9dcbf5bf7e4813d02836b3f48a29db"),
		additionalInputReseed: decodeHexString(c, "8050a5a1f696fdccb50eed5e6b17b30577f1c668e9db6cdda1e729e87e535759"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3abadcbfcb52e80a34fb3a233d16215629ef3c340152b9a104995e864e92bb80"),
			decodeHexString(c, "cb9924dab421add1704423143587e7e947da6ff02465f52085d06264907fa903"),
		},
		expected: decodeHexString(c, "bc73ac698423825db65f4a140aa45038d3ede0551958c6e6fc08d657a62eb0eec325c3519854c680d5fd1ae391d9b873138401c282709550616029523c440c426a4fed6dec44ec9a7f12180120abc661735f4a1462574e2bc71af6e374873200419028157028830ab8ef430232eb05635d3b798b3d11cd8e51bb697e48f28e89ea3fd907cdba0d11965445fb42e68a1ba370cea93981551702eb9d19fbb0015c7fb1705eee05011450a3eb4d8f269030b3358b977a45252444d9da300d144db76b39e139a9c701c3ec2d138d07c5e096d28c1c394aad5265405aae248e02e9a8c9b7b6801b2710ababb2fdf155eb75c3fbeb102e045b3c75f0bada71526c22d4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_4(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "8982dd84addc012bdaa8a971cf300b1c06b13c69c2550578fec79a20ac490504"),
		nonce:                 decodeHexString(c, "cd43e274a1ff26360acee0983b6e93dd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "691c445238300e2962d3c648b03120e58232766d3e5857fccab2add7d1d09024"),
		additionalInputReseed: decodeHexString(c, "157c9291f54cde6f038ea9dcfad7e7e61a4ecaa154b2df20077f081e840f123f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2b5ebfac8ae3059275adabe90e9e7b571c1225bc7eb74ee67aa608b4cc957aec"),
			decodeHexString(c, "cb494cda5bc98e603cb18476ddc0dbfb808af8eefcc48a8aa7af7df7cb04b164"),
		},
		expected: decodeHexString(c, "56983cf26a10e49fe04603c970367f796bdb709ed8f9190222293dd22b21f9382290905557f65c3c21023777fa14f3208e6a8032aa7d43aedc606c2ae90da6014b467e4fc6c5cc1f77a4add01b71eae61c86e2f64b104f65ee34d6438849edd0b24a671e799f081432bc6aaaeb8416797292f19496204691ba8d2d82b70895e8a1083898a7805b664e48005bce2c048ad47897de0c6513c0737ce0cee075c05ccfbb339b7be9b72d54434cfc6e636a39f3f2f1aa84c82ca05d59915740ad2aeee1e06ecc410cc2943f460c62c2bfcf102a4840cc1e09320765c8ce1cb00c8c0a2ca428e8c7d819b79f5aeb969f32b91ddbb2c36ea8586ce0d2b92c81fade2c61"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_5(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "d3d5d06e3082e833a90535ae9a47f1559e4350d64b972701a075750be284aa78"),
		nonce:                 decodeHexString(c, "8a969f45aa64e931b649e0607fd22337"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2b154ffe1a62283e8e39cbe51c1ef1b138b1cb8d54b56b758e11e997487393cb"),
		additionalInputReseed: decodeHexString(c, "c732d776070c0c0cf0f1ce35c9c98e7b7662435049c8ffe3bb16cb8c46ea6d2b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1fdc6844a31acd4b7a2d4c54bd15c18c6960c7efe19e7cd5c5b1813bd4726bc5"),
			decodeHexString(c, "7ffd75675d46432dc4fc5c3c3607065bbccf4e64ecc31348c6359ac6e8a5776c"),
		},
		expected: decodeHexString(c, "3c2e559714f02bc753eee746ac11d5009b6f884b1a8d153c8b30ecc2f778893fb143cc567aa871443d5d6ef752bb3f22190dc0acb487140c3cccc4090a932818c00b3e917746f49de0cb66466b57010fee86341c8f31528e7abf18ce56939f28fc7e79c55d960b514ad4bf7e01eb7a1e6fa78e7ab5de52dca06b7480c03c445340271a71644e7af4885ffe9b6f28a8f34305c66045716e91d4cc49c2838090ec0c4a5529f66b28c0280f023276258c525887b65674d050530f1ab1cb9d8f6cbd616a2e91268a07b242dd1e32c6a4b7a6a92055b610ff3414d6217b23400c40d69d367ce78b3115c74c9d542e14d6e7e96cc13b5ac072684a865e20d78d85117c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_6(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "0115ecaff77a46a7584267cf1c2fa72ff4e4aee5724e97774f3f860c4ef10477"),
		nonce:                 decodeHexString(c, "1288e41249a9796e6baaa85e6200ebee"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "25cd8d089ccc270f28f72d8e475a0e6a6955acb6e7e3b09698ae178aa5ea5bc9"),
		additionalInputReseed: decodeHexString(c, "fbb0198dba38dbe16616846d5cd7dfcfa5d9fb9198db90fa3096cd1eb129c9f5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8808ad21a7dd714522168aeb1dab10f1948677219e147ea937408b5ecd2ca508"),
			decodeHexString(c, "232a642287eec6c5a04f6c821a2ab122c3ee71acd0da764423d11d2c46f2e397"),
		},
		expected: decodeHexString(c, "34dd82184e4cbea30088c8b55b4e314cedc7b7e872614a078387619929d25119abdd30821d51a259836c6d42a7fcb705cef7fb0949ad401bca348751fa75ff3db82051125fc0902a4b66e638490ac9b0f75e03938420a791ecb14528997a8cf9bb14fe9b15cf89742107219b23e99e573e8a3deceee698698919206de831c75e0997ea33afc1a73b7bcffa8ed4c033b78321f929cd0f059d5cac659f48c90968c32ae77db213b7ca995504a533e73af15367888be856a69afbd36724f265bd09381187d26807350f7ec5cac84c953b117ecdf857b6aab06552917fd21a5c1c78a1ee94f0bb89f3fcfc6f8aa8050e430586785e03298acf96aa8738637d748f54"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_7(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "62f7905e8dd900acbed20343866913ab732e973a1c0c11663379f78613059c26"),
		nonce:                 decodeHexString(c, "217df93eb4bf77decf895f8d5791a2e9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f162ea729d424af1ee410ad3ad3dc708bbf519d291cd0d9cb402c0f534224146"),
		additionalInputReseed: decodeHexString(c, "34b9c6515c78b325d292d8392a7b8482f7901cb0e1d2a884048a111bc372563b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0b1cba72d4193ea91424dcc3798b489080604d290e96d5698b2991a55651783c"),
			decodeHexString(c, "88e3582a34a236f81c8109fd88072666b46a82bfefcafb5e76d2680fe358e8f4"),
		},
		expected: decodeHexString(c, "73825be33005e4ef371bdd3be317644f3a0afcdf32ea8e10141f0719969e9f2735b88cd331ddda057b441016f809d23d9b6e01d859606bedc8294819ca0a90fd9b71b58a7fa6de12cbab6fe64cff42dd003d771d286282e7fe6e2756e7e0d16f44400f2a2f3f694f78c7a2044b7cc97c3fbc64ceaefa5f20a50685a14f45dc2e5a06f5fae5648da3e6d2defa401570854f712d0db0b8a8ef056716eee4e04ebe5635dcdc4debedd758aadbeea52de71ea2e3e465debbd77461d075b44304d8cfacbad80f2872179b6feebbea34f927befe3a8eeb2d9e676ec2ece7f852f0946aa3552de526b35614397b964031a20bd18ea522f10115c7a9730b13a48208af19"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_8(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "246ba9d0abef9f7594a7d0c725f5f90188251cec66daf1b5550aa00df029bd1d"),
		nonce:                 decodeHexString(c, "e53d733359f36a1add88fccba69720f3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2130e665f11888249fcaabf9703835bc6ada200c0e3fcfc7f168e6a0d7299616"),
		additionalInputReseed: decodeHexString(c, "25589f2492f6830e19f127bb7e888de4a84ad347a349abb85b73ab069fcca875"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6c7ff4c1c37f2b4662269ee782c22503f5f40dd025d5178f5393451b538b6612"),
			decodeHexString(c, "c9047ac32a27176006728f642bdd8c54aacea736954c2746ba766b48c06538a7"),
		},
		expected: decodeHexString(c, "aa421a743da777804eba7f8dae95982f04a9c7d285306d739e71a4ed0746e8ab576699084271a503dc07f21d70927c442a26113cf5cee4fa4cd4f3714b52a6d17c0efb71db1ebb492b7c7136297b79e5c2c25191bfa0779746ff39fb0b439ecf1da239e129050f301461dda86a444e8e2547d34abaa00259c006ac43db43b0dfdc9df824e802f91f128a54d2c4887782ba8a9d5c32e6b740ce3a5fd4147bc5c76fb88a6b321cd01c950fe18b15fab8f3db7c3cf02c6734aa887c21015e713256b01710cb2f557c4542edd8c96f24d33a876f3fe97d013c608b53839fba0b2e09439855268f144536664eaa8e8cd1a8e3a3cc6c1dd3e234661a0accf44959a989"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_9(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "677226742b4cd1b68c9d73dd883b9856a65a1f4767511d5fc9f84c50a048896a"),
		nonce:                 decodeHexString(c, "81922aa0ccf5e4659c254aa0b55f71ac"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "24e19f476ef3526d0ca2a1b5fed69bcea19bf508d58f56b58e620df5a4fc2caf"),
		additionalInputReseed: decodeHexString(c, "893075ea02a52b15446d0c8eecfe4c5636e37f894a1effc1478bb6d57022c9c8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "acb8200172fc8e2fe943c0cd7cd6f0ae415db4c159e5bca14b049f73fec9c90a"),
			decodeHexString(c, "78466cef24e374cf2c57457732814aa71b8389ae368205f162807f3ca9d8e30b"),
		},
		expected: decodeHexString(c, "8f4693f3ed9a7c92ea60c069ab6c6d78978bd555ad65e411be2f82be9737b61173e568b0d4091be5d9bbe647d6bc2194b772bf910ad8c655986a939f062e3ccd350e4028f79d1f21304902fc6e7df2a3a9c2525f39880d69f9b8d586f8453881e00c152e19275d4ebbd6ff5c6554a9fbe8ce9dcd1a8f2f46c96c060ff514106cab35f562a20af95bc331aab69881b15f88656c26bf6a038c3bcfc93e743bb20a7e03c7162c9928012ce05e2988af33994bcaeb0040b3bb551dc45030792aeb153328981f3af2834791da94162b60d19d0c9d47c5b07859265ab2323975ca0be13e1c0c40f185c16d7313a0aebdba000f9252037796b792c5b41512d8c19a6625"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_10(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "fd53cdbcfcf2df211e60ec1ee36d20025336c374554f97b1784eea57b4a7c491"),
		nonce:                 decodeHexString(c, "8a7675a97b647b210ab3915c5fec4055"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "eaee2b7bad5f4c9a3e2413df58bf99bca27bf949927dd50369249b688c9bdee4"),
		additionalInputReseed: decodeHexString(c, "903314983acc8bbb1331e9cd7b63ae250d1d5b143f465a0a0f647270630cf605"),
		additionalInput: [2][]byte{
			decodeHexString(c, "602965e9c960a6c83e406606e5a1c1f4d040542d115a952b760c0651e7505006"),
			decodeHexString(c, "2301ba3d7e851784b96dc6035768369a95140f681478084fee367149d512af49"),
		},
		expected: decodeHexString(c, "2834a1730015476d75adb217139335d7cd1806b98035f4622e724d33f36f39e12d94d4c21477a5354d78da398e548ee79dd8b44b9cf15a5b2a0f8a7c7a03e56786e24e2ff63db6bdf738b794af86cfc6ad002f523426f3c14b5059ee407d5e5fb79aff737128aa3f4d79787904c7e7d74299bc108398890d21aef5d9598559d80547748f2615d41cf7d0f1d7cd0d1afe009fe0800b52475d4fa36ea42924e7bde91c3217582b47c75ac8a065880286ae10bc60b4c90feed2f91ca69bc6cdbc3b36295044b3ef80e78e831e10096d5cdf5ed44d72ddec14a3bba6243765bdc1fa7b02588420aa53f0fd5cc607800860e30547033dcb0e029a603a3e8e609d0c32"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_11(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "a87dde170407e1d8fb1b81b54a16fd756d7f788060a023d2a2caab457c49ac83"),
		nonce:                 decodeHexString(c, "e406582027245c978a215b66797736c5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f8d849c69eb5f57d1bdb5e28c326e8f18243c84c4a70acb1558c6ba14cf2ac9a"),
		additionalInputReseed: decodeHexString(c, "52c760e9f1bc2f9767ba3938b157c229093ec246252b82ef12f76a6849f95bab"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6f26ffc8fe0a558a076c228bb0794fae8de4e97360224b7c5ad250b8494de686"),
			decodeHexString(c, "11aa928b074d500016395fccd37c2d0f8d1111d772ffd5ec9d981aae7545c545"),
		},
		expected: decodeHexString(c, "94e58b641dde62c03b75f77c9f49ad0fb0219c56f47cfc3086809e72d2dc3706cb5e76a5c15e8c10e7f7d469d61b7d9600e834b3a887ca7c8a7d3b355ebdf7390667b2fb3faabc6835e1f59e567cfe44b4fe791f420d4ddc941c58f4a636e9bf40e7d4787ca138ffecb49244eca04be1b1b5b70b55a5bceb2497277eb5c97c40007916a1a729859c74995e66061411c7cfbec36b87be6d124d1d3a5020ebd2f460321e61545d06ac6b5010837fc522ec693870cc647ce393ea9adc526b74b712ac0ff0ea73d9ec9e8108780fc321d49942f208ad6df65c196474ea89ce1c8c209d6e03a9587d55b492c263a82b20088cc1287ed5fde9f0ee7d3427d6923cce05"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_12(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "52f4d83d42cd3549e148c7aab83d7323f582c72efaa9918cd332bba60742ae44"),
		nonce:                 decodeHexString(c, "d55767c0bdeb21b687cee1fb5abc7af8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9787755617ee088143bffe012ac4f0114319823732dc6d8806ff5d71e591a334"),
		additionalInputReseed: decodeHexString(c, "42cc6b60063e765b072f8dc4386fc82d57834486ed462eab823a8754fc1ed2d8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5f02795db60f985b28849af7f2fc3d6862ddebb2fc68f21e3d72fcb19b15a38c"),
			decodeHexString(c, "98e9294c7979f00de4a0e69e400f39fe92d54c2440f9860c9331787544ab9d5c"),
		},
		expected: decodeHexString(c, "4a3c13aed52f3f21496a122ce2140d7191e3e32261e95639aacbccc436e2feac345eb23724776c337108253b18d4806466dee0062fd5fc5b418869ff66509ba8a7b10048fdbf7d6ea17760d7fbcc9cde2b584fe5c8e810bca7c4371c8f3cc24241bb59ce25b8eed068509e4650de599ae918ca18da8fd7cee6da3794ccd6a0d07451ac09456bfc799220c951d40fceccc97c24db67e38f877d5d7115dd6eb36323cacbd874a0a24ca2e590f4dbbec2f920daf7d514c03870dbd9f5bbb745fc8e64585be948a3fa5ecb75593322332438e79ce7648df84c655efcbb6810df3e45ac86a25eb894f0aa1914f440f6a768adff31d8239cb98db2c012b0ea9b10ace9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_13(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "e7fcfd714140c730f05f94056aee6edf2e669c50928d1227162ea9bcc74e41ba"),
		nonce:                 decodeHexString(c, "69619ff3ad358cfb3925cd35bd7bb8ea"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4fdf69c0d9bb330a1a0f20fdadc6de201a50c3dd6833ef120624c4b8ef390123"),
		additionalInputReseed: decodeHexString(c, "1da824d537f485d748dee69938ed5dd2659c903c939c715b93336d7b19b80dbf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "eca0885c2245b00732dd1ef09336d332c77c0099b6b1f1bce2fd345fdc9aff0c"),
			decodeHexString(c, "fcc1b56d3a2211be99ba47da10312f723454bf184036adfbcb9df241a80930a5"),
		},
		expected: decodeHexString(c, "d10ec5011afc41856952bc4cf7ca1d3cf2c9906632d74ffcf0c0df7c9eb77316369823f504be4500d6e63c6a1116f24fbe12a7d3bcb68f90b2d5ebae070ff4692df8686ce64eb286c7a634fdf9d379229f2b8823f6420c6057610cbba0c2db6751e0da083bb2084fce26a24f65dbe1157294648bd9037afcc0bfec9fad30f181436fd738d9a1b221e2f65ed2ccde47c59122b77f45376f7109ea55865e3be38c0f158074cad321050c4656f5292120518b64a977329116fa654a55990c768beacd71561a473f5d4e40330c9ae8d7e2b8a0a98304691d91c246e2533cb5a232d41facb87a17da91f9108585f0e67aac4f6581a786c404fb33a36562b7fd914475"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed69_SHA512_14(c *C) {
	s.testHMACGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "a9333ad44e1a3eb36a4592f1153cabf8fa95adfb4b896b9be419b49158b68009"),
		nonce:                 decodeHexString(c, "6ef8c46db8b1212d0031903440022449"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5a3f8c882beea506d015add163d2d8140e9e070f1fbb0ac0a0b87b00841dabb4"),
		additionalInputReseed: decodeHexString(c, "253592007e72c734ff412398a1dca7ff83df2ad3eabd6b20c492e038c47db7a8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6ae52bde1dccac4ce8a2f3a801f136c6d07564148e9883d08ce7b0833ba2a34d"),
			decodeHexString(c, "ea381f846e965694d5ded4666aae70877345acc610d2d1782cce8ae51b162601"),
		},
		expected: decodeHexString(c, "ab295d7451090c4ec15bfb4264707bb21aef12f5c475b35b68da09294c0f52369e5471fb568c0dca5d0c302b87b2aa0e4aa4e0d7854becf75d9aa6983a0d3a8bff5519e15abe8594ddc9d23b65e6b3085da122ea531e89e3234b50a701c353d095af7eb12abf0075b7bb72485807581cdfa07bf2b19c4e2535c4c01e02045200002337e74742705eaeda61eb3f3f35f9811888a167731d56ae92cfcf76e5378970a10d070016e06d33c67b646d6c902a23abf348d4640f9a8faa293d85d493c7e970717ad2c78a7feeecc6baa55da70d966f2462347298de19d2356863c73cd5bfc15db83c202cc740d13976d9109c22decc177fdab3bf6362c7e0e39034bbef"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_0(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "6e52ae2f29022d20b4869283540a1b077423659d059f05cb5155d854e631910e"),
		nonce:                 decodeHexString(c, "ef88e4b978fd27f375a3c70b3494c346"),
		personalization:       decodeHexString(c, "bb0031f950373fedb2a7ffa0485eab8e8607ca6c8d39d8d9dbb5389d7d36a2ae"),
		entropyInputReseed:    decodeHexString(c, "ec65e7eb4cac16dd630bab457225048bc1dce78b6d859bd71d2c8a14acbea931"),
		additionalInputReseed: decodeHexString(c, "c1474d4b4efa4489f6fa6d25ab308d7bf75deadcbc6dc08fcfd98a107f33439d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5438ed578ff50a6802c1a54131bfa0505266f110a476dcc02b32dcbad548b88d"),
			decodeHexString(c, "d3bb54b969a06ff0320108d9101dbda4c89503d04144b642fd35037c30642a6a"),
		},
		expected: decodeHexString(c, "66c990380ebd9df0096b1b00c36d731edbef8d2fc04509613139bf3efeaadddea4c1d4011710e1afd4b651b0fb301078895f38caa6606510941245c92427eab34b73607bd3aacfa73f9f9090823f8a1f297a5c53a5cdc3802a40feeeb60aa95f2882cf987ff9034fc268bc0fa4eee809b2fad7a2ee728b50f4691b22fe11cf1c7bbe6cb25e66fb6a3d9b511fa8fe8bec4d8fc4aea9f144fea1e250f39504e2acb45e5ee9e20824414f75d3a432c75ac2ed2183386f03d39d692f15b077fb18557332816dc976ab3a245e9dc1f1828ad1fceff23a611df5ecad05b9e6284b39ce6449c1cc01936a86b1cd0ff57b289bd245547a33ede77e386e8407f5680e3a14"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_1(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "6a2baf90d2e8b83355a0230a8fc7237c140f7699f40026e276deaefd4faa8e06"),
		nonce:                 decodeHexString(c, "b2eecce638bd9fa485e9c9e0d94c3a78"),
		personalization:       decodeHexString(c, "a9ea2c4b2aba1f48f2c71ae1a7fee90e073912c833f2de9c5f802ac2ddc57fbd"),
		entropyInputReseed:    decodeHexString(c, "820fc963827166de710208a7dc33936471e491fc21fb0119a252b49fefb28a01"),
		additionalInputReseed: decodeHexString(c, "9a463484d172108807c43c048bd13a72d15b470c3443390774a55572d03f47b1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d98671978ae14b3531394a0785f78242d4b32eb61cffec6088efb8625693276a"),
			decodeHexString(c, "b9aef32c40b7aa4fd732e4431bedce071e4f64405be1c85de03c7faa0aa7270f"),
		},
		expected: decodeHexString(c, "f55791fdc9d763c34c0fc4cc457a438496f18f483cc60c493fcd0549812fad792f92381532548a8c2257c6e424fa570af260bd47de92f248f57291fead3a68c94be9dc12a656630622be9b602d4fc5037c29bbb5fa92fed2235186048f652131f845f01ed718baf05957e863239e94a5613aa47dd25d5bc9f170e4047e86ef1eefa60e359f2204a3f453c9b37dcfd9410736ee14e296abcdc185f3ed31d8ad461a81479f957e69c34334a24e22f4a69606db8bca6cb189e7de4b83d8a10461fba1942c83aa2e5f84dced9440f10a54c74153643287313ae7fe1bf23c6abecc55c4a3f5540495b7d29a302d426ee2f13dd9ed7a5a6618724544da63527c702e4c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_2(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "309ecc8079bbc666380713a9fe4c67dee7a8bf4a261961e006a2d4eb18527ae8"),
		nonce:                 decodeHexString(c, "3aad3a6cb9f5299af91e659865218097"),
		personalization:       decodeHexString(c, "3967af61996609c5aedaebd9e76be2fe0b6e9f884aea806cd7c8cbc995619502"),
		entropyInputReseed:    decodeHexString(c, "ab591ca0884c0d77c9ee3af4dc02dd9666d66f72aa4b7b7899ac3362afc0a452"),
		additionalInputReseed: decodeHexString(c, "a8407a511108443b4b318923eac4c6462ff598b21a637057f5748a9137e3b1c4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "76835927e8734a097026ade517be3e746693d5043fb8c40c0a1758c68e2c3a4a"),
			decodeHexString(c, "236980b470711665557b01d81c85a83c9f89ca5da45e3b46f458373e85dcc779"),
		},
		expected: decodeHexString(c, "c42193abd4f3c88c5b3fe3f6f645624dc9f79f5f205e70f4d8a75eaf28027cb2826d7ac0f244b0f0346dca592e835e5dc7fe382f6ab5f5e4d623b09c4b868296ff28eaae60e9f0e719fe86bcd3a56a7144fca6c8450766a9b3aa15dc8c07eae2438d99b071c3b6fc9c92e293163bac4398aeabce30d82cec643984d877b292af9d9b6c5ce6d9526ac0031fc47337aa05d7bcbe04746e38ac3581c497d35cd05af8b8bd14d67bb555486a0a61028781531ad2ce46a8ed75f35e05cf2e51ada0d4bc6abc60c30c8f261ca73399b84b93ef1c8736abed43aeefb508e35c05f51897b2d937f7170ca5b6f2fdb72b916f16a212bc0c5587b5142cdc7077d7725578cd"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_3(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "92e3b497214d75f8bdfffe516100aa02df049edf8eb6269423c56f7cae1b0cb0"),
		nonce:                 decodeHexString(c, "837b68e25614a85cdefcbd46224e795a"),
		personalization:       decodeHexString(c, "807460644512a6a972f57b7922f0a2dd69887d30fd9ff2c40c42416851dfbd60"),
		entropyInputReseed:    decodeHexString(c, "876965239e0579c7304574876e9243bf8b27a763d7df2611a93ba6e18e7fc562"),
		additionalInputReseed: decodeHexString(c, "acf1c05bfc3e0f1167b971c8a62f02af2b3421a2ed997f92f4df4f1f3031606c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c1fb01b0d9c61e588b7f076ec98c04181c448d8f4113225c7289a2997d22d29b"),
			decodeHexString(c, "1f3b15a8054ecc5df1eb1912cb2af78b206d8f328aaf3c294026d6a6e2d905bb"),
		},
		expected: decodeHexString(c, "e2b5a2adb6490aa545b0844c89b46bb036fa970c3641bb3b347299ca1c8992313a764774b88e72f841e97cb0867d5837d59efd4b74b9f9cd9f6cec905bdd651d29f587ece652ce2fb599096eba10b3c720c61453f0bd693a7488a2eae23f36d271ef8063bf3817bc1aa011136d6193dd9b4adf6b3cc3308b68d394bca2029954847d6f3c9f450520272e3e62c5f83522b5f4f544d281aa3b77a90a0f2c4ffc56561b536ea31b6ec0e15a49204981343655e69a2f0d08468478aab5fa34e59b37374c70d98adeeef45a7d46ded34302bc740cb07e0a1ca353171d9f19d3d2d253c5f4f720b34e8215539a2aa447c5aa9afe4d80ceccc7976bcd92e5e8317f21ab"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_4(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "8a18372dbdcc13a08d1e02f2e4156ef591524fe1223dd0e810563fde6ed7e8f9"),
		nonce:                 decodeHexString(c, "418d4307ec1fdb14cfe0acdc5ce7c62d"),
		personalization:       decodeHexString(c, "05e93b67d5734991ffa75cc37783d819bb6eae18485a90be8f484621be0a467b"),
		entropyInputReseed:    decodeHexString(c, "42bcfc5bd770f0e42098fa5207b9567eca4ac897680afe155425511f23361c80"),
		additionalInputReseed: decodeHexString(c, "55e26a73ee46a8cd89b66130e191f8b823e9969a9025091c568393553386dcba"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f8f57cc10de3a4a8c99e0d3c334ea38976e1c1460a0678ac028a7937f1c12a5b"),
			decodeHexString(c, "594ac0b133987abf089ba1a636dbb41465257871d698546178d09ed62ede253a"),
		},
		expected: decodeHexString(c, "ed0f02aaf9daf1f589503df320236776a39ae6be6258ff98968c1fcf0992f63e3195c3b0a030eca2eb7df1d74e5fba15edb00b5a3431bb04c49283bf982f8a48c207e13f6b926c77d3cea0ce3e394504a1990dd7c04ad0e23fa134c0b1e410269ab5bc22770626bd48f81ee1f035abca3d35b4d219eed4bcd290292a4530687b2b0777dd4268574a36aa1cc4386ba9169466dfcd143dce6f0c9556006b8706c0c8e0179dee2d004e625fbdfdfeb9007a53ae403ce8ea89dfc888a4e7a6b8df482ba865f8f51c5094918b1bb06545641be6c8385d9ac59c4f48daff113dc8721788d84a3e07c6810fb5ae8b213630dc12c968256072907782708a845c90729330"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_5(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "033d998364ef3b051b1f59d61a1d20bbc1e02631790b6649a21311ca9b408ce8"),
		nonce:                 decodeHexString(c, "f2ce313bc3b4638c44fe4555c075da89"),
		personalization:       decodeHexString(c, "78946ca8c4b8498b25f06075d8c8a7105e1f2034e43b25f60994101a17bd75b0"),
		entropyInputReseed:    decodeHexString(c, "e20bbbdba7e570ec9b80a5c8dd1978ff76636c9f2a0db0499f4e2a73fe3da0e1"),
		additionalInputReseed: decodeHexString(c, "2967a905cadece8fb05e5ea66590af6066d95a0b0f835941257316c3f5a438d9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "63d53ac93d625bbd0f006d46a15e14d560aed76360e3349de4d64745c864a0b1"),
			decodeHexString(c, "0b74f6ea5a1d02aaaf890b89d9c0d4107569ea8f0c363be78aa554ab7234999e"),
		},
		expected: decodeHexString(c, "bb428bb9403aa1d40108ce3260c3cc1cddfe71cd7cf68e24a8e9fb712101bac8378fd25ffee5c50947083dc0113f46e3ee43aa761605c696caf2b1490455873b876a75859ff4e73a01e6152d2ab13fbe30be019bd532f4fbcc24f2f2948da736975bfb3fb5febcdf051d0f0856355e87abe498baf423f8c0ffbb458941d43b06fd8818ef688eb6af9ccb73325863e9ca2460831bb7860d008ebb9b541d046b682779ee28d5c98447d8ace4cc08f401f06a15fe56a98d3b6937a8e34f71ff2ff33aac20ac26be96fc19cd3badc384c7265d4aeb40af2daab396aac4c4fa788bd346fc5b68085258aa9ba2d992632f7168c6be9b7588e4f37302039d868fb033cb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_6(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "913a015125a1045e9aa3b276dba9730c7917717d712590e19064b4e207cb8bc2"),
		nonce:                 decodeHexString(c, "8dad92269409ceebf33fe4e0a596e841"),
		personalization:       decodeHexString(c, "aa9ec41484c3d45ca62b5e662dfca4123d2f4f9c51cf8223c790669174d0ede4"),
		entropyInputReseed:    decodeHexString(c, "7e08751f4289c56e753ca77562c972b323ee4ea22873e8e4505307f9f9a641a5"),
		additionalInputReseed: decodeHexString(c, "b3ea92753bbfa110909c531de8fd793fc2435d27a7cc9938232ac359cc142fea"),
		additionalInput: [2][]byte{
			decodeHexString(c, "030bd678e47a4ac82f420b997699adec32db76059bfdd9f8525d686727eae0e7"),
			decodeHexString(c, "475b966a29382a75e4ecd44e196d84b6fec19ce65dc3d96edc861aea047f4273"),
		},
		expected: decodeHexString(c, "b7cf7c1e1b9bafb4009775605b8f716d95066ebcdaa5a75c8701597802635816aa333a8f0df4d35b9ae16852fcb2fb6a40e7e7e46bb31d11a9b97e29d359784f81aabd56a6f288a28565a74f46a572d8bc912395aef94eee3ee85f4cc37461e4bf7b6cbbcaeb3d1a8f66e14ea3e96ce65a203847c771642fa774bb5f9eb075a60aab63c7b3048810bab21af6ceaf758de53c6f33baf723239a08de556653a4349e85e7f783e7684a3760218d48430a9c21adb4c67c1df276f378c56a6a4dc98741743a29d3f4d17c00942beb5734bc0180e5b3cef65cedd28bb80667efaa85cea04c74f78d8565f9b8ecbcdbb86255e0b8b72598af3daa5b91da09822a6254e9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_7(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "094d584bf2208b7e221ebabe05fe5fcb50e1fec9949fe1663fecc0d546a67275"),
		nonce:                 decodeHexString(c, "b7026949ca6228643d174946550ae7e9"),
		personalization:       decodeHexString(c, "3b492ab1622af65c400d2be88e817ce120b1334a75f18920144041303330fad6"),
		entropyInputReseed:    decodeHexString(c, "04fe6de0e0a95c8e7247a85a7f623964c5d5adc7c5d7893975a72c4f7a029b96"),
		additionalInputReseed: decodeHexString(c, "bbe5426479011c77de46d01e9edfef487b30fc7b8e5ab243c88e86aaf2a5b568"),
		additionalInput: [2][]byte{
			decodeHexString(c, "de02b192836c3ec1e7b422d37f17191d517f8f4a05d0f1265dbd15510d5c60eb"),
			decodeHexString(c, "79e6c7d0999611c469a9e8acc4eec6f1fef2c603788eab8398f2a84b924ce228"),
		},
		expected: decodeHexString(c, "0656811492f6f1fccfaa4eb19b6cea8ef362b3b82b30b06b3ebe0b9eda6d4dc760b5ce42c5736352262a84254794f75893bea8870a6d38c0bab0a7cb051199c5f297f52bc71327ea2a830e5168644028a463bfced7d0cb415b52eb16129100df467a9c28ba2a1ea46e2376aa37f22910956802670b28c3c74697bf5889e1254cb4f20966adf4ec7292ee1a109bbd6ed06bfb82eed2c9a10ef76e0e939c24d5067aaf4b7ae854c8035f4bb5e7f8938c963d55e42a8208deece3a7d3f9dc4cc89e14f4ce7591e29eb840d889168dfc9a636e7934409e02d9b2814567e9e4e1b163d7c22fdbc930f38cf24900a64571ab6ba0dfe8aa2f9ed9f6a45b51dc22f77145"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_8(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "46462489d266da07756538be1e184f1ceeffc509b61b4e8f0012b50d9d2c0662"),
		nonce:                 decodeHexString(c, "482608e6e7615fe33f51cc171793b3ea"),
		personalization:       decodeHexString(c, "9ae212cfe0b968b95552f9d714521871caf954e7a10fa5f7e016724f603bc7e2"),
		entropyInputReseed:    decodeHexString(c, "38b110ffe37a6c6abca0bbbec005c07759bb2ed56de5fb6d8a8831401eb2cb0b"),
		additionalInputReseed: decodeHexString(c, "6d09f5977f14499489e7d765edfd53418eec3ce7b4a8e76161f63f768cd6a67e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dab347612f5ba5eff41021436a05df9acc9c1641a60dea195eac376fc94dbf4c"),
			decodeHexString(c, "381462af8ee6adc4f972d8178a7c5adb1316f18f66c5cc16d6dc381e977aa9f8"),
		},
		expected: decodeHexString(c, "e52d3afecf770b16dc3b4a8a1aaabca3f8a3261b90f8cab41d866daf3a49ba3efc0c78e2753076d4c539f5334f3c94e346b88245978335818477d3d3452a56f842b80cf83e8a2a66d5288524050af25da7ebca2e1c857546cd922d4b30bad8e78315e3fc381d4afdf674cbc3c2434bdf90eb1cd197283c2fe643d88374e7d7fc908895a94994bd815587f9902794aaaf3399dd8367e9869083a3782b321921f1a135bcead43585389d868dad1808822d37690437ac67bc789bb82d1fbdf55c535920e40c75b769f140a4fc96351e0db897c0e65df5604c07780dd865de9f419fd05af94122b32c43441ffe0d103cf406ea49f35f6465358e3267e98977dc4d36"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_9(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "c8609383121e1d60c18c14024a9c04de60add6feb8ca369a1ef7678c9bf01bd0"),
		nonce:                 decodeHexString(c, "d7ee31f9a8b3e4ae9a69dc71af8a38ba"),
		personalization:       decodeHexString(c, "9baa744ab49d49b750b6d1819fbb39a880721c345fa305a3f381d6c5c73a30c9"),
		entropyInputReseed:    decodeHexString(c, "5f5265883a249e44c1b0070edeaf2c82e93be6ae672aed5416d1e28dd95731b0"),
		additionalInputReseed: decodeHexString(c, "95b993d99ac4430864553d2d95dc15f016e09620442ae02c8b153197ee7fe4f2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "380f955ed6b62f774af2febaca83ec470d7faf3163069aa8d052db2ff2b4e4f4"),
			decodeHexString(c, "2e46e75e522d994c575be04b345f457feb4efdb3e8d6685f4293d45c8e687f23"),
		},
		expected: decodeHexString(c, "67e1a7a10e2e9125e8573d9146fe809913ac923a3a249b2c1155939c11a1308efcaa6412dff248b4cf9cf0ff85ca01e6c1c7035d1813238e3e080a5a563ec24a8a5eba573d4bf7714993548d73c18b310a67518ab5e8b24d9f65e1bfbe8ebfb3a1df939d8a22576308d3de1e3b518e7bf0de271028fde8074b1e1c3276ac354b3532009ed3fab6d3cdabc005392831690a1f5587cede7a165e276b6f7af1ab4282861b135e6f61a949b1131d715a0f78d49086e48adfec7cca1450e97071e7a585b40de4708214c7b060464dd5fa360d99f78d963e9d04b70fb84bf51792e8b494393fe65602b0d493fec4670878fb42dac695c9bc7967da9cb5df15c2c6a9dc"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_10(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "a931863e7d49ebb621702ae1d3e290d1097ee71016e5a9990d81a48862b62255"),
		nonce:                 decodeHexString(c, "740cf70ed5bf1bed92142c91fcfe4634"),
		personalization:       decodeHexString(c, "e0d5dc66de1fdde5de1f3fe2896b0ccb290bd9b8a69f1b2d650370f0881ef5a1"),
		entropyInputReseed:    decodeHexString(c, "da378085cfe94091136221351579fcb473fa13c1df593e7efbff6a52456e7d6c"),
		additionalInputReseed: decodeHexString(c, "8efb40ee04e33a1da7766bfe067851764d97bfaaaf4a91efbc1f06a2f7e846f9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "81037aa6c5b8424149042aacc124140fdf52b8abc0dcac42377d41b70f740437"),
			decodeHexString(c, "8ba6345a53cb3f221cd7d1f57da742612d5884744ad274ea50242eaabdef66fe"),
		},
		expected: decodeHexString(c, "a223e4ecb8c0ade0c095763597973c28d77eab15c457e7d28486a4976619520f9a6d90cd8ccba0ece01d38f776b7016f6100a50bf5f2b13120d9d1cbb260dbbcace4852adde61b1b12d8b06c56bdb2da3e52af726b86be9a28208a7a36ca09a5f27c34b38d6e0f6f4862e2179262929cae13f6dae55b3681c0c5d49a405cd411df667166b8f033cd659b534eb2650c637f0fbee8287d4a1304683308c319a1bd9b030ff70448bdcf7d271f5d991e0f006951ca28e2514ba748180a5ccb7a80b9811cc7d398b1ae6403841ef37272c9f2b1efd728c8e560df37133f002f6ca766513bc8b4af99e8e330c52b9643a8766396749f59db6c385fbacc55bbec7f12c7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_11(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "68ab5575e4e1cf76a18c26b538390d1abdbe85834b507b44a360eb0df1cfdd61"),
		nonce:                 decodeHexString(c, "478cbf0797f7ead73cf21a72d225ca18"),
		personalization:       decodeHexString(c, "942009f6bde92c1dbd19b9a57edc7bf6361d77e3c7e1ca65169596cf5c36289d"),
		entropyInputReseed:    decodeHexString(c, "37b366f53b98ac3893778cc99404f487c740fa6095c0f3502a924c1ffcecbddb"),
		additionalInputReseed: decodeHexString(c, "cd2ff7caf32d4ce6c992dac16a4b9e30e863e7930ca07fc9bdaf06dbd78badf5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "143d1753beab721f4298955195372c436e0e2725a6004f7a301f1a3927a1f7da"),
			decodeHexString(c, "e885dcea7b5a8eff30a92a4aa598f9b6acee40a24d302e58fcb84fc7a35c0212"),
		},
		expected: decodeHexString(c, "ab842cbc92f2d41be611e985f2ef48eac7610c171bad2cc8d2e81cf292ad774158cffda3ef505b1cba9c3c363a9c3791e68623e6a611b0825868d9b050ad9182e754a5aef16d24c8f5396392a77a89cd99b9dcddd3d0b7697476408b92e3a4ee0b83b898a5c3641a30aa11214f0425d21910f83cbe50d681ba309b147387a445065598e979a79bfb6f768b3dac5af2dc105fd335eb4967afb310e1274956300be2474c00ee3ca1d0449d14c97d5a3b230f9257929ecf1bc0a832500d3a07df1228838f177b5146f4d8b19fa15782bfab84746a6e99bdb911657b64bddd2fb599dca4371a2469877c4c5c75cdad4dee55188e0e947e2fe212a8a5ac6dd94f377c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_12(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "66245e73e86223a4577f91f8858ef0a48b5be26bc8a8d3046a9e3c4f5d754ec6"),
		nonce:                 decodeHexString(c, "d9095f94af01fbe8980fee0a2a36b952"),
		personalization:       decodeHexString(c, "f42e1212d9d9b20599d3096ea0b5d0a1eec50ba86434716782d7b29e8898a0e8"),
		entropyInputReseed:    decodeHexString(c, "001839c5e45e20de6a87df4ad48c0bdc662c5295f5d72984998a99ed60e90bc3"),
		additionalInputReseed: decodeHexString(c, "626ccc867b483f944190c6f4feae4c6dac54bc9fbea7089014045ef1a2095dba"),
		additionalInput: [2][]byte{
			decodeHexString(c, "38255ec557703900dd5e100846660d5548a1bda675c83799f21a437f4d35b54c"),
			decodeHexString(c, "228d9357c33098576144cadb58aae3c3647a8617e80a1783c52f4bfaff7d0df8"),
		},
		expected: decodeHexString(c, "39043827021fcad3a7b46accb94afc1f71585ed8b804d644f67ff3000cd40aa895f61f4c5fdacac0652c3584a2b251b03b337b1e47933c1eb8e8401086b35a84e09e7a7a8d1e8ee60040a912260ba366854dbb1fe7faf39a7905d6879e56ace5b309e913f1e831bffeef88a2ebdbd4b171ce485d887df99b03ac633fd8de1c18ef5c74d8935ee49684fe5ab529c3e5ab0848f8bfb388fb88e11dc470fb8373fe353468f51be195d5458ee6a507bbd9d581a4560e23466cf7ebc9b5301fa6068198d10b4f73f195b1b310fe2a9ab188acebc4a051768908792b54104d10c2c0a27b5bc62136eff2fdc74bb4d160fcfbdfb43be6f49f2663dd77c53d9cf83ae786"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_13(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "05449e03a3b883c01e894529a1af570a4ea9605efd73d6357f5b7989f9dabece"),
		nonce:                 decodeHexString(c, "e869d8069f1abd3a6feeb0526fb04d29"),
		personalization:       decodeHexString(c, "890c28f61b0be8f5407f65dd68553887247a6eb96ef7349c9ac627e8c630b8c3"),
		entropyInputReseed:    decodeHexString(c, "eb248cd5e25e7ae6efd05e0b9cc0f330979d990bb2c949b4ea704ce67cf1fbff"),
		additionalInputReseed: decodeHexString(c, "ae52094273c7b14359ae351804b0b02798ceb2e950e06f0af5b7f4fee51fed66"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6623c334f22207b7c1fcbb549ba10127fdbf3527385ca9aab0e0b16f25c49e05"),
			decodeHexString(c, "a27257de57a56dd949835e88d36d0c6f6707852a7f937c95992df96bfd23bcb3"),
		},
		expected: decodeHexString(c, "6faa86607d8876c943a5098a1501cc2b8faec08af98b77810c4f8932d60c64ffcd3aa6250964e690afabc9e96ecf787dc36c649e13e7cdecebe71c1977f80d3935136d7c6851c8ba16afdf012ab074078c9117334436bbfc9a62d1e34e20750c180863b2ba3c3ffebfd9c9b365a5eaffeee0f161c32827b172694a18b8d2b5eddadabd209dafb3caff046a9255f8176ef5bfc40ec3a91e0afae5249a1dc5eb9a0f19ce0ef8415523f53e5806d1005b5aba325cbfb82073c416324219097b4a28bfbfca1665903e837f8942b90a14e0dd6d8e58abaa9753fcf5e472bdb17db6318636e5d938a511c36193002465732c550c8ce1889e31d01858ec7967c48f8a83"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed71_SHA512_14(c *C) {
	s.testHMACGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "a53d5f23c0abe62f4744163234ad0e46d9d82b358026f166f10286eba0bfdb67"),
		nonce:                 decodeHexString(c, "2329ed6cd3363585314c9a24d7eea3ca"),
		personalization:       decodeHexString(c, "899dc5aec01c43b228396d6117ddf11d468b53d112a8a2e68ed842f9247dc3f0"),
		entropyInputReseed:    decodeHexString(c, "d282eb2bb5053f012c1aa4cfed804b9f7ee35977e8b41dce01e641447fb2ef24"),
		additionalInputReseed: decodeHexString(c, "9ca37c289edd93a11c7d5bcc119e75ff78dcce07594713659ccda828943c95d3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "27b3e69abc235f76769ceb61260e3ed866059fbf752dde62046f75c06ccd17aa"),
			decodeHexString(c, "e7ae94756be5d1b415414cf61105d5c5d374c4c406c7edebad7d7d581251cb5c"),
		},
		expected: decodeHexString(c, "b05c0aa77248cb073a969fb82f8d897f34b282c38bfd481ba20aa3e0a77aaf9deff79935ac494f583c38fab12d23730f52d92ebd05d17b6c61a2930c6a3113011a6ba162f0d82f55584e55eac0e65c0989563d5347da96e64e27217c6923071f8487443fae8f1cc75fcae5e9f2cd831727cd7d88e5188a7830a40ec45a2b65e55ef7b79f2f2f411037584457f1bf0d150a7dc149f55b89d45875191f96b4af08f646d60fea5ef48c621af565899c95fec8c789dddae780a8556d3c90cd185a5f6cde632d4dbd4ade29a2f394b813b8911e1182e28b86bb5417cb9ef8321be81775d02111c1a8f563977ca00238d910056e6038d061ffc1088785a333742a3908"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_0(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "545ed684ed657a4644fb4fb942f9945ea482fdf64778efc735d9c57dee7bf3a2"),
		nonce:                 decodeHexString(c, "8444a8c74bfc518f43a2a712111dc3c4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "73d7e0ec983c1a2a82b65338d759410897fd7cd81eddebab0f130109b1e4fe1f"),
		additionalInputReseed: decodeHexString(c, "b71a7bb4a46e7cd3e127155589b3c1fa2a3afe077bdf9cdcd849c09b69b10c7c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "32f13538e97f645c690ece2feb5f5a3653dae2902649e24e041941017e22b461"),
			decodeHexString(c, "5bd7616704ca8abfacf021eaa27597330edb26bfc52a81a753453499b24d4d2d"),
		},
		expected: decodeHexString(c, "7d043c9c64ef66a48ffe96c81071441b4922568dda27f8818f7d6db8bd272cf9c1b078d34da8863bf0787674d5e5cc19bad15f9651294161ae1085c5f1ef62844c0e20b027ffffb59e0ff6666b22cd65127fb162a937eab7508ca7aa21305c93177fd3144484bb2f7245145c81cf15d98deac81a4d204b4d8e82a62f9b8434030e19054f97a602d9a6b08ffd5f4ce2a5f78b20623ebde244bdc363d467edace8f0a84f2f8cd539ba3fe37c1173c62d339c1db0fceef3ac7bfd4140505e246ffe717f033c94cdb9189b877537ae00d9edb4f499ac3061924e8d47a90a40fbb120c012c42957db312a051cef1bdd73ebed6eac94a92aa2cd55cb2ce859c3ac3e39"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_1(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "06d2b34fdd5bc017b19dc43c866adaa572a597f2285ce1dc5b449b7d028e3006"),
		nonce:                 decodeHexString(c, "f0028db08d666b9a4dde388f0ae188ba"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "dcbc14529825ed60cebce7b0139112e34e560c5d8d6bf8b5e981f4c474f72b5c"),
		additionalInputReseed: decodeHexString(c, "2b76ffd1702eef88b399d60eb9ce38022c03527c083e7ca2545224cd006c676a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "58ba57cd3ac6a14b653d52d35bdda7834c42e5fce9c3a38722e80729cdf676eb"),
			decodeHexString(c, "c5dbd1969203f9b250939dc7fdc8b14563eb676c9bb3566e9c32daf0235642a8"),
		},
		expected: decodeHexString(c, "72f6e6fdcd74672677cdeeee9e68d0484ef821f78fefbdb94919eb467c915b31a6f95cf79eaaf1338d3058ac409470b09b6af8410c69619381d4c83a1dcd1fb5efb25ab533a18671874fc8a6566f532984cca74a1024ebe87e3af2c334380ce1b806bec4fec5d6c79b2c7cb63b4647478416b0613be5e1732754b51fb2cc659ead4729b412b0fca7552085013878a310ce1fb59ac053b55c4b49011a4136faf00e8f04c0f31ff8f0ee5a39b35b902b74376fd7936eaf06f7cd7bad35bdcd80a69ff33fa29a6ef1dc4024caefd54364d4d911bea0958cca544f09c2c5e1c1c19cf37a7261c7f9671549d5eb7aae3bd5354f71bdc30ebca225c10c39c9fe70f190"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_2(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "8a8f9bc3004efb95fbd690e4c65b6499ffdc9f81aeb935f5f30c16b496ce9e1e"),
		nonce:                 decodeHexString(c, "3f9cd9e718b90cfd767739b9ff073fa0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9ba31e99c9831139785ac69b7f9be272434d4c4d263581405664e564a1edf0b7"),
		additionalInputReseed: decodeHexString(c, "dce96bb33ad8ee5b3c3fd3ec8a551f76c2e761eed238e0424279da7e56af9fae"),
		additionalInput: [2][]byte{
			decodeHexString(c, "38078f180100c6027a70487b8e770dca7815bab4c6feda08ccb9265491f9db11"),
			decodeHexString(c, "f92f84833175b5bf951a782bb208d9620ac8e67d668a635e2260ad0f911e526a"),
		},
		expected: decodeHexString(c, "ce0b82a9b40e6bca1b14e4ae30cd87c26c8b5c1a79d5c09454aa5084a0882453aed406b2a3087d9198ad9e84752b1941ef27ed6696fccb55526bd9c69ea70f9f4037d43217896ef5568858cd52c25bd73a024105114690c87f34be7bc662fd4a46c1f6f95fce034df40dcbba1123733d505f183ecb3ce662fd10f0c8987f34cdf34ee4ea5612076f73591c842a7fcc4329a415378d85563b406fedeb8f5e7ab8c252f9c7c2efb353a4c2e6fbde845b42f5d82a1c18e98e0cb1e5624c5631cce7628cc936b0de39e71388887f24b60a5af3111895e90b59c3e1f4a73fdaf7f21e03eec7ff80a3945b22606bc18e8c5161b5da1da0a3694d48468aeac1835851e3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_3(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "3005b57ee67bce76d289a77638f2e82050a0dd22dfb7669cf5ede46d7941b054"),
		nonce:                 decodeHexString(c, "8474ff3d0409803e2338980a4424999c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f528a9342573bae931490d802728d300ce099055658be0fbced32d624cde00bb"),
		additionalInputReseed: decodeHexString(c, "8ef957ad24f0bd05ada183eddd270683df55101be1a1de955216d654dc499f92"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e71f45f31458681b1fb03b25f35527b11f949a7e8c863863292b882c4c3ef960"),
			decodeHexString(c, "0ec04ce83d9fbf37b4d06951dfef1f0ea05206a52c6fcc225045db2e00cf616d"),
		},
		expected: decodeHexString(c, "e618e701b30ab5318c62035927fb12a44088da6ac32ae3d001c1008ded61afad329e136d71faf15756e271b709e84b226a2c5af50f8a3589a9de6cfc7260b84f494d78f5ae3df8b2c7e3c069762e9a4047d36a79996ae0e65808fa55b6175e69cd22945f5c9a685d64d04b6059f7ea61fdfc5cb86ca53c8c13f0d3addb1dd1218bb4898749d9bcfe7b8e22f531683fef6523b7928b153e5249a1da320ba9fb4ad6c6ddcf33604a4f6f6d19fe591149422e85d4105271b6a0bdcc37947302ca15efe41425fdd76587233f33a1b8beab7dac86ce8455edd03723f393d5a5e0f2b7ef75e52020d0c03a9b231e05430879da1708944a944cade3915797abfbd7d093"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_4(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "362a117817ab74dd69c08c273a4a68cf45e57039d7fc5f92c47f3367aac020f1"),
		nonce:                 decodeHexString(c, "a802539f054e0b85f171508efe8a2268"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7d94cf1a865d79a7b0b48569c82443ca5303e028cb3d6d7b750df23b226684f4"),
		additionalInputReseed: decodeHexString(c, "37ce17f441b4e25e3911611b08f24d77c7d55920076f15f42b13303f83121abd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aa08b2ea60e844d720a0fcaccd43b8d5ad7b0fc06dc01c780d3ae03befccb935"),
			decodeHexString(c, "1b77522ab004fe9380e12c4680fcc121373e08a5026507a1a4a58a5922bed112"),
		},
		expected: decodeHexString(c, "113052951f8f604718359104d2624cd0cc64dffe7f688eeec200473a52ecf8403a72c9c29bc42e423e90fe4f103f5c6c3513cde03356def85b1f8d5d1645dd8791858de4362c162401029ebc85c5b0fa4892cb73d1f2ab1ce9b011b2d104a8561dbcca42fe26fb5c96fc0c0e2d649ae157ad81a57437ebe4bde6ce4a22366a797b648786c2c3c445404db542aa76a8a2dcfc2d96ac63c6e9c51afd4acaa08af974d7919e506fd14d32cbe9bfe2a0894f411bd5a87f8b257dc315d5df92f471423dcac6785310fb6f7da1966a699681e030e3566b222858c82ddcd50d848dbbd99609402d128efe62cf93a21fb48a502a331c1b9b13e6b1163aa586c76596e500"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_5(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "6d81640a883b74fe7767e93eaf2e4b42e0857c732a9a4959f03acfd86866a68f"),
		nonce:                 decodeHexString(c, "47f8d49332e3d9c5e4d7aa7ae9f51704"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "71856d0a5c434ce2138af494637b7978d5e58e3dd0c5c989ba319b9753a7e3da"),
		additionalInputReseed: decodeHexString(c, "8b65ebd0e2c66004587d28441c7acee7dce8f70d24e7173d61a93eca932e9eb8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "87d8ccedc2af4f297b26513d49371af3567f63fe0c8e28b2df4afb306a91bc7c"),
			decodeHexString(c, "b96872a0e81341d8c1b61c4aceafb6591d081d368b388f71e819b90072db3bd4"),
		},
		expected: decodeHexString(c, "3a8b68a4fde7ceb18099b0591558b9faec53390707ea5271e1639fec04f6817166388c6cabd889745d2158b267efde6b30846dac0b69a2560f35b46a28636233299f3737f7550fef98e1cfd0131c19011e357b057909afb11fd21d8759950cd59d853d262db11e5e055574d151a34e5a22ec21a8837e8f41e0864484d11cf9253144f48a9e947b668e400d45b2b49c3859da5fb78dc7db4d2935895542c19fc77121918dabcd11d81f3beab04dfefcc2d05c7ebf68b626dd8628e626d4d878db4a355c65287f2c93ba301a0fbe6d49d7abb937cf7b65855252c47c330f108e3a9f7de03bb25f7e726937a77cb0f2caaad75378072ae8ee40255a2cb3322e287f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_6(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "2ae4318f5275c8dc22b6e1d6d5ceb76eb2dfc9d106430912b1c8e26ece1a79c6"),
		nonce:                 decodeHexString(c, "15757c703d33795a7cf41aeb8eac5220"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c19a60b5b846837e2c924b8b22468c4720eec960aa9fb599e540b1b5e6fc1ccc"),
		additionalInputReseed: decodeHexString(c, "8b76231e12102f88bc919c9b1a7edb8832104ccf62c0a1187f1f45df6f2c28b3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "60998fff507002dff1a8795c5fb0fe4976700ab4772e81b12525df09a3d63b2c"),
			decodeHexString(c, "c3423b951c662f4b0d02d0a657735ea2ef5d2dd570f916aac48879e9d1e887e6"),
		},
		expected: decodeHexString(c, "04b578487404b17b4e87b47cb74e655ab139e37a4c4572ec7907d38a369ffa81a29717604e792d2b69b3916d5b2ac3d04160886d04d794148dc3ecb9f24024bac3d6a4ae587883879d8f65d6ef0595de4118685ad924138b36c17d2e61a40159a0559f7124205cdd226b6772aa87d9e7ccc9e2156815768c820e00570e931ce7bba22e11ad36b85d85636073f42e8f443fc7e77cc5f92ca77cfc7548c58fd186e7d2afb20bd5625f44b4cbd8262b4bd2530443b6dc40012b4ed535b660ed4d6d29bc630310430c528763a4157fa67b63e11c5ad7a6fadee6442e64dbcad8d3183fa74e8bdf66041f49316ffea392c30209084501124d9522bc0a08da16a41616"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_7(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "0dd057ef77bee50de12aae3c72eb7051418d71ece6ceff3dc4e64db6fd6e2c61"),
		nonce:                 decodeHexString(c, "14691c684d8cd44a39e862d368e945cf"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "12b8d3920d6893afd0db67caea3673fc2ccf8d6f51fe4b85e821b932a09a3912"),
		additionalInputReseed: decodeHexString(c, "0846f575ad47ece17ba6529c86fbb2e2fd5c9ff92dea8e7b4c6547221d6e96f5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "39c5d1908a6779560ef7cbbf346e782918c55ae2d27d6fd127b786fe6c4f928e"),
			decodeHexString(c, "46f69bd9072680e5da87978a8b7e7030e375884c49c7e21f4b55753b21560162"),
		},
		expected: decodeHexString(c, "f9d3514135500f728190787fab08f36e969b7377fc47ae6fdb24cee88c80c827acc27078a9e83fd8a20c4f836bb892ca5043c2789af9a73aa6817e64c87c0ea81b2f48664f98a9ecb773be85ba658597fc0b8fa79baa619e67d9139992fa7c622f5e91532eeb12585fd07ace5515e518e2f8088adcff34aaac998854beca1804f69ed615c43fa27d1c70616ac0b19934552f4e0de884864b06a0306d7af69594aae40c3a12fbd0c86fee23ff19e45173f45722ea1a2ec4afdd1333d0b896738a30ecb6f2db40fe44d1003d968e2d3c7238edac323e34bf43966bd211c86058b1aabf1d29bed42592aa88d98ab1ddb435821d583344ea70a463d02fc9105515c4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_8(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "c16ef3f5d2a74f77a02d82d5e3e1da808b37ab4376cc6f68e068d696c3f944bf"),
		nonce:                 decodeHexString(c, "31a290b90575c40b807b5b1562ecd818"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2003ce7ed4cc11f6767c067989ac867970fd58bbbb1a6ef4555e1f599cfaf69e"),
		additionalInputReseed: decodeHexString(c, "4e4699cb379827a4ffc52c8edc3ec60d212ced58cdf91b986f68c7350eeb2ce3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b63392656b591466ec598021e98435768f63062324f16bb8c5c1a646e3a7ac8d"),
			decodeHexString(c, "f204d9bcd2c7b5bf1d60333b29624e8b4b9238f7f5f276423b1466b716426f41"),
		},
		expected: decodeHexString(c, "945d936631106577878fa3fe4f04e8c783c038f2e7df1f67d14b702cfd4930d629c24321da7fcd78b718b236ab7b1c8942e74954d97631b028dc2f805575a2a1faca54163969cfe0be598146e00743b379e85f795cc8202e3ef28809f6937e5767d033e028a81e730e19aabd473aef5207c59977a41571ed97d6d1dc62c2815fac4627be61bd7b7c4326295cb64ece5d5a428f0d22b64127624a97cd5a28baab0ee4a750340b03ccb3faa986aaf740d4b759c2c6a8f36b31bb91b397d9701afb68d649ead0c4046c5252e7af301c25fb48207a19184add5c33aa9bc6a0b022be260584bd41fdac458c6c8acbd6863d9020c712816006dd206a730a28b2698fb1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_9(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "c6af3df15ba98da5ba109fde7ad1f69918332d3a8e28a6cc59cdc481cec541c1"),
		nonce:                 decodeHexString(c, "13acd2b7826e780bd84b9040c5d0f8d6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "428d21ad4ee009497969138f727c7c1fcaeed0bcc313e0118f09ce7f1cbccf76"),
		additionalInputReseed: decodeHexString(c, "6c2b4fa479d1c6b1224db6cd2db946595dc3b563839f88f5d97f5bbcaa428fab"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4a569e611779068116b7b5792fee13300e6f2666d9c37c48e4d46e5bb36ad63c"),
			decodeHexString(c, "68467d9583249d75b0737a078a71f8055b0702b1f82cee4f6a4d00e00124cf80"),
		},
		expected: decodeHexString(c, "aecfa7ead4871afb9a5fbd80f08ab5379131213a0ffc13a762351af83123b28357418023404e83e5d88f50ef6075d7f3d6484ab36f1f02c954086edf9cf6fa881ecaa38e806671d826fbffb01f57d1b2900eac52f3391c85b72d8017d5c3a8899da0859314897ee9bfa3e1a4024ab02e4bee12143cedca1c2c91e22faeee42fdce7f13f7032a756dbb19ad165969164faf69210aa03d2bfcef5d510c791a031193ddb1b9f3a1ab1283c0d554d630ff63b861c1fa7186ce71fe4cc17ec15d7f1cc774955664b7759a639ca9054b5ab6caa45f4bf616383c445fcf30439331e16699e4bd01088db17fb5b3c55652d83b7e48d8d01c9d09a4ae5f5065e31b6249ec"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_10(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "000999618e96c9c20de460b949c10553bba99ed2a629116be72dc4f6b48a61d2"),
		nonce:                 decodeHexString(c, "5f1611d8a9373b63ac037fe4718702d2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1b3e4b6a268ce1e20f56d5bf1bda9a4b80f7c9dd9af97f9e55f253c3acb8e162"),
		additionalInputReseed: decodeHexString(c, "8b37867e6da9ee5647ce0fb7684ab4e15b2debabbb82827ed2b8e5e67e3cef3e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "efc853da3f3a99b0bc47972eec6e82dc0ead363785f436d2cb0fe79055a8abe2"),
			decodeHexString(c, "6f57c38c68fe6b700063bb4bcff1a6222d4f24a408324ae5043f74e113ac4319"),
		},
		expected: decodeHexString(c, "40e923507625ec8d10ec391e920e97e175bba84d7ca28a3cbbcf06a7fc56c207f6225862b7b2c5b7b708f30fa1aacc75ef0a4407217313862d4b4d2e3ba6a444d82e7d029a7320b1e2ba0e388a67ec5ed31fa82f81a638ff87325b6824243081e30d5d09eba66d77b61f8694cef65ae96b2df87ab898327599d184b9f3c90d6b541ddd47d51f78cd748205f089a45cb8db7b6709469a4255a183d40396efdf48f3417e10848fe539c100e16994925052d3cfdd33ce9cd252971698846169c0b71c97c64c5a06fa83ae4b11e916989294b453ff5aa408a15f88c58f1fbae9290139869f60ec42f51409df8763baef0ffd9f9f05f3d67e941128b11c6d57b088d0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_11(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "5fa3a7133e8d078d7941fa0ed22470a8437202b719839c0b399a21c53f4ab174"),
		nonce:                 decodeHexString(c, "bec2f97a67fb209f0e8622bb1aa901e0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1394b8d21c33aad08857ef1eab4da95b3a93a85a898912ca73a19c0aa65a7ae1"),
		additionalInputReseed: decodeHexString(c, "1a0ca14bee19329308ecdbf3829afd8106f0f06730cce2cab23353c664d3b7bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "21ee9ef17fd3643dd2b8ac612afb0cd0764690542186accdabdf4360980ce3ea"),
			decodeHexString(c, "92a6bcc6dcf29c77009c11ba807d7cff1f62e70ca5b6b1293513461790cc6fc8"),
		},
		expected: decodeHexString(c, "b9f9841cc5ed73659ea7d536ad9d6a3061e8083e14455d3244d0ed2cef1a40b7a47ebecdca0da4c01b809fdeb493e7c49310fe089b45fb677156281020acec762bea6ab04af1609a15a7f45acf917b075a600b8f6bec67b99e659b36bdd3ddae44672ab87d713aaa1f83f5fe29e74b09e182d0f03cf0acfc0727195352becea540167c4218289a028d0504f1f0bbc345518c13c04f6bfee8cac9a09ca4f8b3f5dd0b57125a7b24e404f8d7b3da3b930240bc72e861f23b1693934031af77617f5b638a39a58e29aabc2eb47f20c90f66930aa1725cd8cb1fa1dfc32934636071fb7b7c506ca75a8ee4bd9cf16325e8c3be16e00a9831ca2b976376adaa8d1753"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_12(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "8d4841fe7d1648962f849a3cdb5d26c06a992d1c4b60f06a3042f37024224933"),
		nonce:                 decodeHexString(c, "9324f6cb8f4a02caabfe7c97a84c94ce"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b8ef46c36e120f1dfcf8ea03c5726d2ce43e15233eff57b3f5b2623c9b44c98a"),
		additionalInputReseed: decodeHexString(c, "dab440910a8c6913b587264138408778acdb68e76f95fb1ed26161457479d9c8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dfd98096721a26fb104e5fb9d9e59447db40df85506da0553046baf93aeb075e"),
			decodeHexString(c, "d6d5dcf829fd2e6d23bc2293fee85cd8c8921fb6e4256917f342032a788376ed"),
		},
		expected: decodeHexString(c, "38459bf2a743833ec32a1abbf2dde631c781ef71ab20c3ecf30c1afc0421beda60b0dd61f81b9b8dc52d40da4be08471a33d2d09dfa5a515b035a99803f66f25e2854e13fc4927def147fec46a4c8b0096146041c39695d60ac6214f97a68f7bb83cd4afb9495a8a36ca4d278ca94a7636708c0e9789705b4dffe288179572201306dd3a5d30c364a52ec5790450fbc12ef65bc60dfe95af09baee0a0592c8faa79c916825f61ce673e4d457c894ac46b7ea22d43eb05d1cb6ccbfde0398b552ecdfb222acc6684284f9fdf4a16390c1221c3164a5f57748bf830f938dd80d3e40007ce7dfe93d440a76509a2cc93d1463564b221671d7cb299aa773b4a0a37b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_13(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "e2e87eb2338b3f735df677ac67471d2b3e515b8adbf050867baa07f31d55f237"),
		nonce:                 decodeHexString(c, "48b427fc3e992b6af5d66113202da718"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0dac1b8800345229cba67fb012487b4c61e89d94355ea474f0e8e9e31ebba7fa"),
		additionalInputReseed: decodeHexString(c, "82991caba11b7eb468036f6f2b46500bad4fb2bfa8299b04825edc459f29f412"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5efcc075f14399d7dda0c85add405e69735bf8e543afe7b6ce5e93729d2f882a"),
			decodeHexString(c, "5a26c8f4c12c5c2a5a22f9dad3529d6d85d6695aa3d57121569216dfb8558562"),
		},
		expected: decodeHexString(c, "3cf48e1659a4da356f7fbe47858150b5801cb4a0b1632542916cabe536863c3f0da6f2ee7b577bc878629f3f7d28d3624afde4d375b21530a519fba5c8a536f6f7431fa94f210041504cc758c98ce9376989ce1223fb2722b6239997714eae64df23104dfac464d27acb568754efaaa73e4e324ff516312cef883b8d4a65dca0c0d80ead8d308bc24c7aba9ec33165dd0e143964445d0884531c0e5f8caf365b24e5cfc4d3c1a03e2b867871c86a1e5b52d7b835a6a60427be5cdc7a58eaf3685403069d5d872fba0e6c5ccb4e054d1c373498bc7935f91968a52818362374aa886ab1cd33824dfa602fb2eb546e93afe21f0e4cd57edeaee2fb87f758b03788"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed73_SHA512_14(c *C) {
	s.testHMACGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "ceb8044e3c21a6928f509c0711b07a921488c203518c5ea3d9ac35fb5547ca19"),
		nonce:                 decodeHexString(c, "de50a7d2a0a3074e9af4739701809284"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "110a33d7de4880467213c9f7454e84ecc51f5b7da88a200f19980fcf4454dde7"),
		additionalInputReseed: decodeHexString(c, "efaf25bb4817bd288a197420614d24a09807c71dd5e959e630abcbf73a85c800"),
		additionalInput: [2][]byte{
			decodeHexString(c, "357b01742d49116dd6007e6285ab47e5d5e937027670bdf740e38bbe11a6f730"),
			decodeHexString(c, "c25890a14bf6bd05e2a5a656b85e7f39e7bb0c572a0465f7606d7ed8634fe147"),
		},
		expected: decodeHexString(c, "95a901a8a832ad16c2461a70bf572c019f85a8afc034145009303462c7e54436371505dbdccca76220c67b967c2420bb621ece0fbcd62c8cf9bf120aaa5b47ef444f218188e52a9847592d4b4d678f77a86c46ace46d3898cb6c28b28c44a55026d847014ba65db435a5ad12ab9c1f2c573fdcb94f9c9e1bf4199fa6ad44432e138f623132a0825164ec70df2b0c20ec8f5c42b88aac9fbd20356041d68f5a21dc776cc1eff74cc4a9b8942728d80e98a7ff8e31d755a35e37273a0b2bb24e86b56ae10dc6912765cb2c386e7d1bfc40d931cc9d25ecf204c422d41d2f2347ab2f0a6bc32f912d31007d6030884037d3a3b0e846b520e2a4352fcdf6931b3271"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_0(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "af4c306ab5292676f711128b884c8df15de05995a74270ee3ef5cd33363d37a6"),
		nonce:                 decodeHexString(c, "33869dcf0a9ef3f84e8f34246e43d1c5"),
		personalization:       decodeHexString(c, "c969cbb355ce79c09541dd29fbb6c8583ba2cc5305ee52556effd1b9dee18b20"),
		entropyInputReseed:    decodeHexString(c, "1d62a5392337b72369af065032c7b6d7e22a0da989ed8abc2ba6d240507ae75f"),
		additionalInputReseed: decodeHexString(c, "57e8a0c0ef3526be05c215c316b1aec403b9ed42cd738e7ada986fd5e9982f4b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4141fa2ad958e3382361ff168fe81f1e90e3975370778583e6fd74a7a3c7b46d"),
			decodeHexString(c, "664716a8e5caf325b08e45f6d9e84cde55a35ce7a75b29e39a2f7185370ed307"),
		},
		expected: decodeHexString(c, "d606246b38bbf387071eb492725acac8f13a80eaad1df85351d07639acf20fab0772db65ed263919489f12e3278d3428d1768c7d8e9c807478221e761336f1d0e93812d7893cdd27e01d2293fe54f419664048ef867cbb0f68f95aff2879703e53189d58c9aebb368e4fff1ec7ee08cefd9514d73393877d3080be1ccbfaf3f0c5e02e9a2e0afd031a1097ac1362f9e1704095d47bb14bf46e820705ef3b21f587edf986cf9d76bd6f86db9a04cbe6de17e855801bd437eb4f8003fa3b2d9d21c8037ea459a8291e1ecd41afa22ae973dba0e30e6b3a70bf35bf154f147bb193091a40d3fe6005c60cd226d95b95de5fb63cd63a8d5edffd5f67852a9f85e751"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_1(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "4a25da8328581b2a909317fc3f69bdb832236226fbeacd0e4f5c41aca7c10cb6"),
		nonce:                 decodeHexString(c, "32ace782ec3b86f9584358b723f9e573"),
		personalization:       decodeHexString(c, "371a8dc53e201846e1c10a170e0b8f1230c2d3d79e6f1e309fdde35b4143b8a2"),
		entropyInputReseed:    decodeHexString(c, "454937dc6ec31adbb15265b7ca019336f9ceedc3cf3718259f3f499922ce4c12"),
		additionalInputReseed: decodeHexString(c, "df5fa8efdda662c2a3738a01844874de8b49531bb75f50fde846e0f096ef4e40"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6f77dcde0cb365cfe261eb15bd7f639b404bb6b06a3897edca0be4b712ced536"),
			decodeHexString(c, "9df9cbbbdf91920cd81dda13d95e1e550552f357048def1e08bfb8c28450f146"),
		},
		expected: decodeHexString(c, "3493eea3caf0586a20f8a690438a0d3bd70fdf26102d57ea7ce85cdc2b237e34c3f2b92f4ee1fafdc72ad2b5ec29ed9ae25de9cc39bf090ea322a3dafff72afbfae456bb08ac872319e648c19d4276df650092f1bbf5b124761d99c0d863e34e22bb6a4ed9082e5d34e0172959296801cbb7ffbcba8840f382f14136e20e4b49521a7fe69b51129e08be04a6064d5cbf7b5a4758eea747dbbf23c91efcaf832e35179c3f2a8dcbd633cfd717e3703ded6d84bb1d5e6879a99dc49088a679d05b398c9622ca82392b6ca866399327006856e3011e2079399ff46cc0f809de590772ed07820ee8ac6006393631b4bc015f4b7209bc556c282daba35cf09a8088f9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_2(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "a3b14e383943cc4a3094b3a13041022b27b9f6fde2b376d36910e8d9448db9a6"),
		nonce:                 decodeHexString(c, "7b4fa54fd82ec437c83f52ce66fd983f"),
		personalization:       decodeHexString(c, "51899c8e7f1b7038da36ac9a01d53337239cf3a3afb4dede6e82b90e50bdc510"),
		entropyInputReseed:    decodeHexString(c, "8463c7653371c98dfaeb6cff4986c39a760d6bb1a1d8a63dc163a18607c8354b"),
		additionalInputReseed: decodeHexString(c, "818731622c90f37ccf683334e2973d1a1150375c8c31007fe669ac160db09e39"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2aae835984aa94b333101e436d160dbeee8f668c04e785da9ad2f8d55b1fd777"),
			decodeHexString(c, "91ccdcb868c384c3f3df78fca5a671ce3b92eea6797a2a4c63f4c7c67babe4de"),
		},
		expected: decodeHexString(c, "bbc8c3601919def92dc236c0f5017f6954d3d953b39688d0fecb4d9b47b5ec12b5e0434778257555042b023b7bfbb762b7bedc418a63ac51de8ba17fa43bd6b35a1b4825ecbaafbe423088bf1743759fcb1acfa18acd04b7923ef24bde776fc2391e175f6cc87985545fef6e88b9f9582ef16f031d5a6e0eadb3bb29f70802a4ab84693c7a4a7ec32cc6c1f3b07918862c36b33dd54d4f812ddae35d13a6ce9622438d92097926b2b70145ee81c15fe96ee4f70b9600066c8d88c743fe72682ae1d702ec7eab0e1070cb1ddeff72b290f2fa5b26943cb644dc3c36ec9c104e602d457dbd8b6318b4e06b5dc1715ba76359e39bd90a33f7f5a3368c7bd16c1350"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_3(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "be16be8877d8039b3614153b7502804b42c7a2276a488420a609388456da1528"),
		nonce:                 decodeHexString(c, "b1027b5efc1f24dd453d84d9f125b690"),
		personalization:       decodeHexString(c, "ba5aea951045fe2c3a5f3a6825d2be20cd71c915967730fc6b9ff7fd78184a20"),
		entropyInputReseed:    decodeHexString(c, "c1c5ecc2e9a17822d7f49078544e7913f980163a2cc90e9e32b0d5e5d3a28fdd"),
		additionalInputReseed: decodeHexString(c, "d66c1e0c238abe9bfc9504732d24fb9b70ac6bb7430f7334b64aacbf5bbd8a74"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a1db77d943b840777cc8d400592d2037153fa6cdd987516d918079cdcc0d67fb"),
			decodeHexString(c, "c375bd13d7460dfb82b2411ec33d6ea8d47f980f8b775977a536214813bde811"),
		},
		expected: decodeHexString(c, "cc9e0561a3e2d3cd580d2463bc4f81f4bc1b97ed55a079edb74f427cd542d8efa91fba24dd72f56c8c5fda8b8f8e3069db3c1f0568dc8b4a2ab1feed7836768b06406931433ab3364adc47e55ede3c9b15fb4c20272496f7d61ee1990e9f6c646a665a0097154d86537cbca3907e6a1b8adf0150373278bca3f262b462caa93a18a8108c91d2029bf6ce2636697f62439a0107dbbe2881c0052dbd4d4f3fbb2e348968220f29dc66da6ff93d3fbcfcc325680e744bd2aaf8a579b8a554263551615bee4b15c4b0eaef25458ecd93d4601c9438b9f21aa00cfd91ee24861bf1aebad15a682cce1b5bd67a7af0a52c99591afffe3ae33bae1b1eb5c4b6158eab88"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_4(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "fee854f9e289464bc6a03f92812ba299d0fde3f80e707d075066db7c27bff354"),
		nonce:                 decodeHexString(c, "9dce9a565e9eb7f2019f4520cc52ec35"),
		personalization:       decodeHexString(c, "f7279f4d7f7bd53fc79b70c38ba805ab07b51b332345392b4dd0ccb93ebd5709"),
		entropyInputReseed:    decodeHexString(c, "af82bdc367b85544023de4c34dc0b1929ed6b4f0fd9bbf452365854fb101c1f6"),
		additionalInputReseed: decodeHexString(c, "cd8bb82925e0d82f711c51e0895017b537021d4fd66b7810d842df20d6501022"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1c825fbd97bc0b7f7a2e9353dd8ea8c8f8d456b8772d6a0344216cdcea00e683"),
			decodeHexString(c, "aea8271b3817b53f07c88193da56519e94cb1267c4ac081f59593f305eef31a6"),
		},
		expected: decodeHexString(c, "c0a087cf9a7bbe550f5be5aead6ed58518bffb59f5570f1089cf9318ec2dd51bc520f9c29768885767af7447bae69a428d37a3895c97a957594862140f94ec1f6a19c965a5b1308f41f6025bfc56b726b0787ca30e9fa60e1488e578961ff48901b4f1414ff7c85d55b0e325536cdd6d1922c7e63f7999f899387858ec04182d21f2ccc8a25850307f1348821dadbe27da0c566a4dfba28a85acf5a2581e1dbdab213da1de4347e9d2737dea65b0a3e137756bddb6ad287bedccdc0ae7abdb727a5cfedff65cf90dfa0a7572ba3456b3f0fe4dce4d8c2c66b9b1da8503e6a11d7c48af7954d3277db794fed93ef7255b9dd669853f78534b4840f38d88def54a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_5(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "6aa62d0f4b1445a4b86976ca88d242020df47c10c1595bddf8064f7fe4227f8c"),
		nonce:                 decodeHexString(c, "7840ce7b158bc7aed71052b5adcfc146"),
		personalization:       decodeHexString(c, "9b3fd90f46e5058460dec3db74cc03819e5a197fa3b4c5052ce0da576522cfca"),
		entropyInputReseed:    decodeHexString(c, "c49d31b21cb86918ebe815b75dd04e1767c1c53dc1e8e7c643c9627b12fd69bf"),
		additionalInputReseed: decodeHexString(c, "6d0fac574d9302b9f529de6abf06ab12b39b29988801fe776344c4ef91f7302d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8832d9da4ddd7a1c21aa86d380310836e93eb2a22451a8e8c24b8586bf4943d4"),
			decodeHexString(c, "64c9016b1e9926826f8e94ad0ed2eb0081aaa12789f2d152ec5ecb32c4a2751e"),
		},
		expected: decodeHexString(c, "e10f9ad6908e7de76ab8fe443c8207407d02424dd31eff3f1d0631a09d5061ac761100dc85678023f95ed1052e8993290caab0000ce5507dbf5fafbcc8584173a23634f6e5da94be8409b518d2e2ed7a12b8ebe0fe09e97ce077fba90e564250148478389caf1b9a37f6232aba40d33e3d0c5d9b6fdec39ef7c8313b0d56face00edea9d524ef6769d24f723dda02d5fed01cabd4bd115376fa6f54bb1092d9e641985be8271553ec84f659b4c9ae39cbbcd85d827e924f21b033317927a7886fbe9d35196c7c1c8fbad8fc38eef34fc158adaac788730366f70f8e28cec96109163e7ee65ffee51db26191b0a9e5263c3a2d6977a52393f41f63d7a555f79e3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_6(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "47139f544af9f6b0b8022bbae5b936a3f4bf8a0f1cd10c8c5fb8bb7363df6411"),
		nonce:                 decodeHexString(c, "b99640f70c7b55605f7bee6753f30675"),
		personalization:       decodeHexString(c, "0f88357519e8f2c05495c595056e6023460bea47e79f72b113784eb6a77f9f28"),
		entropyInputReseed:    decodeHexString(c, "83ed7fb5ae85138161fe90b14b15295b11d81b0ecbd9f1838a2858cf9e822886"),
		additionalInputReseed: decodeHexString(c, "e973ea2d399b9c4ad685411a619b7a5ce6f6568bc66efb8855a69f256829a62d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1bd8090104b78844f6d615e93b7ae0c921517c97735c0aaa28cdee1eb0a14659"),
			decodeHexString(c, "4d57d04fc0a2adc6ebb618f1236fee0eb00e38ff82137f5e375be00ad1aac35e"),
		},
		expected: decodeHexString(c, "8c4ce3292ae500557b40e4215665c8db5ccba13fbd2d26ca8d1fdad9dca158371ec0003cf801fd28741a2fd31d15e4c0612c68e19fa4e19c626ce4b0184303f4544c414a6541c7d4ac5e6555d22e21c09a096aa9ec09c902eb67a2de9eba94b719ec1ba4dd5dbafee93fcd5125223eaae0bf0d8e7eb92ea0610cc32b69584c0a1565802028f31e6910021d618e5138137eccab894a5385ca4544fdf20919ef2216a3eaf44fdacc7fe05ce22e565a5ab013cd6c9e0a80b430fa8b72127f84f3a780d4ee92c72901eafc8a21c56dcc687ac4ce464cce068895471b36f7b58987ae3272581f00f8d667085bdeadcb06ffef5b1b329bf1db71ce101a2d694de9e322"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_7(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "62798fb89785f864071e04d1fef2e1363f29ae098557205e254656571b9d21e3"),
		nonce:                 decodeHexString(c, "92d1cedeb1f92bf29392187c544bba94"),
		personalization:       decodeHexString(c, "27a7066b31a4f7f89e4282e5bae1c4ed08389e5d7f5334d9827a3e7731be9822"),
		entropyInputReseed:    decodeHexString(c, "143da7a4a1cd29a9f7beb3dd1b73410dd67998bc0cced48ca2fb0c6efd525e03"),
		additionalInputReseed: decodeHexString(c, "b3bfbab1e6d1a82d76f81f96e79e1e1070b08304c4f2dbf9d36f49b906f661cd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "080ff1721955b51c60544144d5d4cc596c548bd7972da7daf0b6756f275cc9cf"),
			decodeHexString(c, "b5cfc9e0f727b1cae841371f9b919666bc208c95658227be6b8cb3835618b670"),
		},
		expected: decodeHexString(c, "246a577508768f153579ee4f34ada6db7fa7331e798ea8b280d8664c9cf784a58acc9d4f08d827522862dbf4b34eda08cafb6abb703cf8c2816e1eb41303dedb80affc94400d1b413e80b402049d6ef68d8388b9156b5df4f94f1cc3dbadace7cbc20717960ca766fa6c48027fedb98c523ce8f8f4dbf9b3ccfa710e43ec150856c389781fc5debbbb6c41c47be7802578547915104bb51df72ac1430d3d444fc982bf4fb26e14247e6f94e2fa837b7141ceab0ac7af99041d9607030ffab840090a71fe7007d09baf2164f565c031e8daa7c7f80efd343ec660a6cde38bea211f79a03321146c869d105d12e7144769eaae865f6aa71e04160c1c707382da5b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_8(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "5d31bcb603cbb001ca6fc41d23f2dc2d1d72ab4ad740bc63f5a157114aca5c2d"),
		nonce:                 decodeHexString(c, "0c5f1a3958ecfe06fe3839f2ec64853a"),
		personalization:       decodeHexString(c, "3b1dbde889352874dcf51313a6070fc4b5c1c298a4f57dc6478a2ed3b6309fe5"),
		entropyInputReseed:    decodeHexString(c, "3af6bef94b92d8b74382a8154154aed466c668c01801806eb5b8a7c7a4f5f8be"),
		additionalInputReseed: decodeHexString(c, "d9a5c83630b06ca70efe2661f4cbc5ceb72ee157cfca8e67b4474e89b3b5e460"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d24d6970087ebf2fca8868de2b6aeecb0118d3613b67c1de57ad6c28b1b4d24d"),
			decodeHexString(c, "03709cfc5b6dd81d0940623d3ec1cee0a586aa13e98f1c39839d55ab45da979d"),
		},
		expected: decodeHexString(c, "a6267192a29b9d2eec90987909f818cc32cfa43a5fc4de915122a6621cd9294c269f3cc526fbde0ca49c354be60f16ea24d50e972411ab33b8296fe820b364737a3e2e364bb411d668eb6270c0945fb45a407628622fb805ad9e0dfe1175ec1ab4a41d26e05a281138e8d12c12d741e3d524d5bae60bfa946627eb682e07f5ec52735e83791653784a23ca34033a4de32ce81649bef383052c072af1e6f77bfceae577c6a3756e4253a4d8273dc1c6595697aa370902f8f1148600570df1d4602b21e8b56b4b7bd38d1b7b9b5bb735363316fb507b8382e59491a00744e8c829d314b4a286ca3e5da888cd06fc70505f91c98035028fe38ffee4a89a89647ab5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_9(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "03a21d9abc4e5d6c7a9fca0ef78a9212c286d9f79c5234d990006590ffea6f0a"),
		nonce:                 decodeHexString(c, "fa2b39b484029333a26d970154502093"),
		personalization:       decodeHexString(c, "69c79819a0e848559178e3771e951547d2c23f65d447c15ae4a61f270cd4c861"),
		entropyInputReseed:    decodeHexString(c, "a4c5eb1f09995de23bbc74624b5c773ffe719f32cfab4ef5aa9f7d4c09bfb44b"),
		additionalInputReseed: decodeHexString(c, "e5ed70e6fed9bb84800596fd2f82f643d2ca3b62563bd50eddd4102b404ed053"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9bafcb2c4a03195b402e37b108461c8ffc0fb31570bce1b8cede3232b8d2456a"),
			decodeHexString(c, "08cdff11e269e0964aa0d884a03f3aec58ea4e17346d0ba64d6f6dfc42252a0d"),
		},
		expected: decodeHexString(c, "ec2ea0e368fc23d293e4cf44982c1bc28ce70b51c01615bf354c4dc6311bc20daa5e9b33f58c0adf3d7779a220aa3257ed3104addbb527192e83052ccc90eff21445ab5ba57c185ed8029ef10461f6291eb43ca0b52300b7d18636cf1115b3ce0ca05503d5b77f2a534a542b516a2de9cc2ad6b9cb5d6ca4f4a326bf04da642efc414c88ade6bfa9556da64025d748f0cc914936544f826a4fdcc4e43e64c8d73f656afc2da81c578684b5edc9e1020b243a73f89c5251461d81cfeb8a81b4f09e3f11fef3872c0e2f13fd833c3e5412e28835765528816efdc7c992ffd5cf9089f6c739bb3af2b9b791ce8e4d5afb94364bd0d60268c65eebbbfce619b4c9d2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_10(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "6084e2e729fe15a40c8e229d21dc582c74db70c40bd8cbab90cce9625ed16375"),
		nonce:                 decodeHexString(c, "167cb1f9a582c301235360777d6f4ae7"),
		personalization:       decodeHexString(c, "a4e08b230803c3de009a969b2486f5981a7e20dfcc2cf6f76db16b084aae03e9"),
		entropyInputReseed:    decodeHexString(c, "979132c57022503e2ffc7f663c4e586bc5106e9e04d831821148c7a1ab24a39e"),
		additionalInputReseed: decodeHexString(c, "8dd3fa8c4b587b37ea77db863c0b5f8402ef89c0ac48f2e3103376533c7b2b66"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4029c16638e42165555be53198a51019b4ee15b6350619766081ab613d013509"),
			decodeHexString(c, "7239db48e8793a100b3b7d437d14c1eff07436c8521520a383ada8e4383309ce"),
		},
		expected: decodeHexString(c, "5cbb2b93d617a5b258fb7d82cf43931d56debca6d6463b291896258f1b49f5657768ffab973bd621e2c33c5b630f29c4e64e86172693546ce709d21f8cb1265c750085d26a0bd02459ac7fa1f5ba604bcf201437d579157b4826c30f698e71f926bfa4cd7c3976b2cea7186dced85e10877d4597ede83a7286ca984da6680f16413ecac64fe99dfbbbf7fca42971ce5ffe206ffc524d0865d94315b912253b53c73b47ec9209b992a69361da8dfa57605179d2cbc5043fc718872489d5c06412fec6a0ae5f8c5f2c6587606d2351a6b8295c5bfd2c5f003d1dce3595b864023b8e363fd2d22a1bc97b4bf74312d6e5a70f26532dfb043e1dd9fb750d7a208b4a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_11(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "1451159c6af21d19b84bafb6a386f9c0213f50402bb543fec71450edabc9d914"),
		nonce:                 decodeHexString(c, "841cf6f11cfb8c95f392e7fc72f002b5"),
		personalization:       decodeHexString(c, "f13f9d51535338281e67b33d1e28c35eb0c374a571d0196df15e588d73bc6afd"),
		entropyInputReseed:    decodeHexString(c, "dc08b732a947a1fcef583d94db6d769cc56a82ffd3d806286a4577dfab5d39cd"),
		additionalInputReseed: decodeHexString(c, "8b47fcf8d87cd17703b0fc3bd595739be0b6491751fc27ec0070e52be1cca03a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b058465d27d8a3526be24efb7895547afab9509fc21e70a6033b1d8944e6055a"),
			decodeHexString(c, "398cde02e621cb5e67bc32cbb8a20d9efa4b25e34642baaaf3a687e7892c993f"),
		},
		expected: decodeHexString(c, "abfb8abcfa93ca7f93f2f458a54ec543e835a18483b9b16fec208abdd800d5b784698a22e88940e3308b0e2bf531e361ddf34e86191a133382855997f730477a23bcbb746612361530460683a520973a8b8b0dc7faf3f7e02c7cf244dc753cd090bdde6d40a551a7c7a06c097ae0c3d62523c38e65f4446132493bb06ace41a7e5aa1f5e8a4c2674b142f21c5c65a32154cefefd6d77737a4939b414fbc0faa7c1758580241b5557a1885130fd10bd528f4a18e7dc4acc7e14f4b7a7174eab49d75ffec003d19cd4dc48fa5f1fd34b5663810850c02abb484f046c250bd678dd429b623793bc321af86e9ae29155e41ce0474d5b1efc295559be7e40c27ed8a2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_12(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "2065efacf9256fe2404bd68b475866a5c642dc7709d402285c48a968b5f3f6f0"),
		nonce:                 decodeHexString(c, "5a1996f94ca5483ef2cfa24d61317e4e"),
		personalization:       decodeHexString(c, "ae0a01570a4f392f9835aa3c90280833a54c7600f09b2527fc9b28b18075c2b5"),
		entropyInputReseed:    decodeHexString(c, "602e6983c3e8b21f78e3af6aa594b1d7bb890791dee57f6f6169a95222704316"),
		additionalInputReseed: decodeHexString(c, "9421cea69d212aa6e1666b08a7353ea2e672586ab856fc2cb894a67001364751"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5664da8748a295d2725ba4aec1a5d24d4fd380231dbcf98996d8b8aaeadca312"),
			decodeHexString(c, "29a6c6ef480352704a6100478a9f335a579a4dcde1336e76ee1e83a76246c875"),
		},
		expected: decodeHexString(c, "38492ef4d6ddf39d0246ba963dfccd4bbb3b4f8dd3deed8fdfdda76ee5dc5833ee33eb1471218ce279700faaa811f2ad0fd60fb6f00e29c45b549a0009b505c5f9e5d03a22c9367ec59849085a6d2cf2707e2f4f880a576a1a2a5cb268a7d7b527f2e5ff21b927bbbd0f3fbe342f36f898c27d8ebbf8679c5e9bd248a03bc995d5c07f1f5cd1da5f69bfd0610280b035ed660e2d314dc2d2796d44da968514f78435b920e13fc8d65735f45f05a6289872f7899002ea3f2c32cd47d781920bb689db3dcf16c04f8b0311aadbbe12c36f76116315210e978eea06b6d0165e4ce489543dbae8bbf6dd314922a4cf4476fccb9614302d435d3330deddaa1fe61ac5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_13(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "aec58b179b3399ab0df04e43845417039847c683858f1effc4a54551bb7b1015"),
		nonce:                 decodeHexString(c, "87ddee7c5b09faa172a756ba4b8ad4ec"),
		personalization:       decodeHexString(c, "2ac6bd2862da9a761afa1bf1d925dffaa549dc2708df946807dd4bf4638d5615"),
		entropyInputReseed:    decodeHexString(c, "1c319b13aa1dd51c23153b7a25f2830215c23efa60339de2d6e38c5b4be8b8b1"),
		additionalInputReseed: decodeHexString(c, "0bf13a2f7a954497a882cd80474fe5d2a4f7fca8d26f352ae7c03a39de79fea8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4993d94c1a79b177746b9223d881031997d15c56ea53dc92e23229d58412fb12"),
			decodeHexString(c, "d4498bd0927d85769557d5ccf5a368ef1a63047be359339b8666b999bbd8508b"),
		},
		expected: decodeHexString(c, "735edd10201b0324681f38ff8a04db17dec987530fb2b9d27b458ce81c237af8458f62af65c5a9e5781d7778701810a311968fd45c800ae0b14fbeb21381299021eb69910ef2c85860f6824275c39cbe7e8fe23561b154e7b5acef6b6627d7d023664fd785a43c97bf37d0e06e6f1822d8579b0d311a8219dd4e6f76eff9b32a0f2030833bbd4e3fc5f8448c7b090365961fde7ad4588aa1b49548b86a3117ea2ee399d5c3c1292732e4347674fe65078c288757afd8d89052fadc8b3360df99ffd2ffc1209f42e69bd523c491e0d8098f7e709508822199f15eb5fc46c4a5e131d901fac7c252b235f4ceb86f13b6ef9cdc162f18ec9a4cabecab89587ea7a7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed75_SHA512_14(c *C) {
	s.testHMACGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "ee61254397d63ce36c7ec7b3f6a4533df679c8d60562f4688aca05fac4200687"),
		nonce:                 decodeHexString(c, "b839dc58c38b53ce097514b5610c9407"),
		personalization:       decodeHexString(c, "5c2a92c727745f62f261480b50a16116ceb2d4d1e490d6451efed22f235b04af"),
		entropyInputReseed:    decodeHexString(c, "2aee443b7a17365f91fed29b7c92fc97b9917b9c2b6bc559e4c1d05df9276432"),
		additionalInputReseed: decodeHexString(c, "99170ef6620a03bef1197a72da74bd3398e68bf47a762cdf046f05aec5d48193"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f3472dba31f5385bf86738fdb37f2ddaa1676d388b3dfe24fa9b7aa308ba2d8e"),
			decodeHexString(c, "2e67003c10ca3bdb8e0976ab3e6b76def1ddfe682ad96c626a6a84d6c7e87fdc"),
		},
		expected: decodeHexString(c, "b8cb8ba689c6a405628ba4140f19772319934556faef85c94a1967dbb41bde7c818e13b5d5a65ebee784de9eaea74303c1fc9fbf3a9699132decd93399109b22abfb50a28c1d81daa4a31805492403d50835cccda3650576e6117c16b310cca9a2e5c400ef7a0149b4e1b068708c6f49dfba37039da946c7a9c897631feeb4275d46aab185c189206a6eaf7b835d15246dd7bba9696052b0973c496771ca2d02f1f459307fb66f92fc788b94ddaba6b0f0d4de30ba64105c9b03993a5dfe66e7106bcd13e33e06fa9b10716d77ea6a40b382567c83be596c4761b9ca4b4ffd4248d0c155b4f7af6955599c8d4f880c16cc62adb5fdf949f877dd6cb2bf908ee5"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_0(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "4855249bf898293e02a503891584a78a9f9019f5faf093a4527d8735ffefb2c0"),
		nonce:                 decodeHexString(c, "81cc0c16c8ce0fb210153132e7dadda8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "22dc10aebed133559a697d04d4143993730bbea88cbb7db310d262150406a42f"),
		additionalInputReseed: decodeHexString(c, "27cf86b23284b202bbb2fff6804edcd160283ebc305504bb04f8f6446f50ceb7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a71824fcc9b5577f0c9755094bb470cb37c550bf9c6c1d58e75723fc4de2fca0"),
			decodeHexString(c, "823a5df37a2e4ce0f4a71a228eb46baaca1bf67c9433459a9a02e931c42f9d24"),
		},
		expected: decodeHexString(c, "68f87519339f5c38939c797aa667a156011002b2e39242e158ee5c2ed9530bb92acc15589219cd307147ed1fe3b5f1f983923901eedfea90ccfb20da14e52bae0f8c124d1f799cd243b136f7b8064018c45eff0d0f70dca6ff24356726e84c853ae8d141f94052481ff9921046e9e2af5b2d944f9775de3f73fe36aa364d70f5c8ac2c6afba388b9c557e540709b411fc90c8c09b53d90463f4044d4de86e11a16858ce659a325ccbe2d148664a6bc5a4b2f5c74540132adbd47d12c4fe81eba7a65a0ea227c09c615dd66375201f7c63ccda248c4b5c58ca7ed3c3a7510cd0af09a8d55e3a72a13f280194eb6769bd2a84e2b317898ab13d0b214951c9789c6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_1(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "0a64e116213dbad677797ae77079148745c56ae9d07e6181c80c2e287963be0e"),
		nonce:                 decodeHexString(c, "5ea6a459655ab3563e5072b9e171d125"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3ceaac1bc650a6f742bc480508d497c56ffca46d5be3e51f45372f1b738baa04"),
		additionalInputReseed: decodeHexString(c, "fd5fa6fffdd0b12137d316c88b55952f11eed101a0df05ce494fe32fb6c081fb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b68e7dcf8ed7df200218f350886a506ca1647a23117a648aad586c1053fcc357"),
			decodeHexString(c, "7ef391d8371eb82f57e4b1bd6ed1c843f20c902c4c80e1798573b1883b6e44f0"),
		},
		expected: decodeHexString(c, "65c33fab67d54483a9a1a9764cbad0e04ebc5cda3b24c6024ca6dae0ecbe2aaa0acb4e576437a4174d7fd72638e4fd41fcaad497812a379ce6e17b383bc03bfa2b5c6ac35d8d0adac973621ca254df79775fea69c6ba49a1b9695a33c84477075167994e48fae323412c50ce3df8d4720ad38d3c07630268e9b0815cc55057cc953c5f9b7e7963d2527592baf9597e9cde414be44be008790af5c311c1ba7651472fcb8ed9a048248ed90c3b6f1b940c3b6c46cfa67fe048008ba6ef21e5c3eca2c71a5aad7e66a77a144b7fbfb9fdf5c2ddc937858511520f168c2f624bb8d01339ee23e2f586d3b89a0fc025464971e41d635736bd54200467b37841ed3213"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_2(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "93eb46ceeb56b47de712f62c125dd159389dc95bc376fb4ed5db77d829ee1abe"),
		nonce:                 decodeHexString(c, "c9a596c9def8b5ae966e832e67edcbf8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "bc2a3296c2e0854bedf3f7294c45dab10546557f0d5266b6ab0642af89412605"),
		additionalInputReseed: decodeHexString(c, "0b67651bb839703e6bba0a67e22ec89cb144581fd58351683cd21abb787193d9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "554bfa91d75201368a5684f28c966d1c81279b796382ac077c2c1a4cb5a9712c"),
			decodeHexString(c, "49cbe841142b48e348302ee6a558d93653064ae5b86e92645a77f3ed65918b82"),
		},
		expected: decodeHexString(c, "b6a24fe6841a1cc90f0a09ca2228284fc5c164da505edb7998fe4cdf2a84ae35c33257465a0f4d94950acd7ee31a76d649be4ba92e6a233720b709d241f835fd773aaadf5de9214064e1e2f16e80d287431d9fecad38e99705cf3280561581c68229011d7930c4a9284db8a68008d175b1459cc1fa433f76c035228070ef12ff4775dcff5b0f6a1c03b06b354224ad9de1af74f7cae6a6c681dd51196e2035752af2091308e418c167343ac7db0d861b9348b765909e6dede1abbf05dc1dd1d38e69c514105979d32161f48161c8ebc2251bf553a059904b0f14a2308b60b13b7a210a8151d0f74392c393c402947dafb5654e5e341425f54cb458cf9ac9d06c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_3(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "c2b5294d37be32ce67012bdc4c780ef2424120d31dbc988f1e0b092e2634e6e1"),
		nonce:                 decodeHexString(c, "254c08ab3fc8dbd14ce58f25769f1835"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5918b45c626edab7e47d3d7bae09fc351f607d2a35ca1064d1f44576e5d6887d"),
		additionalInputReseed: decodeHexString(c, "8e5f3952c60385376b94ab4cd699fd07b64953a428cd61e4823313c1393c50d6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b045fb5c3ed90466b69db2a56b60928d002da6850f23615e2afdd78db1a05383"),
			decodeHexString(c, "570a56b70e8a697a969b4f48a3bcc5e7b643256654e4824e3625d4b85fa0f14a"),
		},
		expected: decodeHexString(c, "264e878fc1db387d8501a8e06dbc238b14519e63c74acbde92d050ebcaf8f0b34aa27d64297312239c49fcb2ac449f45030f713afa1fc713b58540ca77b5fa81e605894992f50b5f368d2dbd4b495aae512ceec3eae75f08f0cd615847e84524d07d33d423bf75c62de175c0a242478ef7982ffb9095f5b1c9eb2b71a07c8936b6b82f3b411926779302b22068f0f8268f23f22fc35d7d4a20377dafcab743999e409f9d111c3ac8ddbde8d00c2d28433f4cc25812aeff1c21cdd1bd1287470c143f26636c0c119fb30b2c0e62df7ad382046aaf2108ee49f5c3f8e1ae76965d819d241a1edca7d10d7cac1e37817bdb9636aece485db2aa42cdbce0ab7d3e38"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_4(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "ae8bfcd50f3874ad57ff5e403a03b4ff3addccc709bd254f060c27fe2410722d"),
		nonce:                 decodeHexString(c, "fa4a6816ce9cf58d29d94e308f36921c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "44e23f2b1379a21ae0b45c1a00ed09b1b590692a8c65e67edb469b1b4276a63b"),
		additionalInputReseed: decodeHexString(c, "7601798247b41229c78d59d13054cafda63f0633e98afa3b2b5a80f7ef87d53e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ebf62456f89e4ec3a9bd7800ff91fd57bee00faf4f77d0ddffbc7d7d39774055"),
			decodeHexString(c, "a6aa62cf68e550118db411aa534b816eebecf55b8a81d43e4183ce44fd1ac973"),
		},
		expected: decodeHexString(c, "ad85f942e991b0fc1b121f065f2556a9dc24efda80930fb4b9c39e15e807945b33fba2307d0be28448673bb2f83a5c7fd32f43d4a2eab4a3c708bd05d65225036c28f30d5a4232a0f8702507866311358d59d835514c55b35231cd4ed40cb27bd981bfb0365fea83e2d9b639deb1c11d05447ca413619506c9a7ddd406c151a00a600d951ac7770b0a7ed2d016150132c4774b8dd186c5991c68f0582cde5cbfcab961c13729695ea67f501a7039ed2711e858ad56c9d4862771e880827c8a7dbf28f3ae728fb896d62d597ead3d942a7112eb3458567359f372703a59c93bfc2ed4889adc3562ab9e9f7ab54cc27d9517bb0ccd9c7cf34dc357d858f7fe36d5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_5(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "2dc07177949ddd5e288cd03befea3e5672fa554806bf04a02cb3774d94b0ab63"),
		nonce:                 decodeHexString(c, "dbc94984144fbde909a45a44b5a043d2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "71f2cf92648a6c9663302bd0fed055bd040c5be5ca300983070fef11c23e63a1"),
		additionalInputReseed: decodeHexString(c, "28a08b21d0072e2a7bd3fbe940e42216e4c005499054721e9002f45be5eb7880"),
		additionalInput: [2][]byte{
			decodeHexString(c, "34b13859b31f16880d4768648f8472576be54c3a349412f35250877fc432c73e"),
			decodeHexString(c, "3c65218f4ecf5968707708e0ae3fd9fd106a9518df06c45a99bcb4d3f9a7e014"),
		},
		expected: decodeHexString(c, "ead99dab1e47d848cda542f418febb6bdd23a25d65c568c9de8eb6bd8679483c67c1df5384a15f943b8c0f951cfbaf507f7a194bde9c188799d6d614f6a448bab8f941dd356b0e73bfbc3e8f25b6d0725ec60126375858548ee8da178452759f3142e7dd6876b2ca6d0ea3ef360c005261aa0600f8e9748f7eef4e9c5b75838051fa63b5906d7eaf8b7e3f192d838da1b964664ed53ac5bf46360984fab569c1e89013a495b7b9caed23ef2ff57e43129a29a0892497278534a8845caaad7aee6288b6c0829111eac737c6548073149425141a6d951cf89dff7899fda3d7cdc14e963257ae982a5d71b78040d8e130cb55b4190a31242a2dbd9a2ea5b22431a7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_6(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "08903a126ebfb46d0060ab18af021f89c579f2386c55249a2d4deabb5935f81d"),
		nonce:                 decodeHexString(c, "3df7f9c353b65157a02932501919b852"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "20e5d89d6f2c3681ce53216677dd928c0f7fc19bb0ce14e3c75ba0b86660e0e7"),
		additionalInputReseed: decodeHexString(c, "9a8a8b01ef696af3bf434e99c3be23cf1beeca80e58bc8c98e019554e84e6ba5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e9b4601a0649221f4ae0b6103dc0541fbddb17632d61f8426e2d8274908e628b"),
			decodeHexString(c, "8568ea9d27e790aeee689b009683335547ce5fad12db6fc205a52d2f2c8579c6"),
		},
		expected: decodeHexString(c, "6cec66ec54d30481e77a929a1435de92d2edeb70d060dfe5bac3c4f2966f3089e583fbff2527f31d3b5c19bbf0bc8cfca95395dfe6e9c9c3a11c9bbadc6a079d597b3d4303b147d5c184fe221ae85a158aa0309a5df50e1450fca352dcf1622bf2833112717f37c60846d58afd311ff9acc6763add38f3b8575851e82166f555a8cc294fea4a494f6a8d875c627dfc8329c48fc7c2f8c3de3cc5a6d766055b69ca39155dc3ab32010391796e3e837ee5c58c8d81048313f994cfacdd43f1d404955c71ff17777d0b72a75dc13b445f117d7b21375572c6a03e6c77af31dc8ede85a97c80fffea57657940aa818a6c029cff943937db342ff8cd0f8ad2833b6ea"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_7(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "d0f95c541eb58380b16650773a1a1950ac51bbae33b4fa418649f74e17cbc090"),
		nonce:                 decodeHexString(c, "9213e8b9ffcd7427b84817442cdd099c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4af040681f72fd1950ef6db1b875887b749d23324068cf0aa2ac39b0cca6f5c8"),
		additionalInputReseed: decodeHexString(c, "3cca2b44f04a6f9d7b2d7c453b0865df50e70c4c205b7514d4db7f2645433537"),
		additionalInput: [2][]byte{
			decodeHexString(c, "61d417ea84765880f4c50be2f0501c222fb5571f43e952d06be218b5c7f12c76"),
			decodeHexString(c, "3ef34bc2d88c194326535befb9d4374029a6d2b5d5ebf57cf3e295c101cf2091"),
		},
		expected: decodeHexString(c, "6fafa772e755fafa55335d98ff364ecebcfb0f20c13af8b4c624f6291be198ec8c0d7cb41adc1b6c693dce6a10bedf900295ed4c06e124e5dfe210b20229e10fb65ba3d5c0ddcea95d7580c7b141aab146dd7265f21cc4e6477cb2254f7c8b51255e9cbf58346b60e1a8cfc362959a1d5d812f22bc66b6dd0612434dfec40114d33373cb25830a92d641a07b7d585196e63f9e135332c8cdd4e397c63ba97378ec1dd487795846fe759f59a505927d031c5bc614e3eccd5f3bbe70ef5eb0142640f4cdf6f9cfb3c62a461a6cd143a1752a6fb6092f68396662e5c6b520697058f601e00c699fab18be96fc5f6ae812d71f69392258275967f3ad0111c16c3edb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_8(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "97d2153ffd77da99aa780c9e8fbde6ea5788790a3ffa3abc49249d286b4499e4"),
		nonce:                 decodeHexString(c, "6978b60fdd09dd059dce5dfb9fd91b98"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6d4d9af2c436ac33ef105c0138641eacdaff3124d1daf1735097125c201b71a8"),
		additionalInputReseed: decodeHexString(c, "0676a9ece205509ab30af19ddb9b5173739aab572b935e0ecb600d4dfbdca2fb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e182e2937432611ff5832a0042483769351f50902fd3f4dba643996dd84286df"),
			decodeHexString(c, "fa1c67464f5e72262215722753f481f905728e2c46368911a3081ca0bd524bab"),
		},
		expected: decodeHexString(c, "0e42219dc5ed272bd110f157ec8cc1f3bf4618269f3d34b2a19326b4e63b93c476e13d3176473604f936be1885c2da6f8fe5884ff1b459b92368d1277fc7127118220acd083c7b3e7cf43a997d4b81b40822083c3d7df9dcea851b51cd1ff2960f3332ffe99a9792d516bce84e19c0a6b7ed9ffc2144bc2e9cb2aa1ae01e4f3958e898b49ae5a96217b51ae71b5af741a6f15bfbf4eb7c69416565a3a4c28149a3cf3534baf61d421fe5980bc3b612a5ce4dace729f37666edea58f5f3d19e4c474f09d5f9e4eff208d4b9000c1d4d009be37e20614821a8c983adf01ed0d2461bdcee2834bc0bc4814ac12fd11241ae6bb7fb0de58ccc064f755b466b363bcd"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_9(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "2886ff4e11950c1e639398b2c7d6908d5c2e4daeb7719e6dd98a39b1428ea7df"),
		nonce:                 decodeHexString(c, "8cbb97f58cf243045bdadb2f9bbdab10"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f487b94b5e4eda49e933e0c268eb5042c422df88061ebffd893d39fafd58efd3"),
		additionalInputReseed: decodeHexString(c, "ff8e7656a21bcced082972719ebf87539c4825cb0f4beabd12a12d544dea87af"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f64dd3b0efc5c8c146f9b9b8f0ec7ccb784e87c16268a4aab31e9eddf2c9b83e"),
			decodeHexString(c, "9dc16b955ae805f10ebbdc3794a2abe671a339ca148b46ef6ea208698a54a0d8"),
		},
		expected: decodeHexString(c, "0e8c9cb99fec37602b291e508e43c2ab323d05764184379ca3a2ca4080ed26c2dbfdf3d1916485c7eba49077ca881fb03d07f967cad9b477959f007a6188150b6630218af55fdd7be2eb88d48b5ec6b6876ec25665c0310624283d2b5460e3736f8b9f0b84095aa4754ac59067a7cc73402c09b1768972b3abd49e0e237a741649ea7888ea4a024c0952b94af27c53b13afcaa4fb7976f65443809d1bbd7e4b741bcd6c4a3f2cdf863e719e5d5e60043e771ce5355dee1c5299ddfa54d77ddde2924271c0ece1e1e1e8aa6218c08aee40993eed58959af430c7d53b4179aa355febcc40124cb7a1d2965e36832e5f42f9a48275888725cba28d72398fbefac94"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_10(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "21f47ece2c338281914493124aaa5a52c159cf22d8573a2ab4ee20d4f77326ba"),
		nonce:                 decodeHexString(c, "bbf1415ddad9d453567ac809e9c75695"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9d2387474a55cc03560a4d762050a96593a83cdf12dd9a8a84c4e5ef2d6f4017"),
		additionalInputReseed: decodeHexString(c, "a9a1ba27d5df8b8137cf9b7ea25c793cc41115115853b7b7317e70f6bbde4e76"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e621439bba7da16aafb66ba02eacd266a0a236673b67ddfe02e56ccc3528cfc6"),
			decodeHexString(c, "d0a2071a18da8af9cd118c01408b9b85490a17bbcdb64da2a3881898c4446629"),
		},
		expected: decodeHexString(c, "e025baf65604f6c2d5000f5d2912e23169a0e6fdd0bffeeccd3c331e31737524789be100cd094e54b86eef744e4b26cc6b6d5cc58eb5b65dd8cdb8ce634df854a2878e174c8a935472713f23e804e928c3a95c2f7f133d1af32e3559aba22f9d52d8d1aca72a79ac65df337c3e55c36d7dd184bf5c508e13099565e2e410c3f25580f6f60adb3e83114c33bacbb322e1a4999387299856b04969ecdc946e2cdf9e5431e4b934cdf5f6672f0c974d59e2b8553cdc4e334454b73e07a991977df438803b4754e02076037ec699e7d793181c4039adad956f07af9d1a82d717c205516a91f01f5bcb9e584646ad82339dd8a7415c038568dadecd910dbd6d189b6a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_11(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "8f6d1ec77ffc71ffadc228f853743b34e046a6dce983e20baa4c10544c1a7e21"),
		nonce:                 decodeHexString(c, "98e99813df9e98fe30567613052eaf72"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b16e983131969e4f814dffdc3f3b4c7633ea7f7598e20501a804d166dd393315"),
		additionalInputReseed: decodeHexString(c, "70e987aa3c7965acb7697b5e3d7e1295b528d49f9205d9c549c82e68e500551f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "457a20dae4a69f1df62820b9aca85039bf0765445525ee1b80b9bfe984880882"),
			decodeHexString(c, "be8eead35183811ae55258c4d44c052d6c1f759553624545a653cf74627582ea"),
		},
		expected: decodeHexString(c, "c6c45f5637550c4f20ad754919aca0f2cf99b8dac16bf3dccc7ba6c2b5c99706426db110ea0ca35caa908c645e48fa89a93d66e0cb555092a4793807b050a3c9b5925b77042951b6bbaa676547b5c5bb0a64038e0e41637d142ada044b4a7e3dc07ba7927c3e5d697641d7d8269f26aad315a571d87701659aa3227a0d348006d9e8c53f009be65fc9ebaad2dfbc5adc01cbb6342b01a7d7b4b6c11c70f452ecad66740d66859b86f2ffa52d146c366b105044ab656877ce481e647da4f809c926085982215628ff436b534ab374f063158cce59246ba5fa54057bdc27906e514cfe7319866bfc8ce424904c020b9111b78c5e2598271e0b7061925e7bd7ca99"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_12(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "1bb72430ecf979c7bf4a04cc3d93a339b97718ce54994e5041580f26fe7fd162"),
		nonce:                 decodeHexString(c, "6100bc65a45bfc81a2d65e0747264265"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f4cd2fbc2d712ab49a22ceaeb3f2b1d9f5aad7b257ef74b610dd4095dcdc6e36"),
		additionalInputReseed: decodeHexString(c, "ce419f8e04a9298a1683b8a243cdf6019d7bab51041cdda2ec5cfaa738fed8d1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "42a93df698b6b69401642084b58be1a1a92a91cd2a4e483306175006ee732ab5"),
			decodeHexString(c, "e78cb812f135358e11285e00b9ebdc48f74224f4525b88d7409fa89a965c4622"),
		},
		expected: decodeHexString(c, "48e16f28807b181627c8cb4d10a8c527b8ef7d4d604a45f534acc99c9a833d62f93f169a6e723f9b92f4e7bdd22c43ae1ad317627171871665b73538d46943414776aa0be925459ccb240463b8da49e2f02b5d019661974835bc51035542dc651147c7be1ad2a79e4f30f23f85251a97ad1fdd3432012c3f71e81c83167a4605f4422dd180f434fc2ca8d406b8f22207681b074280ad696162d6e6ab556bdce13b986c4fbb1b1412f76b9fffccc03cedc5ef25fd667902b4d78d10cebc88d57fef362ef2e45314ddd55aff8c278cf9ec14515825e30cbb58a9e810066dd349c9a44a28bd866647ba2c426f50be6b4e94b851c5561aab0759af3f601ee286425b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_13(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "7f1c8f5688f061c07a87cd47f01de5d97dd411fbfa8ffcea85985eabcea054a9"),
		nonce:                 decodeHexString(c, "2f16b78bc7492c72eca8d11dbb936a2f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ad5726ec0af8a29f01d9e5ac35d318d63983c77f64c59ab2244acaa443d913dd"),
		additionalInputReseed: decodeHexString(c, "3a24df5d510cdfe5daa4d7e1fa5651f476a7d076e3ed9005574c7b9b5ce70643"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dc2752ec4a469faef114f6f70e01f2b89763e9c3a9c39e45276e852ec8a389ce"),
			decodeHexString(c, "cb601e45a5f8e271466bc3cab43ffea228dd53ea8d2ce6183dbdd6b2dfa29ac4"),
		},
		expected: decodeHexString(c, "47c612da9208e8fdd8cfa8d2f878c283b0648d865390f812d46af81c6b8d6f1bf6501c33bc8bfaca463cb36a12a9220a1a714bcc6ec7338d8d2493539dfd3863c7cf27d406920e9753ef57cbbb7227ca24ca4907beaaf190d1321ba1d8c9c36337b68737957f69525530f80461daacd18bfe568cff7b30af2c447b5a47f778135235dd00b0129c9d35d52eb710ef4f5781b2e2b7735340903f9147ecdb6bd932640966234305d8d55ef033505a788dd971d7272f0f3e8f5403ea13c1e93f55050bc157319b40abbb6a5d6c7c6d9276cad8700fb673b620589233cfeac1f984cd3d324453185a113d00d4d5fdf9ddd28244260c10abbfaf9e6cc3abfa00ab00e4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed77_SHA512_14(c *C) {
	s.testHMACGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "a2b50bbbc35f54067632acfbaa5cc8c2b3957836e053189166ae6845ffb2b82b"),
		nonce:                 decodeHexString(c, "3a84e199ff6345752a8b33bbc2ca4279"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "04e1f7e6f4f1e66b4eccc91c5e25c2a60ab1331e5a17428b557db3f30d6be8f0"),
		additionalInputReseed: decodeHexString(c, "9255f00ed09189e34e21e07edda4bb02c1745b6886526dbc6f6eeadf38821dfe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "789a47de57f5b1308092c3774f6207a7d3e5e74b21d98d25a3cd17a525734766"),
			decodeHexString(c, "01bcb98aac780143e1d2adede3aae1a0f9fc55c69537e8f862a4be0f7d45ece0"),
		},
		expected: decodeHexString(c, "676cc965b9d56610860d92f06a4ec7436b884c2687304a6bdf53f7740d44633e0d71e36dd1c22c596cb1f39707604ddc2bb74a017f82504b08aa33ec22c1015829b76780c2253cc368980319121e11a11ee24ea5a2c2be1e54ddf55990ff61bc6109edba70adfb22488dc134aa6aacacf7b360eb2b4a7cd3cec0f545f351b74694bf420bd20c562710931402a339e1a10c04e668742150c7e6c482782fc8c7b2b2001eb4e97d1491e8f58dcab34516009df031c98e1fb4d294463cd0e92cb1ce0d80ab61e3f645816de98443f307dccbf6f7d26c9622dbbd34f21f66c6e9c1c93632481516c55e9dd96570878c532dd453baeae04e3cfe349c9a89ae7a6330e0"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_0(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "f3b1352cec3fe74843dd52567129572c6ac97671537757f9d43809944f52f56f"),
		nonce:                 decodeHexString(c, "e8f582a26ecbbe61122813aaa5bc2557"),
		personalization:       decodeHexString(c, "398ed363cdb918ea8b9df39aa9b5af279f6db73e53777221d369a9ffd8a85290"),
		entropyInputReseed:    decodeHexString(c, "d0927f65b307607d65079c1b508b711783744d6675b9c4c66863bd3160f4def1"),
		additionalInputReseed: decodeHexString(c, "90d7649aab33cc758f4351944ac515a06843293cfaeab21940d828e6cb60f722"),
		additionalInput: [2][]byte{
			decodeHexString(c, "77aaf3525d00de0a4bf3849a4a2c2a0e12edc227003969140cfa648c3691cd4e"),
			decodeHexString(c, "f444db3c67e111ac4f35f18a8febce335cf91d2760d46e5f79d67bbbaac26eb2"),
		},
		expected: decodeHexString(c, "15ec830a8c0da088a8e531e49ea81922d5c430c1f3cf6d09dda6293fbad08425ae536368680d13f824efac7fe4c55b5f8ea8c3dd52ef239d0c6a2e046ebe9c8341aa5046a897510264c247ee691960360db16e41e373e7c9567611a85de771059de22d8c5ed6b40c398178c5e01dafc101e31c5683857c807951bf696cff9d83e0b1fbe63dc9b4442b54cc43a96070f0dae9a749826a526f3245cf9c78ea4e3290c8140e6441a12d17793c00d9cb18976f5ca6210c2cbd8938fd46ecd6982923a1462c1f5cdae1b1234e2d3834454089fb042d696cb424b855e41bd4e2591a471a40266094b3f236791d8e40fac142f97d3aaccb01f60b7d17b87ee1fa8c36de"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_1(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "5d0f12a74c43076fdcdd8bf9d6e0175723b24cb13cf245fbd45e73fbf97c359a"),
		nonce:                 decodeHexString(c, "03ec8cbb5164bb803e946bbb617b9d34"),
		personalization:       decodeHexString(c, "4ab7ab62b38a01a0cf8ca581c6bcf682e4c5fca2ed5556f69a612b5a0587229d"),
		entropyInputReseed:    decodeHexString(c, "ab3b644cf58dbd2044dea6cc967850d56fc4fbaf453161a8d3fd37f480db34a9"),
		additionalInputReseed: decodeHexString(c, "3132e7c59aeac4888837d0679311ace06813203fd2333a389c752fc91fcf7bd4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d4eb29f4f2fea98b63a297e8003f7c5544749df0b824d1649616c000942b91eb"),
			decodeHexString(c, "c36de8e4d3571eeae33794dd459277c28f68fb7472a1571494fe058cbd67ab1d"),
		},
		expected: decodeHexString(c, "62646351d29a8cf51bc15b8940aa5422f0df0eb221ddd158196011b38a03714c229a31b599f76d0ae6ac39032e2a68541c0ea9a568cd8979c239ef79f934a62256c75f2530fcf5e7a3799972fd0a4a096210bab43b921a830bb3fbcb7ad5e135a8df769783a0abba22fe17726df1dae4d8379c375d44e8a24bf2deea5808fce73e71a074a892ef6dd94ee6001c1a39cfffa8951e470d7e9baeff0a301ebeb35b28e71f6364959c2c219f38c4456ff7bb9eee0824bd850032dd52e614b899c55bb4a5ccebcfdb4fbdecb67982cb767b53f9ea123d9c9a853d2886f75731a166ee780c6afe6659ad09b66970cb2ccf2a67caccf59ee5b524ebf1412df554587e2c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_2(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "c1a753597a727c197fde48f71ece8de7008623fdf78447b855d7d92ad97bed48"),
		nonce:                 decodeHexString(c, "83a27f81682b8f2a98899db6b237c25f"),
		personalization:       decodeHexString(c, "450af2003c92f878e750f84d6c9c6c56e5334a3595b17776aa8f3e5fecab8dba"),
		entropyInputReseed:    decodeHexString(c, "df5bd38e91588b4b82b5ef7c21aeb339d4735e7ae8b73182326efb76d3e4acd8"),
		additionalInputReseed: decodeHexString(c, "38961b0e63254559ed64f88e5f24b70802364568e5392982c42d7ad7677795e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bbfcade9f09e598b5f7c59adeebfed21cdd401a7c211747a7e5807d0e47a1af2"),
			decodeHexString(c, "269c99454252773c91eb5a267420f9bd570235bc1186391567844b0b0fa5f127"),
		},
		expected: decodeHexString(c, "b4ba884d8a5073c071ed54922cb635f8b1de0b77376a4f112f590cc1da61aa05872c810f7555519e294263885166a2da1a7f27b0d796ea53e8fc91aefc660424ac81500dead65e0e8dd701b8236d56ec62259ca1a36a1ee06030b926047069b9f78e4644c8900806d6414a73f2443e5571c430a0cf11c513270bff3a2b930a58a655205f7aebee25547cabd46dcf90d23e9c8ebd0924e7de382f68d685363318d40d8a79c7524da85d718abc4e60f24230957d6c466cd6c6f7c4badf7f9059f8726083e0927553e49c47c2a03b0e57da53be68b38bd5107ee3f2bf4596740041a0247e6a37045848db8acd43dbebca9d19adb199baf4c17746b31f7cdf00b2c1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_3(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "61212b9290cd97eb85979aaa77230bbf8be031d10497ba36aeb1dcade31af499"),
		nonce:                 decodeHexString(c, "731f306673e86f38a33ad5e6543c746f"),
		personalization:       decodeHexString(c, "4d8a1599c0ea7efa0c2a635319bb98cfd48fad977db13d8f3da69ff37a4144cb"),
		entropyInputReseed:    decodeHexString(c, "f632481f628451bee32ca909879a3290ef0345ab944e8dcaf49e3054756bc8f7"),
		additionalInputReseed: decodeHexString(c, "0856b49126993744a56dd56d5b706b710e7599e77f5d4ac8fd0575342b783707"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8c64e17d6185867bfd14816bfc1bc377f91d3e565c10ddc9c5f848fedf44e00e"),
			decodeHexString(c, "10c45e829f7152616c9b269c92840c01d16dcda46cbd7c1d3437f89a2117f4ed"),
		},
		expected: decodeHexString(c, "b2181534bcb831408ec4a24af61b25c4c947e1f4f0d203243792dd79dfe644bb954947af976504316d7c6b73838eb726b767c959b82df234ddad593c51ed53c93b5e71e2c2c9b0892c07eb16652cb2f193030b201bd32a8b32ac649cf5ce6f1b6619942dc933fc47d873341b8240ffdd753130fce288fd0348fd0481c1e27a04cea703a5db250f2656e504dfca131c6aaab7e86bc4d7d8086556e4a55a5d3f27f1bddede49c79523d5ee372e154ba2fd2c91e71c70157d04049cd5324ddca6ff66235708456670383b2ad7966df357cdd903a1c1a3f8677b113d54a5ac485b4e8ac6a6a7e9949e815335adb94e7c5f6b4ccb2fc0307a57ad2e1535d856ebbbc1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_4(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "81113be88ca7a9f8735b647a3c7d50e5fbf0defbda56d2dc97ab94c962b134c8"),
		nonce:                 decodeHexString(c, "c7285988decb86574d35ccbdbd0ebf55"),
		personalization:       decodeHexString(c, "0050644148415eb5f2bddb79e3a8d8f3bbed4737090c3f012856f63dd35bf5ac"),
		entropyInputReseed:    decodeHexString(c, "830d4ae94aa96e267bcef26f76c57f22e885d926470e50205dc5d009b781ff59"),
		additionalInputReseed: decodeHexString(c, "fac1d93030186e1d7fb0cf6025b1ef80f873d71e540b10b7be45f498624aca2f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "30b6462ddeb1cefcd4e0b5b50c62ea330409b443346c4e43b44c6142acdb36fb"),
			decodeHexString(c, "3ef5cacfcda36ddaca24dbdb1ac4a2fc79cae246807f1397529cf84e5549a603"),
		},
		expected: decodeHexString(c, "37c971ec23af90881a75223006fefd1e905fbcbd8d15cc585d651864270d758c4b6906e491426f854364fe76d71cf4caae4d3aa7e2321f06673cb4e9fae1a27c6dab9ca59c3f266de0f4d161cdca0f5b2fef7c9a67c33fab6bc16a427f2d1ddf96514c4f4cc8eb2d1705d461bd7663821afa05fd88477b544c8310025f0607acad558fd2d6f6f736cea97bced9143c61241e0aeb3229798d48b8be5baa4779f3c7d84c342a0eaa8cdfbacc0b95ffdbb539e8164782f3bf1040291f4647bfe5bb354272099f1839ef3ccf566cffcd7dfb872e72dd152e0a45323ad1eb528bd3c67c2b8eca779f4270a8ac9e99811a64926102370da735ecdb610b285b18943882"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_5(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "7d8986e12c07570c4b9673d216c781f36e116878720cd3743286c33dc8fae6ad"),
		nonce:                 decodeHexString(c, "d3b0b60ed17ab9dfb4661d4f462a917e"),
		personalization:       decodeHexString(c, "dc763f656b4f960fb5b10d700d7b315ea49061d14649687350312ae2925a5323"),
		entropyInputReseed:    decodeHexString(c, "732ad0e4e731bd886703189bc376eadf1bc6634e59959a4a379d54401d5b3933"),
		additionalInputReseed: decodeHexString(c, "b5db1501a8f2ed90e45a99b348ffeb79599f93909e6cd20e5894455c4a6788e2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f325661e5f455e312bbe22bec24ee9a703d027b44d55ad7032067ec64d0ce5d5"),
			decodeHexString(c, "0eb89c0e2939a2dc4c8832c5dad4daeaaa2e1482e88bdc19387cf985e070ffb8"),
		},
		expected: decodeHexString(c, "0a9bc6938b110cd452cbf81910c004356a1b641bf3bb7e411154b2e0331819abe1e55f41c49672d3d476d34224a597788213ffad5cf0d3c0dc74f1fe420fe50ec8dec4ecc7fcca258978239a3ce63eca03ef4c02508a092952c59c33dbe179b44016e20f4700da75eaf9d1955cc92f847297aa8a4501edb6c1f63781f057ceea52e6732748a8ceddaaac9d648e18152fa846c7eb25e2db5f9ab8d134018bc59fe8f3d966b11352e8e2076180ac14268c46e3713c0fc1351846567f7d3ad1704b71b21f5754e7f432a963a2e80da13d395cb94e0cf5fae06c570ce23615ea43b5587f4eec329c82a4df5b2ad8fbf59ac0bdcd10207afde46e9f5bab4044c92d43"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_6(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "7b872fc9c5c5ea718e227896dbe7b13392488464419d81a7b036e1d917cc9639"),
		nonce:                 decodeHexString(c, "49fc449483c66ad823000ae105850c80"),
		personalization:       decodeHexString(c, "274360cb34b5d3b8082e01934a49816ecc17a205b5663471f2957537b80a5cb0"),
		entropyInputReseed:    decodeHexString(c, "81cb62ca4210ba23af18df37af3518a893fff202cd4794ae6b58310842594db2"),
		additionalInputReseed: decodeHexString(c, "0d9cea2af5ffe0e660753d83f62dba6c4078f9c75eac74afefb75b6335715861"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c0d3679a5b3160ad063eae2b45153592290d3b1b97d649ea2e38b28d1751d38"),
			decodeHexString(c, "02501a85d84615fbb4af158e161560c348328022865a99619a40a7f46b223280"),
		},
		expected: decodeHexString(c, "f3a30015a5cb616cc4834dbdf41981dc0b979a488ec6cf62adc1cd78d0ec718309eae0c8989bd6df6a35c16815353c964afbc9f23bb1845b98451fdbc0f574b43c26741635f3434504511816fd08deff82428e3e0ad6853cc806df2f6ce45da27781ba1edcf047525a392ca7a6ca0649694d30a8d9f6c8cb1c7c8668b9acfafeb86168457e04b60e8bb2e391359865c48f1dc0b97826618270db2a23b710f1a0fd189810e8ab6b2177106bbc03677044a3111cc2ac80ee35d8ae9362cdec38b87d328d0a21afab0b7e7c37b3226eaa93a4b15e8428ac20b738c513d86f7aefe6dd6372b02e6dc47996e67cd5bf360c897308d9043fbcf02e567df217a3881613"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_7(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "930c6e0bbb7d3cf5393c6b7b5992516cc5b605b47bc27cd7c02211bf5b0bdac8"),
		nonce:                 decodeHexString(c, "e9bbeb3b80b340a05ed140fc77306040"),
		personalization:       decodeHexString(c, "dc3ddb5548d35fd2324990c828f281583f52d33fd0d12251be579328e6bc58bc"),
		entropyInputReseed:    decodeHexString(c, "232a16c04f28680cdc514d4fb1c75b6f14a9d37869eb1c52d67c57fa014c3d72"),
		additionalInputReseed: decodeHexString(c, "650ce1eeea7d17b7379fe219c79851e6afaaf8d6a7b815ee5389923fe17e0082"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bb72fdfa7a22863a7d0a0f9b6413a6440362e7f499548c19b387caf8421a3163"),
			decodeHexString(c, "dd0f81e05d1c123d796fe43e657ded057c0beea387ab1f13e2f56b5fe1557599"),
		},
		expected: decodeHexString(c, "67b482b1e04bbe6f0a40295e7b10fd4e1307799586e1cb83af524dc04cae7e8023c5ceb125b89e50f8b716af28bb010fce6c5fef106f17e5b4a0573360be1f81121dcb17cf59f9e3ca21f88128fcd3c1e46996f227d60d92afef1e756f869cbdfc7a4e5a2471d9e7b3e64dcec6b1d6ef8becd7d0386efba10864e6e9207a456bca2c5c6fbac37b05cf97632133ea85877c7e4d1c210d4e134d8260191c4e56ae2a157732aca11beed82195d4887d8bd5d8cd3b8b90c41b95c55d107b6456c1a1737c08ce56268169fd0c441a70b7ba68c2da14226c54aa88b3f53b0347e58e1819bc3f30ac398cf5c76ad4f4f5a536eb4900a17ca62f0e660c2b578933a1d3b2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_8(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "02b4e4c6732baf3398eec87889a1f920f3664d95271b1d4eb1adab69f420657b"),
		nonce:                 decodeHexString(c, "74c639a7b03577a4710f691aec6afbb4"),
		personalization:       decodeHexString(c, "5579ed513213fd3747f635d01ec39497f7349ecdfbb60986f6fe97e2ef43902d"),
		entropyInputReseed:    decodeHexString(c, "7d9b95efd2485b6bed2acc9d987ff06c54ec7c19cae5f8c39e91f02cc0e1d91b"),
		additionalInputReseed: decodeHexString(c, "ad2a61b2929be36a6e4708c1fb198dd589c5504f07e8a1c2d8f2a23e105be910"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2e88c78adf00397934af2fc48d2cddb25629d4c33ccd3b0c0d762ff6f7ca8495"),
			decodeHexString(c, "6959206356d610445da851c31defd3a1049364121b4f0b596a2fe9317b954353"),
		},
		expected: decodeHexString(c, "b2bae195959435894b8d0fb114dc7f2b703699d228fbae0e7823ccbbef20a17b5e3fc73aae9914c2fd9a2283699fb45c594c102d34e4ba3adcdef5b63388c27771823b0465f9a0c9e49d9c3c1d134386c1f28ff347df7b8cf740806c8354949586c5ceeeb71198d72a034ee50559364a60ce6da1725cf4faa7abc7a5062c4b64220521d47b6583fb7e54483ef537907a51375a6de006aef45ab2a30d4f5479f0fa37d9f22be9418e11b1466fd8d32573f667fe6861cb0833a275a0a41d69dacfbd6da24546898d4dbc0f25ef2bed696ca7b81a593b087e52fb63cfeaa1b379fe7fb139d44912b7e8714df3e62e0dfb08408adb03a96c8a5fd304cce4753ced53"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_9(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "fcf225211756b8373eaf96e7bb463b3eea6de44788b353d4463b3873f18fb133"),
		nonce:                 decodeHexString(c, "5bb5de4238cac3dc06fb88c0ae8e289c"),
		personalization:       decodeHexString(c, "94061be7d804f41d0d8b1315511f8b9bb0ac0b97331249e385f93a2aeefe4887"),
		entropyInputReseed:    decodeHexString(c, "14bf3eed5cd946d0db401e27fb49a3a70eed352106bfa83a65cf332b920f0fbb"),
		additionalInputReseed: decodeHexString(c, "d71e5439c7cafab85676de9045751fc2c8848e27ff6d5fd43e44cfd7ed1d84d8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4cd732cd61d41d43d93d56b66384bbc70cb838c32fbff7e1c130f323980df8f8"),
			decodeHexString(c, "9b12edad21b7053bca258bbe4910e80936c9e53c2ed4c496252654f72c3dcdf7"),
		},
		expected: decodeHexString(c, "29a9c01447c787c096df92d8351c2b7ee5ea74b977544e80e17469e6ce31fb73e3032b378d5878ba2cf01ff53688458ab9d356562897b025443998b00675f6ab145eeb23b278f3a92cbd78e5d2a3c30f5abd136a3c8e855a2c6e1bc242ad789de03e15b84af1b6f4839343c0595246ce2811ef3f99b09b0781e37084b88e8bd6c2ecfa20256ae7a8c5adc196ab2d66a6387f300a6dd6c946f1556a461e8d255066d5127c13dfda1f173f5b0cba0f4ef8f89d52329cdfdba93ab2fdb767b1f9d766fd6326f6156cb5f0fa02d9cd00d3cb9f2ac6c278ecbc51a74b6dc171fb74187b3452379cb695805028957d4368187bded9c00177f7bc56c0a5a3195aefff44"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_10(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "94b53a987e77f3664752284deb4e73af5e1ccd43966e5e8efa55989ec8266d07"),
		nonce:                 decodeHexString(c, "fa44bb3dcb777e16ebdef2f80a4476fa"),
		personalization:       decodeHexString(c, "d99514aea15c24ec3dad694f805012ef53f649bf904cb3d1d513f6499f7ef278"),
		entropyInputReseed:    decodeHexString(c, "a921a864645659b39deab78f73f81f6fc552d0894800a6fa545e0ba74a76e7df"),
		additionalInputReseed: decodeHexString(c, "0f7a0594d792f00d3c0e3b0ebc060135234ab4db8dc09f926e9ce26cf92c564d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3a53a815b4171f88375b23f511fb770da07ee6b83efc65bd288abd4267b5bc95"),
			decodeHexString(c, "6ff9e1258c5b7c8db1d7bb5181a8801f3eb07c49f8644da312f7aa66de86ea11"),
		},
		expected: decodeHexString(c, "c9af0f4c5cbab5ffd29e51346263106d74bf2ae23a46135ac79ae0086d291d83143d882c79e1e261debb42f59aae17d1d5ee2ae0133d4b42baa856c5ff451d8844de52c7aa89ab04728b03d070273b474e01b017298cbd23bd3baf21aba79545516560c0d64cd8a92dd987605eb1fb1c25c5beaba317c593a0803a1fd88016e8bbba5fd1223f1401325b4f6460671e4f4d1e9c2d1d74da351ca5f31f5a6d5be0522662763ecd524f511eb182438d0416174f7bde7f31e81918b231ff7702dded480675b6f0a6cf93518a2aa14c3cf86662d6472d7bcd8d7943d0ff5ed20674d80b189d42059bd66e87ac6b7cf1e00cc86d723495cabe0599183e2743b39cfbb3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_11(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "e9209dd0fd7bbc195dac9a61a48de3d8511a78e1496a2d213f2243d67a59ee9f"),
		nonce:                 decodeHexString(c, "bacb5e52f86041201b1b9baf9423baca"),
		personalization:       decodeHexString(c, "270d31877b90bbee69d50c99567740261ba35319593bfbbccbfd13196306ed78"),
		entropyInputReseed:    decodeHexString(c, "8d546720bfe76a5c8fef0051949cc6a9bc1b17f36e5c6ab13d0af14da4821fb6"),
		additionalInputReseed: decodeHexString(c, "4a32a48d08075bf96096da566bdb9726ba19178ec7948aa3933937c5d116850c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aa9ffed0d3cee6104bbc24f6dd13769c99e36e88f6f80b651995363b8fb9b71d"),
			decodeHexString(c, "b1a50313f2d77b60ead4ab3c93bd104483479e7383078af7f6eab6544b91394f"),
		},
		expected: decodeHexString(c, "3c48d443cdccc5be571abdf066d217b4928acd67807394d55fd7b6ee821ad8426a71a9bed5ea7611fad4ec22aeb512b74e7262a1a373e5d43bdcd97add45efb31a90271a549adeb5efe8e99e422b1ba9ab20600c11b6f234352a95ca18960c3f04a265d45cd74c857b84d0a2b8f2cc5cae98f135c163c6c5e5ea54babc560f3369fad27968f58b1aa32e289c8df078d78b0da7eeb3ca4922f1e0882712e233be0896a9a676d51f1881a522ecf21250edf9d74bf87d1b3176917e66da266f92c3ca487ec4c017aeb46bb153ce8834736810330e480a9741b9c048113e72219fe0b74b4e3366f5edda17d2e92b128f0890a63e04362fea5a8ee7132503a744c562"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_12(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "77ac50e2d6d0c97bbe61f0d6bfce7ea67aca0f231e9d3bad1a7c84989daea30a"),
		nonce:                 decodeHexString(c, "05bac43848cdd0cc33b041f801495e91"),
		personalization:       decodeHexString(c, "63caed5df0644669033e7be2a1a1ff3ed9ad8e0ee7bbd2b246f6326c68658de2"),
		entropyInputReseed:    decodeHexString(c, "e4856c297b8dab531bed952552850b67567b5124a86d35c2d3a248f4da906cfe"),
		additionalInputReseed: decodeHexString(c, "96da5daef5647b0279a212afeb2811756e1c90c644b14d1d7d77b10b06f6de54"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7662f18edcd373f92db5f6d61ac2bc827b78f548e9077c088f571aa3178393b8"),
			decodeHexString(c, "2ad1f6bee92dda295fdc9fd757f36537f55f127a586eb75c0a233564e7c984d8"),
		},
		expected: decodeHexString(c, "a84b18da2765e4644b3d6eecd55f1ed7c5c03d488624e94d9868a800516076caf7d811089621facf28136ca43ae74c5a7c4b41bb39fad3f786ea810d1df541ab48e42db990ce86f0457745a4621a1b2bdc37ca0c98c72d7d810b7b41e32fb62ff03da1ae678d5da4f5a864488df3bb0982afd2d9399cc778e91bb954e8cc31c5d40c33ce8db64bd11401897b92b17c83e6046d58c3b09af827183efdee4872bb6d1f1762b20969c83a834e58dcca5931bc501c1b27a4fb6a751df7ae534aecb470e150587c52cf3c6b6299527b6592d54beada1597882d1bd211385e387d8a426df578dc1b433758f094c8c4e9b39dfac5933633106825c7debef0787e76e5d4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_13(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "332b0c2b582b4665cf36cff17983a26c00216e77cd9fa22cae409a8c32f965bc"),
		nonce:                 decodeHexString(c, "63c44cfd27d4d15fd3131746852e7148"),
		personalization:       decodeHexString(c, "b53c8030dc2600f26f42f6ab885264b2e2c022297ed5fca9f7ae71ed5fef78e6"),
		entropyInputReseed:    decodeHexString(c, "fe28af0cab1759ca4d7cd103969c1c7a71134e1a0ab9719b41f68d279c3e7976"),
		additionalInputReseed: decodeHexString(c, "4c07c1ea696ccd5d85b41a4f8019a955b6c0e2efc38222aa79eac1e205a26582"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bc234f145dc3b2ae70f6e61efd408e76ea3cc440d94f1838cf3a16e087a01d10"),
			decodeHexString(c, "48a782454d81b3aa5b81ac900d6b8d890c253c57bc73acf40c90ff8844bc6110"),
		},
		expected: decodeHexString(c, "f0e175436ab3fa52429ea5484c3f5ee6dadac1cf141ae01e84a9b5945538e2c0eb3e65eeca185874fc2239b853a57c780faff7701a2547e1ec872d66e692a5b9aa9311484cb6bc5696e26139b02ab701f33a40046e7aca3149e2634c20212d5414d99a5ce6249ef11f0cdefa657eb20a2df4e411059a05a14af9e0b7d3301541c1b0d525cc6835c430871bb6dc59dc3a71c1ca53643cbef28abd08ef7d77667c9290996a120a3888a20b24caea58be730c7677f0c5a8abc7b579438cb2c27f5bc653c83745c0024c1b0fe5bea16a32bea56b05a8f808d09c5132d067f928504abf4d1b502d0463d1e445cf5e87077a4966a35b9107c54ff59b7254919ca3ee21"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed79_SHA512_14(c *C) {
	s.testHMACGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "6d12bcb320adb0cdc50f73a0be4f4e2be7f4bad6cac10c6dfce048c61eb6b62d"),
		nonce:                 decodeHexString(c, "36164ce7516d11a10c84019058e4ffcb"),
		personalization:       decodeHexString(c, "1e95f9d3951d3115ae50f5a0631ed8f9f2fa110a82c8335862058460d48506c2"),
		entropyInputReseed:    decodeHexString(c, "034a58df02814310cf0bb6ba62374f9a549fa661b5f5d72f8999b42591d18168"),
		additionalInputReseed: decodeHexString(c, "18400a44b4b3228c8e9046603729565fae4176f8b83681bdbbbc2cf7d47e402e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "babc24fdb186c0c0c1d10c2187c62c89b922c654b575bdaafe535415d11e63a4"),
			decodeHexString(c, "dda30b9853d27d84ecf33ad8449e33e9100fd5e3b062a20c604f9a08b2b7375a"),
		},
		expected: decodeHexString(c, "14ba74aa2971e653ae1423dba404213115b8e68c9857a4c4ca79aab8c8e6f840842d6469605020875d03da674809016e756f076f32a371d9b2f60b38bee599b52a6177db19d24ebb530f0bb8d1030a4e9f536009020057a5f7dbb9203401764ae20fa338dea0867b7bb30ebe733e3ad55afd14e9c9d0b3b3a85d04748ec1e4f61dd4a7d5d7a49f9c66af117cd29379acc7a33bfa9f5064f2bd55b9c8595ba35a1bf5d03ab642881c16153b178adb85d6d7544dda6211028a0880da45beafde34e51461919b4a6bb45962bbe6a24e07e8c2c1ade036e6079755dc3faea2ec4290a78c6bdd5a1b67a4fcfe68c813d8f16a601c0e80c3e0f2c619f1afafd050aa3a"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_0(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "b7c14908d25ec532e4373506b86a6ac70911588e7ffc7b71"),
		nonce:                 decodeHexString(c, "7a3e0dfa354d917aaa2f06d6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4217128f67ae79b2dea23b39b4bed313bdda43a7c6d3f512"),
		additionalInputReseed: decodeHexString(c, "bb52c530e10bfdfe957053f2325c4c437696332ff171a132"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4b07a92324753d2179f3c3995a3ed1dcd1a7c561e13352f2"),
			decodeHexString(c, "f37b2b2b4828663d9e7a346782e0e174396679a5bde965d6"),
		},
		expected: decodeHexString(c, "4d34a5340d4d636201815e22ef5fa1dcb03874a0303c17f263b17043defe847a087c53bce4a700fc99bdb1f7fafe4215a371c3fbf77e102c8772ccf5e91872628d08e39a747800d87b86ade7b903f25fac26bd90dba8fedee70db5a8512049cd82214b0556d16579e98afa26e3cf2d82"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_1(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "33b778eed11f348a106fd2354384eaab33daf4ce2c043b63"),
		nonce:                 decodeHexString(c, "52998cb0a7fa19db45fc7181"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3598152622368acbcded7abeba24bff9bbe81f6a362e23bf"),
		additionalInputReseed: decodeHexString(c, "b442dd2cfb72a21898cac07787c9a9014bc48bbee9042b66"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5e28315d43f91f930b338005ee5c7118310184d0bdee14ba"),
			decodeHexString(c, "7e89b31054328a08281f31cb317e22084daa8e53638f4c36"),
		},
		expected: decodeHexString(c, "0108fa7f1806732bf08d8b6d839473b47a2c4a9f8dd97a5569f192dc224f408f036b109f49597fcf931e45616bf04af589ecbb4787666c5bc10b07102403260ed6fbad7b0717ad07c4143a5173e2fafc7dbf5f19f54cb19130637b22733609ac977d8e2107442c144e17fcf2f8cdc6bd"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_2(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "4b37cdef69fb585f71bc747abee05ac272bb5a2069c67645"),
		nonce:                 decodeHexString(c, "0103794c9626e2605faee95b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "51b184cc6f6f4ffc470808774c4c5160860fd1a48bdc9ad5"),
		additionalInputReseed: decodeHexString(c, "ecf5fdb9a9a5883a6a94a3f13b6aa8452c6dc91f63864d1f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b9a091b70c059d656601eceeb0bb38119dcdc91459241a5c"),
			decodeHexString(c, "700faa438f51f3e284aa044566c91fb864c17ab7a6b9ee04"),
		},
		expected: decodeHexString(c, "9b1e5f5635d2004b8a5e67edbb19be83ef7dc1597a810bb209ba91937899a5f07b472f084b380ff50c20c504f49501165809f0897655b198605c204d23409ffa4b1e78262bfc77c4d916eed129b5637f2cef37c82653a592a0df94547b10f1fc1633d89bf2181f8e98d6f4f0056554a6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_3(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "1302f7537835fb7150372a5052b8a3713b55024ab4c7bc45"),
		nonce:                 decodeHexString(c, "42ce02e4928b7e077a1f18c5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "37115d3f6504658630fe018b5547dec1fb57f1b1a3126510"),
		additionalInputReseed: decodeHexString(c, "4a81d8ebaa252f9db06cf21299f3affc999dc5fdf6cc5377"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c3ee9f8d4c518981abf3b744bf7a246aad97df03b2ec98a"),
			decodeHexString(c, "8e922b368344c594c705a28f595ed152f246225e17803550"),
		},
		expected: decodeHexString(c, "c4cef9f5762fb8294ac4547feebfb568e87bbd8c10c81684e5a6609ca034cce533895a905157e391e952963da5bee5184bc81a5743f00f7264af696fb3d1d5b261e5841900ccf1846d9181c7e6d3c6d9a96b679a2c388681b93ca6cee2a06c702883039e78e5cafeadbc8f4243e85220"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_4(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6b6f2bca78dea2b8ebfd6612cf715d72fed0ac8d01ac7d08"),
		nonce:                 decodeHexString(c, "c7e29cf03d592952369ec104"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7797b529827b909567b8b6eb085dfe654de2ad41b0eab07a"),
		additionalInputReseed: decodeHexString(c, "3c43bfe4a4e25167dd402350aaaefc4aa26bb3697f9db2db"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1d6c759849efb4e815badd6ae996527623aed03bbe9dc5c0"),
			decodeHexString(c, "e1214b1ba0b2e1cb1077f1792229d96d3ab0e30f3465b04d"),
		},
		expected: decodeHexString(c, "47d49faa88e0db1e0548ed6d7564b8a6daae5523a95b32326bb063f76e804b96856452347b02c383b2807af0624573da99fd6fcff1d4c3509242a5f984917177b49ef81e73d8f4cb8d8ec3d0d8da59fb054fa7f842a250e007adeb821a4442f8f0ae5f5b0d7c148b2ed6d84855451abd"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_5(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "a070fee3846b3c12a40c322c912995b1643f8403de115037"),
		nonce:                 decodeHexString(c, "873fe912135e109d1522a8d0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "22b15f03cf3e4a95c14393e4c26ebef7cf58e9b3d65ef40c"),
		additionalInputReseed: decodeHexString(c, "a7e0259152d72fda9359ca61e11da9a1308169e238adb462"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2095a53a0e44d9764cf3febbaa8b87a9358d36fe74bc1da0"),
			decodeHexString(c, "5da20fe2927a82382b64d317b77627f1e377d996a276e88f"),
		},
		expected: decodeHexString(c, "722176148b18ff52d91587e66e57259edbecd30001f463282bac9fbffd41c8fbc18ae456eb54b52a53afe8e71a8ebb5ff8a8eb2bb825eda55c861f6fffb7e1a7d173804fb8f8510ce121be72cd0ab1df2845ac1c95b557360ea4ed198b27c15865e202a0bcb8a878aac72a2499598ff2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_6(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "8bc9d8e5b65c5b10057cf1df4bf0ac0d1392a59d4b0b3ba2"),
		nonce:                 decodeHexString(c, "2d9b20b5478190f68c438e74"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9d0c35b5580125e923fcba4b8cd89def00b49002f7daae3d"),
		additionalInputReseed: decodeHexString(c, "31bc4462ac1a92768afc40d0ae40d1e860a550f3b8bf06c2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7a696088db1ccd7bbbf386067e1181c9a56a24cec69fce9e"),
			decodeHexString(c, "e0d78c96ed68c1a57a8bd60bbd23219d4811c26fbd427bfc"),
		},
		expected: decodeHexString(c, "916b21ff44499598b81f11b9261b859a84f76a1d4dcaf2cd7b0619446bc8b89b6bbdf2fd0a2cdef34f7e1044d34883ec7b0cab27d4a01f2208e625139f9f18340489821c86b1ef561e3659991e6030ffa53f810e77cb05e053bc209429a7a73d9572c6a528dce54b58df6cb41201ba8a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_7(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "8cad80fdfeb660adaea12f6b09e3454680bfad8aa7a9ba1b"),
		nonce:                 decodeHexString(c, "ded4a0c1a017730c3677391d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4109cc7211b68ee24adadcf40679145c164e4aba4dfa7178"),
		additionalInputReseed: decodeHexString(c, "64738efdeff8a3a149c9ef48b9e16918e22b5400e2957570"),
		additionalInput: [2][]byte{
			decodeHexString(c, "30c27e7ae705f67c0bd5ada11503e25db0ef0898107d8051"),
			decodeHexString(c, "158f55a7b2c6bb7e03606a70bdd0edb68ef314fd8cd5a0ed"),
		},
		expected: decodeHexString(c, "497b75aba8cf1710154aedb1a837e71fea9a3926641244e8b01b4015492c15229f264a0f27ba405b2eba89340fcb0e1d3c0d97dc7c9f2a0695106ad670fd0a65f2b074d00e7feb439a15420d6ed91d433b7ba32e38c75e4ba56e8dfede7852442ab6221d2d82c52c6a3586ad80e59d1c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_8(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "1da94740c53a21df0bfd5c242f2fef1ed58f86ee8ff3d4e5"),
		nonce:                 decodeHexString(c, "e6f28e99bb09e5f7595c7d5d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "bc72d8a1e34562bfb79887b88f160acc96167b27bd5449bc"),
		additionalInputReseed: decodeHexString(c, "77b92f92520fa0de5f9a37ed2aac64da2c9af9527c455f5b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "93453f9fe3016dadcd0c82647ba413961d7fd57aa44b554c"),
			decodeHexString(c, "2dd645efed1ee6abc4ae84f4c8f63620408e1674ce479178"),
		},
		expected: decodeHexString(c, "f416821368ccd733650f7beab4b89ef6487e1531af06bcecb705a4c8b466df142a1e234270e41b127282603823170f5420bb5a1fa9906b259bafae3d2a62046a3964e2d45254497b1c110e3cabd26267b554d064268556df36bd43c5b2d834c1932991208c263cfbe89e7f14cc342783"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_9(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "bfa08d23cedb562a942e3b98f2e85a9395ced12c94e62384"),
		nonce:                 decodeHexString(c, "b7956e5f3fdcac12f6ccf090"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8d5e60b60955e10e940fe50ee3cfbe2c01935a9d2d470f1b"),
		additionalInputReseed: decodeHexString(c, "fe96aee4ce4d591897367bbf69a8564af4dcf5bc870f0d86"),
		additionalInput: [2][]byte{
			decodeHexString(c, "78635a66ab4696f60f0ed6bd1cb9a43267713b3ad311867a"),
			decodeHexString(c, "1fe7fb636c75d64997e8a78156eaf658d7f6fc655e65eab8"),
		},
		expected: decodeHexString(c, "eb40d5c4eacc95b7eeaf94efbf83f1d17d3bfe7639947d11e7955296bd5b06b84ac3ccb5c50e0bd9d621b1ebeeaf718e7db01f4ed2c54ef9817fa2185458b7d4dd197b713e068b46299d69983fcb099966ae327edfc6cbe8f47982d5908e7598a35fda8acfc828589ee1282bd63bb586"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_10(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "b75683fbeb8d98295aeeda4c4aeab71150f370f0b787d57c"),
		nonce:                 decodeHexString(c, "dfd65db0da58a0424be41c12"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d10f7aaed67603b7c4ae79111be9661539888fe4fa8bd6de"),
		additionalInputReseed: decodeHexString(c, "024a79c9d1fb59da6c1222add4a67802bb85790f97a4bb10"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1376d08136ecc96b50e3bb1637608f65ab5fdf965be5fc3a"),
			decodeHexString(c, "b92448a06076fe727078d4119f77ffd0f92a1fdc0f63e2a1"),
		},
		expected: decodeHexString(c, "5a269d107f6c1a456135e577f7e90784eff662607ef396204f5be1432f12dca012d35f155d303a36d48a904200aa8f6510e01474585c60a8df1f5968e6df3cb12bcba67c9c813b7834b2c3edf314212332335c141bdd2b64b46be0b0a2c8e6fd6928c2c1f5776ea112c1b5b9d64d0262"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_11(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "1b4ade20db78ba10eb5c167283ce796c1bba5253c48059a0"),
		nonce:                 decodeHexString(c, "2c081de4d028c58ef1c4a50e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a57533a807c6ca794d504c414b237a2b473dc0dae4b439eb"),
		additionalInputReseed: decodeHexString(c, "eaf6e4e35bd1dc3289a1cfd5ae4b52003f4b1079f1a66e7a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5eeae28922ed7e961f5f115be3e83a0e8b09f6fffaf6c97d"),
			decodeHexString(c, "c1d076eeb04310cc74416e550b007c2b6ff80810cf1cdd93"),
		},
		expected: decodeHexString(c, "df9cd1b291c67fe246d3f81b2f896cb7ced29d7701d08fb74717f6696db874615ac9d4076ec05cecb86060bd722419b2c74e637ec0c1fbc11444c6fde8ce310755aa624c44ba7b89d2ee68cbe5128fa812a50b6d01cffa08efac59ccb913e993d94c93c35d5c1d9d88e19cc17fabee1f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_12(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6008a35e1da1c88d9b3ed5cbaf6b9cc73c9d85784a7cec56"),
		nonce:                 decodeHexString(c, "1b5509ecaf1cf81d41dcb2df"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "939655c44231f6f88829763b3bac64d1287e8873cf28a626"),
		additionalInputReseed: decodeHexString(c, "89162ca09dbcf47102d853b0663eb32865e6f1da03716fc8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "884a90b48ccb4e2f238c452fc5f533681efca351fee4d44c"),
			decodeHexString(c, "a6af8a8e2668d6e57697ca27f513f38aa57a86317c0f1047"),
		},
		expected: decodeHexString(c, "458ea9125418dbc176db2a3fa80e732b2738b63dd813ba1ba39d5025f483dc33f0e25fd4741cba81262000b4dde5edd352a9013faf3eb0dd4fbf7a954fffcec5b61a1459e822cfef5e851251f80a7fb840e38931c6b15f07e9c08d05ce8fdde42f1369926ef602aa4d48a40b986d6fea"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_13(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "d0c4696ece0fc5a8340c5f3c155411de58bffa2f7912097f"),
		nonce:                 decodeHexString(c, "eb3f963def468f36e2b9636f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "bc444e2cff5bad6b3ddf4067af5d73a5f74584553f5d5339"),
		additionalInputReseed: decodeHexString(c, "41a903b853717191c636d242d95e7ff0bc16763ae9d225dd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "05f9a38bc6e748db3a7a45ed0f82a023c4c45b4cfd9234ce"),
			decodeHexString(c, "8e10d90892b480fbc58c525a3a3033c25e7fbdc1631bb841"),
		},
		expected: decodeHexString(c, "6d1342d0e9874dd83f220ae6582413d834fa71d735de8b83e51d7d4e3aa4c6b11a8edbd9e0b7bb5ca2c6c68310856f7703324f88b0408115167dda6deb529e533343629c9519fbbcb78344049b6bd82771d7b4d4bcbfc052f96dd5cc90fbbf2501b69fd97ef36ac087c8bb186e86330e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed81_SHA512_224_14(c *C) {
	s.testHMACGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "c1b77dd5fa7957f168fa634b4d49951ecda045f49d54aa6e"),
		nonce:                 decodeHexString(c, "e2877fa3588be7c04aacb190"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9ec529738d95201b863a487ea9ea8cf0c234b1ec5b16c7f4"),
		additionalInputReseed: decodeHexString(c, "7128c667e650167eb526e0d5ac029355282ad763742be42c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a5bdbd6b4a3011fd773891734503a556e8ed4e62358c1e9d"),
			decodeHexString(c, "ff0fd7e55b4d30abe8db5f82a9046c591050177beb49f840"),
		},
		expected: decodeHexString(c, "e09dbd934a8006c2ea31af175567c6c9e759b3c206fe85d59c26e2164c6827ed78aaa719cd0f5487e3d42d3cbcb8ac8c75b3efda17642ccd793e0f6f8ef64eed465ff756120e51d5683334059f012dbd6ae47e6d4f7cdc441ff91f09ed72643e479f3dcaf4b0ba78671cb807ebaa2138"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_0(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "49b3828d3a3791daaba183fc6191b539d69cb23f7eafda11"),
		nonce:                 decodeHexString(c, "51b5ef025a0a815de8f7b3fa"),
		personalization:       decodeHexString(c, "e2fa4df4ed742c618fff06381b62130c0ba50fa1e037de09"),
		entropyInputReseed:    decodeHexString(c, "117455d054ce5eb15d005b66de39ef4b6af811c1bd3c4f1c"),
		additionalInputReseed: decodeHexString(c, "cfbe003db17375d41a1edfa4ece9db28a2a9ad9349975b2b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "243851300d4d16f530c316f705c86136763c245c564b8bdd"),
			decodeHexString(c, "96c4183e8bd01a25b8054917927ede7c5c5746a38c8bc62b"),
		},
		expected: decodeHexString(c, "29baf90e03114bb4ae61eff71209617ffe7d36a9fc1db52a3703ae041ca05e87df8d94a3b161b71876d5784d4cda810cea69c58e3eb897680d19c9b6e8f507d931cb0e60472282db39bcd44167037a72ca11107ab1c44f2559e0c653cb530675ca511f87d761cddf2b04c0fbfccbe2ff"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_1(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "4952889bd2ada06f00efc9b6c506e1897ed5b5c20c235164"),
		nonce:                 decodeHexString(c, "4b052ecb64c85b4f3d0eed5c"),
		personalization:       decodeHexString(c, "4cd87ab831649a0530d5ee7aa37a9d915cb5c91d670f8891"),
		entropyInputReseed:    decodeHexString(c, "c1925f2ae881b2ab83c6a5d7f9fe60e394df3791f42cf77d"),
		additionalInputReseed: decodeHexString(c, "9743f5807a5379c1f7e7bca2f6f28442c0ce7531ecc3e8e0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "60056421f4377d0dd5d65a592ce9491278d1b6db828da241"),
			decodeHexString(c, "0b1d20f6db304853e8d8d1dfbcf03fc32d133d546e78e64a"),
		},
		expected: decodeHexString(c, "45c38347cdb54ddbd408a6a739c51d20bfce02df8b51c632e5192ecba43008c3b71122f3c094b636a0f5334d2da1b04bc6b4b2669b9a410d931795cd71c333db44d32bf1cf7c7353630a5969bad212ca2db6a1f1331058545b4d8186ef72a344afd6b80dc44ec8f1b4afd0138b3b936b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_2(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "2400948d0953140623387604309375a91cab6c3c6dfb8c8a"),
		nonce:                 decodeHexString(c, "6ada879b6d97adf2358c5da7"),
		personalization:       decodeHexString(c, "95d772ad2ef0d0a060632e009b5f9b2112c9503833a55253"),
		entropyInputReseed:    decodeHexString(c, "e76139ce7b78f16ee76ad065d8319f311a58066e9208784a"),
		additionalInputReseed: decodeHexString(c, "de6a4666569f7591548ae0b66967a8741ec1b68cc035c438"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e5f373960312b565aec7e61098d090757d85a6bde4b93f7c"),
			decodeHexString(c, "362deb6d6839fd8e5e9d41278df443e35b8d54928dee59bb"),
		},
		expected: decodeHexString(c, "e9f02297d5f370053ef13b4a02dca5a95e0f59a5eff60a37f2fafc57f0770e6547152cb2d276bb92dc603ecd1576ade92bf367b57b396d201276655969234bb7896ccaeb678274693f7959a8e5af1b3e0008bbdedbe84bdcbd65671c68078fd8081868450334cd81a65ea24cf22d8a51"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_3(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "987df22fbb1a47c86b25de831b5ef61628cffc325e64a577"),
		nonce:                 decodeHexString(c, "e3ed2b3b14f304ee557bdae1"),
		personalization:       decodeHexString(c, "0d40bb435285ab5a33da4b4c155e5e610d55765390c25caf"),
		entropyInputReseed:    decodeHexString(c, "0f5cbcba97722d6d52d071226d237145616f64e37885ab60"),
		additionalInputReseed: decodeHexString(c, "941910e0c9c486434580abf32b8d02d2b43bf5adb6da6b71"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f07f61dc6519f8c39888d5943b6b364408e718c590505c9b"),
			decodeHexString(c, "6a14448c9cdc9a5226c6eabf0d59ec6a6b7736a24d5049a3"),
		},
		expected: decodeHexString(c, "38c9a0312cb69afb0d609c8263e154a406fe5d4ca38e513ddb1e70083eece28d3f35c63e25fbf0ee3ff39f3f1a1d2371fc574c5fb689b6bff285d849fece9c678515bcce4426a1a1c8b2bb44b01216b2c68f85307e948c16f99eaea6c3d2d609e39fb232037a60d0789cce7aec1ea6d5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_4(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "1048bd7fc77a36393b337d64c01e7d97b86a0f4ccf7f8028"),
		nonce:                 decodeHexString(c, "8dab09c43b448a7f2b6807cc"),
		personalization:       decodeHexString(c, "8ed870652b4efc2c0fb6506999afd70fbc6a6b83a7824772"),
		entropyInputReseed:    decodeHexString(c, "5bae1bca1eda42149c0f49e1b779ace6637c8e4b636f0ac0"),
		additionalInputReseed: decodeHexString(c, "d06b7d24a5b1c68a0d4f47a81849bbf8c678c47dc42af0b0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f6f3e54042eada861e23f711867702d2cb03a950a321e4f2"),
			decodeHexString(c, "c79316bb3d31445bbdd15f2387c57ac466d45956d63d2daa"),
		},
		expected: decodeHexString(c, "ffe06c74544134b13c710978f01d8b60bcde274c9464d2b92f68f03b7f3853a76896bf6dcc7ad09ed41e31ba26e634a1a48fa1de0ddc21466b1ba667096649817c7d2e31c13873b07ce8ea7cda4d7c5a63f3249a07d2be7acf4248fc1feb9cf11de7529698ea9bf09b749579848a556c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_5(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "41438d8bcf066db21183de7163fa0795ea6cb1d7e748cb74"),
		nonce:                 decodeHexString(c, "353fbcb9c585d4a41edfafb9"),
		personalization:       decodeHexString(c, "fbfd6085092195a2b1973761401caeb16744af6115f6e0ce"),
		entropyInputReseed:    decodeHexString(c, "45862ef1165cd645010fa0f157451219dbf740d5ea60c3ed"),
		additionalInputReseed: decodeHexString(c, "b8a41feb519221826399ac0d2c865c96557c38f045a1893c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "beb12996d6d64e7a46f712e42410d1ec8ae975213f7b37ab"),
			decodeHexString(c, "ea4a60054f6b483276d11269c9e67f4914c993ff63e1d6aa"),
		},
		expected: decodeHexString(c, "2a8ddb0c8cdb3837c80ce1b9cd37280e8d2190d60fd175c466e89e91bb369217f31ebecaf718a8685cc71a782494648a70e1e22ee3948d223d20d81924cd5fde826f4054b953d4f342d2479dd2316ba4d43c6e121c2c94c68ab4612674ddef3ae315b8fe643179f67d56dd5454797c9c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_6(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "10dfb97e42ddc0335c5bc1e0bdc9946c9981a79c93c2e7bc"),
		nonce:                 decodeHexString(c, "6d77de8f8ed3f8d0922676a1"),
		personalization:       decodeHexString(c, "ee154a5cc5d13c219a09c1612b8fdb0c806efabff147df3d"),
		entropyInputReseed:    decodeHexString(c, "917b6dd74dfddd35d1a39c76b709520a3a3868994950c806"),
		additionalInputReseed: decodeHexString(c, "46cd4ff692092a3972f6f94d0987f741c2e9ab876bcf1f09"),
		additionalInput: [2][]byte{
			decodeHexString(c, "11631e48c7c81649668fd45dbe612afd70be64cc9a511eba"),
			decodeHexString(c, "af282b50be2121512d44e7540396a7b76093176070c3f843"),
		},
		expected: decodeHexString(c, "2d516dcddf579cb408408ff44a5cda00de601cc2f39fc59fabbcadf694236beb8f0c564239b6fa4a1f7c109c7f381077ca026c568e03575954ab9815d799a4a4728cb1ebcf593f79530e7b65a7008846e59180fb38c6270003af9385ca00c7c0ebf48745bd3c69b438effe382d620ae5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_7(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "45bb3e34eb1e099a1e49779d8c43ae7b5d1b0926d827f704"),
		nonce:                 decodeHexString(c, "d39dd79d6b6e5e9971a2a5a2"),
		personalization:       decodeHexString(c, "c19e7d1e714ab7a688b9db1fe2ef8ead6c9eb4fe843f3f7f"),
		entropyInputReseed:    decodeHexString(c, "697f596d8fb3b7929c613b95a512f7e55e279912688ae6ec"),
		additionalInputReseed: decodeHexString(c, "3b6938b4e7b4770d3ac1ff18d58146afe4a46f9f8a32339a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4c91d2d7b09ec655d3e5d20978d23f7d00409410371c2872"),
			decodeHexString(c, "d687c28a7a6732b74f796557c753478daccf388f440f93ad"),
		},
		expected: decodeHexString(c, "f4604ed31d387f8f5cd6b2fea1b402c09e60063d3028d8c693343b6e92c9369c00e0a9c3445fdd15c986b94784e744188a7816067fb36439252f7001f610b748f875bd28533802ac661f7501f41368a91bed94aa5a79026ae1b3bf96d199b24317c271f58495555a2c60c38496b78ad4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_8(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "39ccad173be1b054fa77c5c372b55be3d1302511cccb4597"),
		nonce:                 decodeHexString(c, "27d64e8c1faecf6c99f907df"),
		personalization:       decodeHexString(c, "fcbd05b3902a40dcc72f3d04e2dc0ecfd691ee87f7ec5fbd"),
		entropyInputReseed:    decodeHexString(c, "56604742f2b193d5f8040f9914b7f9277dc4238b1690a48d"),
		additionalInputReseed: decodeHexString(c, "81f18c0fa49281db6728780a69106b2ebe41de8f3c526248"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9867ad2e0139c3706d6e11e8cb5e67c418433ddcd24e61e8"),
			decodeHexString(c, "767ff3099348c7efcff4957473bc0a2e6caff2fbc5031a91"),
		},
		expected: decodeHexString(c, "43f5e497dea0acd6e2e2aab59034a6f71da82abd9461686e96a551d32f480a908a8dfe312c7af564b152d77b05596407d177ef5cf2751a707ec80b82e25ff44c73cdbeda7729b234c4e728d0b0152783a1a770841d5096814adca27b8e4d1c2ef0bcb4370c28f913742362a2ee403dd2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_9(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "61df1740c38e8c9caa0852cc6ba866bf9db0eaf882825635"),
		nonce:                 decodeHexString(c, "c5c1166c9a868c68af1eeba2"),
		personalization:       decodeHexString(c, "8e623a22207c9d5ee823b0da3a81768c9e0241c108091f53"),
		entropyInputReseed:    decodeHexString(c, "c4211f3f53d445e62c752f3efc96e6a13bb2aedad5ba50f4"),
		additionalInputReseed: decodeHexString(c, "e0503884f5ab14fbddcceabe042a84371a842cbd3c0bfd2a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2df76c736e4c6a1705505bb9bfaba504ad2db969e2c2bef1"),
			decodeHexString(c, "c50c6f864965aa508a9442563d48ac6891360f30c8077f5e"),
		},
		expected: decodeHexString(c, "09b64fb869cd9e0daa7ab948d668e8ec46060da5e47096ef4f5f2d9b4614c8ee91261f50c04b185d04bdee5e27db209ceecfe083dc8904203eea9b25f3a6dc25b555638d73331a841c8c027a1a489b5ef6d6bd383cc0eeba41eb56fe0d260d8934ddc5d22cc8bef66ab97021dd2b72a6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_10(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "462acde1ac157b370df10d20a6a0d09cc635da4e3f185f0a"),
		nonce:                 decodeHexString(c, "e53e506fcbc9e9b9cbf7e8c8"),
		personalization:       decodeHexString(c, "62926f1e10774cee0826b4ee5b50cc897fddb4fdb92c9fcf"),
		entropyInputReseed:    decodeHexString(c, "c2c75ca73384fc619160f1b9a7a3ecde1e6300dd4fca3194"),
		additionalInputReseed: decodeHexString(c, "eceda7915784a93d186eccd47628242deb36dccb5e6a80e3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "59490a40bd6861b5b6d31da90b0d4582fc030a11705892bf"),
			decodeHexString(c, "8158e79be5c97d8b46ae82331dc37af536f3942f631d3d37"),
		},
		expected: decodeHexString(c, "a2f9eb80866bf1d60177256923fed1ace183da5a4b07420a9e72bce9174993d99f6a3d78926a8804ea1af9d155bfda9d50527323fc68b2dc37db73a69e818e120d4812635365d15123656206f7622a4919f881ef9a9cd3e26c68f50ade0aa6c77f33628171a14234b94a4b096c384228"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_11(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "5516a172ef5480cdf6a0d401d3d189ce1f38e281446b090a"),
		nonce:                 decodeHexString(c, "cbceea597df111e186d69eea"),
		personalization:       decodeHexString(c, "f4bf21d9dc52e652aab3478805ac0705c17815a585e20f39"),
		entropyInputReseed:    decodeHexString(c, "1f509780f0d298e85b4490560405506f0ca77ce6c1948494"),
		additionalInputReseed: decodeHexString(c, "632824e909ddcd0d0464299b25d7e33c927e40c0ea8a2fba"),
		additionalInput: [2][]byte{
			decodeHexString(c, "07ba8cef46aa691d5495f6fddd1d741f7454152afc7a0831"),
			decodeHexString(c, "3598965ca74fb78738e3c8a29bf1ad73119ab8c38fd44dad"),
		},
		expected: decodeHexString(c, "243ec27e8a8c7dd0a0135a76969d1b684d7111393d948b5de59c9a790e91dbc94e7d414ff7508274b1353487396b2b8f23739a3a01a6453627a2af43f2dbacf1f13698ffc50cef55d7240ec050a1080b691865de06cec22440029b3bbb73b335613e8ee5cafd5210ec6ca7cc23b14489"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_12(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "ee62500843f90f45786e72aad13b28ea032f102b5a2ddb1e"),
		nonce:                 decodeHexString(c, "fbbd89231d5e640ee329e5a1"),
		personalization:       decodeHexString(c, "bb70f83c7badd341a202853f3da2bffabcb3d894f061bea3"),
		entropyInputReseed:    decodeHexString(c, "80fae685527888a94258cf0dc322f443e45a353545d21a58"),
		additionalInputReseed: decodeHexString(c, "ba18afb540e841caff44db42f9a382ae621ea30c81939b85"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9465f9ca7200a961bba2231923b1955ebc9f250b38965f40"),
			decodeHexString(c, "5ff0d50f64dca4fe4043608fd7a5767001fec09a37bb3428"),
		},
		expected: decodeHexString(c, "cee1b99c94ab78298bffb4f6e6c928ac5d4d3ebc64dbcfddac545c40f71b520ddcf214080db9e85d7a57df6af4325514dfcbacc105cb84b11c98878546297434245626f7f4b0c4c6e94343eccc28601b45a0e8d8ab5422c3096142d5afa225724705845cd7248f8e5e255f36359a04fc"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_13(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "35e3f4afd35ccc19979d7f910b4a25fc6eeecb9669da2527"),
		nonce:                 decodeHexString(c, "d1284d17a3ea856dfebbc865"),
		personalization:       decodeHexString(c, "fc8a2354106970921c4d81ec9051eb20ea0873920ebca624"),
		entropyInputReseed:    decodeHexString(c, "214f85e88ec657d8bb030d3b0bcdaca63880007a3a87636b"),
		additionalInputReseed: decodeHexString(c, "1ee4d6685dde9d29ba08e701255c4b7b1602a60bf489feca"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f584629e0dfb26af2075500208d72c97f54ebf100e939446"),
			decodeHexString(c, "992ca90f9738e1feb604ae2390aaa75f19f55cbe3dd119a7"),
		},
		expected: decodeHexString(c, "aa4b0f511aaec2c66df15ebe8247d3b1d5a4d4c46a4dbef84560450209e05f4d7b6004721789ac2e89f02b008aafbe6f8e00ac2d3004ccf1743e169520832847cdda1214abe117fba23165530e8ecaa76b38547d808fde32ca17e53276044649b724da79ba71e4613d6cc0a9539ac204"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed83_SHA512_224_14(c *C) {
	s.testHMACGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "4e7f347f5bb041f85685b67d2cdfca77ca707f815ac8ce4c"),
		nonce:                 decodeHexString(c, "bf21b10d43bd7f5116417461"),
		personalization:       decodeHexString(c, "dfdc8f45bbd4bae50ea3f2685de837c8f57b483f06513a62"),
		entropyInputReseed:    decodeHexString(c, "71eb7c6b5c4775f006a184e5c556288c812429d28e0ad3e7"),
		additionalInputReseed: decodeHexString(c, "dbe29882c22be59d5e255c8f583258acef52a369c9275654"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ffbe30849889b896abcca991442d5cfd8327b2f6c112baf3"),
			decodeHexString(c, "5153b38e3d50e697b67fb80676c24da1a53fe39c53ad1691"),
		},
		expected: decodeHexString(c, "81435661e69572a912a784c113d3133d41ae98de4388d277ec15db139224791f6beb1776a3fa9b685f82bc38f96656a98635bc57d2af6f03456ada9a7422f1e629c3b7f7f971fcce804701421cb9b5dc6fd53074ae7be0d325b0c98e743db0b12b326712fc9c37b3f9559303233f7ecb"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_0(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "538f254492fda7e1f15801e52d294c9806a2d1ff75d2827b"),
		nonce:                 decodeHexString(c, "b46cf28b419f3054e16149d3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8bd24a4596c02ba890515742f959f787474d89819420272c"),
		additionalInputReseed: decodeHexString(c, "a5342611cca5d52352382ae7541a1c02f955e5eac35aa488"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bad9ac2e97c2efca3d6c51fa6b7dff4edec24386740b4bde"),
			decodeHexString(c, "9704ecda35b512068b843053762fd7fc875d9a2eece29aca"),
		},
		expected: decodeHexString(c, "fcfa114527cf0d75978add263bbe067f699f00170cd95388bd53b2276cf28c8d43cbd64aa5fb5821e88ee3b180abb44357d72418b0783a006375012359e86f7b170c7287374f1629610ff5a5947af9370c25a453f4d5b11056a21e57a4b43c370cf2e3262ab25eaa2dfffa3c25e05c35"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_1(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "b9174cc6a47af4ed2befce2d758212b9585ff2e549ce0ec7"),
		nonce:                 decodeHexString(c, "9807df2f1b017ae71f8504a4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "08f49264aa04c2cfdef05a3e8dc2b4b40e0d0c9d1d2eed5a"),
		additionalInputReseed: decodeHexString(c, "3bee99a67e703ac8924eaa3d83357c28454bf9aa10e29221"),
		additionalInput: [2][]byte{
			decodeHexString(c, "75aaa80f8d133025d5fe3badf1853f81f111bf94986927f1"),
			decodeHexString(c, "2ec66c2ae23893ab01b210000098ae7f64ce6ac91de871bf"),
		},
		expected: decodeHexString(c, "2df1e64626cceaf52abc1fe78a446480b8584330a9b8e4c40e62519288e7b2ffeaf9d520205b59b9634382ccd0e4ee1a2503ca43a4d9bc71b526ad3a53f8d569e1246d33624d2c6808aeaf5764ac88d0070e18add01dafd4b7524f87a2800b6b75ebeb193b6c4ed6868af6f26c181fa7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_2(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "9d4cd403628e7e29bbd95db4c6ac219a48a9cb4b39adc998"),
		nonce:                 decodeHexString(c, "069e163f3257fbf516574273"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5839165f0c9aa7190ad2dfe180dd4eaeba5f84fc6d360a34"),
		additionalInputReseed: decodeHexString(c, "1ce8b2ad445a8560737aacbf6adfb8dc09e6f283d655bd52"),
		additionalInput: [2][]byte{
			decodeHexString(c, "37348f28a3414e44a778c37fdae64559c2ec7149b55b0752"),
			decodeHexString(c, "fb3f526a97f4af19b60032d6e93405e5e1237ece4d3d0fcb"),
		},
		expected: decodeHexString(c, "751ee0cf7883cb0c643e1dcd20f381cbe105845b05a1a407817d5faea26133cdb113347b6e7e521c15d42b833e7f49e7b497b450a0b76cbf4b6ee179d09afbccbda472637d436420c2fa26360d2ff796580fcdd0813e59a3d58ada14aedf6ac5a2cb23b1a35e22b795acd2cf37da9cb8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_3(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "f531f066518ecd27efc5a8442d07cb6e77ab1b631c39530c"),
		nonce:                 decodeHexString(c, "aa97814e4461ff28290f6649"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4871504fb0b6624c9482904852baa2fa1c22557dcd4bec51"),
		additionalInputReseed: decodeHexString(c, "d5834a50a825ae2a6e8f6556968d8e3a916695e63fb03198"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c21d88ff884a64e8e31a0183aa2e14a66b51adb2fb2b4dc0"),
			decodeHexString(c, "9d39ebdc6b95de21d7a202f2095a86fe34ffcda3472a7149"),
		},
		expected: decodeHexString(c, "01d7d5e7bb1569829e16c429256ea72128dfbe719256408fbd364eb59c6848703bb07a14326ac8423953d47f919c67cd21fc61d18f518c1ae92638045511a0b96671ebef43e2728afc78d1c964c3f3acbb92f85146cf7ea0da767408a12a8616b3fd46e04ef31fdb2597bd52fefd0a43"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_4(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "fd0de2a45fac087a0b8a124f3465c3f1b1713c0c0941708f"),
		nonce:                 decodeHexString(c, "b3bbbd63a877fd64c2f375f4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "82e232eb711a21b9673f5432a0a86c695698686bed4e3885"),
		additionalInputReseed: decodeHexString(c, "1d0701ce1e8163404a8ce37b83809c6240aa0c0e80931f24"),
		additionalInput: [2][]byte{
			decodeHexString(c, "811d7466e54eda34b0087c89c092c3ba2c5533f3c8638055"),
			decodeHexString(c, "b7fb19c5a0fc2430e43d737286a06739348c6154257b7b6f"),
		},
		expected: decodeHexString(c, "950ee29180b9c1141ab7db1a57560b0e8092e2578b01d3e5abf5abccdf333718fd5f3f587b63c259a24ddc87ce8076efbc97f7bfb195f6e9e53dca7301a445f0e85ca09d13777961e1747542c4eebb1ec675aea8b00827f2ecc34307ff1815225d1201aab50025f55f6328ffb10c57f8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_5(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "386812f57f62281ae7e29ff6b82965773666209284d2b835"),
		nonce:                 decodeHexString(c, "ba9953697dab4d974c23d467"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e3295ef851ca300846116352add2b2bdabc632fec720956a"),
		additionalInputReseed: decodeHexString(c, "941b2f2a6500e9799a6ebf755c338cf9e2f7740692c53ec9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4f1e10cbf218dbf928bbfa5f3686f4e3eec64dd363debeaa"),
			decodeHexString(c, "54234940377daa7e8bdda8ec557bf5332c64e6bfb16804a1"),
		},
		expected: decodeHexString(c, "ef59607b8ce334269321ad658b735a6a5bf77e5ddc81bbb7625aafb9505edc9d7834b7d722246c67ec3e8263fd72e7f781047465de30ea583d7d36d10aa58098c0b2935aa87290fd924db975e23ff5c91f413b3bb0465f760b963fc91f1bd3e0632f2c8d895296a06b6710f447f9e511"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_6(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "156c15e07d423da1cf91c3ed597708d386b7a0b7e925779d"),
		nonce:                 decodeHexString(c, "1fe77ed972ffad7794fd6305"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8f8416aabe1397d75742be65a43cfcb9bd378b4af585f958"),
		additionalInputReseed: decodeHexString(c, "c4fd538198c0f9f788430c5b7a80b026c537d4e363aa6298"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e50e1dc37fcf8ef080bf44f426508259900c99c493edec31"),
			decodeHexString(c, "ce65f18967ba3035e58cc465f5ece6283ad802741c78b583"),
		},
		expected: decodeHexString(c, "91d652228a95e03e2d8025465ac2ba434f2eb37256c4f946ea3b4f5978838c528f6565f6edfb7089ef2d6f8a8569cf310f0edc1ba51b56691e51594c92432bc84cc827c1ef65d8631dd006de4baae754c974c8b4d74cc4008aeb5733abd2e990792e34d2bd484586000c1fefaf5fe917"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_7(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "c95c4c1be62d96e978c5a224e69cf3ccb1b5bdcf1cc9599e"),
		nonce:                 decodeHexString(c, "bd318ba08aabf416039a9cef"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "817b6f097d288e425a8b67c996afa9abe48a635edd2078b9"),
		additionalInputReseed: decodeHexString(c, "324e683c2cb93ea97765ceeeee9269a2a8c5dfa20ae85d2b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aa427c2f2bedf1cf75f3d1b117127164fb014c507db09577"),
			decodeHexString(c, "e68bbf1aa067d5217fde4f4288409ef950e11635f913a879"),
		},
		expected: decodeHexString(c, "9c20c086965e9f5901e42ffecaa68ba69ee084fdeb4bc4d58d042b16fb8e0666a2e7109729d02324e95e3d6520a79f12ee281e727d249210b3be86a01cc4ed8a173087ee70c2064fb8b899d90704625cdd9cbe45b9778dc6181a85b82d087272e3ad5cdc33258edaa259654486eb5492"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_8(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "750fe944a04bbdc9c5a9651a727afcc539809593892ae157"),
		nonce:                 decodeHexString(c, "afe8de46bb4a2946ea4b70f1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c10ae8d979a521a0f8c7f3ebf2b370da9a202e3bfc3b6222"),
		additionalInputReseed: decodeHexString(c, "00b4b3b4b6556118d83d288059a2e9e3e19d6e00337706c4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "22cd750815e8f6180402108f12a4acf6cccaa80d7e3819c0"),
			decodeHexString(c, "f03f7c856fa36aaba5e1a9a4f3906384db326962b5429b29"),
		},
		expected: decodeHexString(c, "5dfb261c96964e8e7d8363bfed38f9d56cb3c6017a4b33d557814a8507712b099927326a7c0f6791960b635b9e5263ddfe03cf5b86e6f37fcc8a04e6b4ad8e4a5d4d1aed64b661f56becf7afb6adad8662114661d0cb2566e2a35c8199d6be75b71132d2c878c754cc8740406a697c41"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_9(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "4498e6df0ed5c588dc1e78e744aef7236c906c64196b7579"),
		nonce:                 decodeHexString(c, "4aa3fff61823cb8d7e5adf01"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "28bf50b61a40f1e70a9c453f91e69382f29b760f08263048"),
		additionalInputReseed: decodeHexString(c, "bf0e8f4b9444786492e163d1f893c1d2ec5fe1c67c74b610"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0e509fc439e7ef3b65561dfbfe70c0d9c5eae0d51409b3e3"),
			decodeHexString(c, "576ef634b4ed9a1d252f1542bb96c03e453cb9c9d247ce0d"),
		},
		expected: decodeHexString(c, "70bef944185a3f07f51bf881c12589d0f8368daf88a106cbea0ea4033c3d117ef45ccbfc016c5d9944951c9db83547d6849ae1e80a8fe0fbfd313f16e9cf2ba39c16aff769bcd80568bc8e428b917f8d8bd44de330dc6cae0525972de2acefbc6914381ad4b36b10641ac7fb2e0dcba4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_10(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "1bd4da90d560c71f4c78064ae3cd6693ffc6f9b3dfee53dd"),
		nonce:                 decodeHexString(c, "e178e0a4cc5efb0b720409f3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "bcf329b12ca14df65af3eeea2e8070993eeaa77243a58a82"),
		additionalInputReseed: decodeHexString(c, "67680fdc2f9a2787a10123327e868e280e8df90369a45de9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c2b590e4cec61151c4cc122de3cbe4b95c0af294e7c0f872"),
			decodeHexString(c, "5c54c01d43414fddb2c441592f7deb8f25fe382bdfd64e58"),
		},
		expected: decodeHexString(c, "b89ade1ed4bd7c0ef6f787e4c76db75fe7f9216d0a43688a10098a2f5af59202b2c1f48563ff532787a1862a213c269c2cc3112331c46ebad445294c1a5217b3a2d06c6c849fa8a222e2dfebef2880060fedd458fe5f87297fc3aeb1255ef33f32d225f1754adb102653d74b8242af15"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_11(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "7dbecdba02e537cdf2b3b30fc5675ea810dc82450d578116"),
		nonce:                 decodeHexString(c, "9e7e4392351ce7b51fcdd8b8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "52c235cf0a45229c5cd2aef84cb2a1838a639718e128d01a"),
		additionalInputReseed: decodeHexString(c, "824c906e5fb21c8a342de90afe7c5e030c609d450a399040"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b090fa3f3a83df19331a747f732f74e6bb59360f7272a5ee"),
			decodeHexString(c, "4e586dafba3c498617e15b62ab81ba837aecc27841ba5328"),
		},
		expected: decodeHexString(c, "7e9e24d807b24398aa425cc194765d663e41736dcf7c22e241327d41c7d8c7ea62cc11d1358be51546dbe268efd3a41542fa63feabebc5b0e3b65f4490fcb8c9d589fa49778bb4ca6c6a097c57f667c373d4a9b559e7d34d133f8a0295fe395623105d67b73e33bc3e952022cedaa343"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_12(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "76cd028fa90d01113439898b16c7d3fc98dff947beb77ee0"),
		nonce:                 decodeHexString(c, "1da338a0f53994c8f1e55adf"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e4dfba2138ec5e6ef59cd6c0178939c8b674b61aff30c86b"),
		additionalInputReseed: decodeHexString(c, "da7b4059016bfa7a96493d75bf81bf0fa12a7563c32f136d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a60b724483020a37b61eb5785aa6a87bed51a5c0aed75f21"),
			decodeHexString(c, "1bf4d25f1b58b15464a3c5afe34f96c997d348fb81d2bc31"),
		},
		expected: decodeHexString(c, "7d529feb1b726e45a68749a4d34627ca374c59901d9a39697dbf7265b487269a8a96533df61fc5030fde9e646308f1eeb67d025c846f84a3370acc09241e8c4eccb3e3d85027aeb575bee73e11f8e8a3a3a79edad6cb62d94af7915fcf1041c1bee0ae8cbdea3bf01ac61dde40287e8f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_13(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "e2d628f7bdcb4137b12516451159150bb0b97f7f9068935c"),
		nonce:                 decodeHexString(c, "b109d0a45899d80492feb118"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "019fe94bfc6508c2021f126b6d1a07c1fa77a60944f0b5d4"),
		additionalInputReseed: decodeHexString(c, "90de5172244f14453242918fb812b6ccb87b196745348570"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d997b550150f14bf02e65550dcafaa5cc410865d9cb9697"),
			decodeHexString(c, "eedf1df1e5198b3fbfbccd2a79fb5c0e56aa9d573d87c9ae"),
		},
		expected: decodeHexString(c, "aa573c5cd75117d897664a295964250c5510ac4f558fd8d87de4ef62a3c9403af4f3ca35a4d0f1289d3efba0ab4d3ca13e754826dfe7a3566d3e0d54a41204253744f08efac623e9162bde5bff73c496ea508385a31d002470391d717bb4f0760595560b23540e0e27934aa6e4ce8660"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed85_SHA512_224_14(c *C) {
	s.testHMACGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "f7c3d39ea1fded918b40b138ebdad90d66d9871d6a512c25"),
		nonce:                 decodeHexString(c, "5691cc942e0a2a8a2132f04d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "bf04279f270508b6610d86dda40983b897686bfba4f6ebab"),
		additionalInputReseed: decodeHexString(c, "7ad3583bec609c61c45a46e736b99905938ac95d8a0b5831"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3f92583ac112cae4988334127dd74e375973d622ddd08dd1"),
			decodeHexString(c, "2e44c0c0af8d23619269a2dc5d8d61bc97b11f685c5969b9"),
		},
		expected: decodeHexString(c, "b95a260fea2de93b01c8a8ffd63d5265d106da7bd701d8f0db1f661d89bad75b831e0900573561bb79e6e0af473dcb1a97f96a7e61316e0827af1029b923ea71f698ce3fa92ef7ade7ac63f030873106f6161b5b732c9877e62821c34d2800733b2543da3fa8d9f4caf79b883aa5b9be"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_0(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6a7deb4b6790284d9dcb8662a10e2d69291e889dfb72ca32"),
		nonce:                 decodeHexString(c, "28e0af5bdee3b79d6405d05e"),
		personalization:       decodeHexString(c, "ca84955100bcd19def060e40344ed150f64b117ea7dbc0ea"),
		entropyInputReseed:    decodeHexString(c, "55fdb9cd5e8d33cf5d6aa5a5ac6da75ad525d6c715d27474"),
		additionalInputReseed: decodeHexString(c, "7d688d482b8fce5dd157eb70d3f38b7775de025c36d45ee0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4d37506ad3e61aaca713cfebf9cf360015c0e97ac568cf25"),
			decodeHexString(c, "594606994733f333dcd3b7a77a0eeeae35835d83e0770960"),
		},
		expected: decodeHexString(c, "5b79678e2b5e7abcb89a8b5eba0ffd60ed2e9a2ede1e023c6a49cd80d3d03e6c15e630a5d8681eaceafa3585d5fc0d11bce616de9864b9bf0ffcf2b407f684c99f13cded4fcfec34b80b44fce8d9afb3fcc016efcf16bcf8e2ce0bc960654e330e7790fb3f7416ac100a88163ad884d8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_1(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "edf4dbe2d3a73f9bef7e54d3724fc437650ecdb795d65bd3"),
		nonce:                 decodeHexString(c, "f877cf829448f222c274a634"),
		personalization:       decodeHexString(c, "757613cce03832f1fd9f8f27a213a52f0197b053e723d564"),
		entropyInputReseed:    decodeHexString(c, "810b8dd96a6429826fd543a6e2dd203731ced8de87453c7c"),
		additionalInputReseed: decodeHexString(c, "75b229cd9880ea34b0e45ad8c6f5dee7c921642fa5211a43"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6a4e29d6186476810abc6fc8fe6eb3e8927a0cdb186a3409"),
			decodeHexString(c, "c348d0311161dfe6ccb90522d1ca5cb25f32d451215b2bdb"),
		},
		expected: decodeHexString(c, "2b2012c4eca07b87153d7a3f7234e9b03a540144c41b5559c2f5c78f762fdff0683163831ea2a7b30ec06a42a5b1513bc6bd65bbe96f823bd5c163c405b410529987171ad6752051034d5419f402ec3fab9ab4f3b92aad645320a2d8739cbe79384e4ba21e12d7c4d23771236053228d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_2(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "3ea6a726d85da31ac16d67673747e4b02a15edfbf9dda16b"),
		nonce:                 decodeHexString(c, "a2287a4b7377b18ea430e9ce"),
		personalization:       decodeHexString(c, "6b142627eb132d78ed2e5af0bc4600bd83512d7a7bb10bf5"),
		entropyInputReseed:    decodeHexString(c, "28201a163fe84fed7d7200460a60377a3ed42541c38a3c13"),
		additionalInputReseed: decodeHexString(c, "e69a5b4bb5f2ea87a551f4158fb9bc97ce95ec4b74171c64"),
		additionalInput: [2][]byte{
			decodeHexString(c, "24d3c8e9c33c8df8a61cd0de896c9905a286507c8914b917"),
			decodeHexString(c, "95e58747b4ac84897d024f79ea6f7ba650f133fa758207f4"),
		},
		expected: decodeHexString(c, "d2aa956fa8163fb121278fab6b21604e29bd0de7442af15d64b23263a1894d4be200716cf8ce12d79535c9827f092f2438071c6764c0a5dace125081f84b3db81fe1c18400df9a57c9f2d4b32ba7564c5293df74d9af7080d6a6216e00ad59154440e38d39edd68ab82a922dff18e7d2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_3(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "9c7a194c82dbc1b75beb8a698cd06ff5b84df33ce775cd91"),
		nonce:                 decodeHexString(c, "12f1cfc479912677204c0dd7"),
		personalization:       decodeHexString(c, "4d3e4416fe13243ba395efefbb67c83e9fda2c332f041281"),
		entropyInputReseed:    decodeHexString(c, "981d12c4be0354e6658e6cee5b5e51aa8728ff35c7b7e2de"),
		additionalInputReseed: decodeHexString(c, "2800f25ae28c68487d840558fca4cac539cf15f0e31417f8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2e26576af7541a3dd8789bb8863cf9ab53703b5910992bc4"),
			decodeHexString(c, "9261a2f3501e25c481e74ce16902b693ad46e1b2cf6f6446"),
		},
		expected: decodeHexString(c, "49bb6bc1c970337887329289723aca448ad7754914cbe1989e04168ddefd19e3a5c111efb5eb2dda87fd87cac53e215a93a0753ac295cc62486049baf4a9da0ba2908d58b9b6ca97265d7d178167d4cafa71e55bf6a9f9d6ed6688e0779c79ac441ba7e9fdbb6ea81d7b79a23595cb49"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_4(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "1fdcc8d331d5fa4a74288eaedc924fd34ab5101538c6242f"),
		nonce:                 decodeHexString(c, "fa7f07baf7bc6aa9efef06ae"),
		personalization:       decodeHexString(c, "8052b9154a6b58d21eb954572b0900b684f35a4b3c3bd7b2"),
		entropyInputReseed:    decodeHexString(c, "641d1e3dd6edb3d35a9249d1279759bda44e42605ea37791"),
		additionalInputReseed: decodeHexString(c, "5e11582fdfae631acfb9344b487f6751035866e318216c67"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6a3c9249a47d99410fc644b79ae5e96e4a38bf9942b80596"),
			decodeHexString(c, "953a6410a372ef4c8cca472e9fbff9632b4f885d435605fc"),
		},
		expected: decodeHexString(c, "0a5b798f15e7d63250b5923c02a8a50813ee73e4baf8f547610f99d0d2497ecab673e9fe5e065904adf78abe8cec3954fd8ca68ce84e205af6293088e52df457b2b5dcd6973a8c3e556269c2c297887be252bfd25d69f649b9243912c4fe9c3445ee57ba40e279e9d333deb0ca969cf1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_5(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6a3d7ace5896300c30e33df557aca7130365130067bceb27"),
		nonce:                 decodeHexString(c, "12955a046206b85a51590be7"),
		personalization:       decodeHexString(c, "d6d4b4c88f4067679ab0767f93c8f279fe18a695efb7dda9"),
		entropyInputReseed:    decodeHexString(c, "1e1c3888591e06db0d3ad3ab6602ecb948afc1b97db5e47c"),
		additionalInputReseed: decodeHexString(c, "42514e44d3bcf3a0a4a732be77fe40a4b8aea7ea94cadb55"),
		additionalInput: [2][]byte{
			decodeHexString(c, "eafa3fdbda7a1f3cbb004d9f7fbdcca7199c6386fc5aec93"),
			decodeHexString(c, "e00d4bf6de481ad984d4f5319428ef57b1d4b2985864913c"),
		},
		expected: decodeHexString(c, "ddaa18ab182edfaf589dba175e6a147416837aa37372d3a5df98d1fa4ad3da63e831296ff264230c718ad52fef300b595ccab5ee5ccacc5f34d4b560a8db12005d641c5ae6b3143a33697536e797d1bdd5b76653c314aa9486a33c0f418a5758f441522a1bab9751a32f44490e96b763"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_6(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "1f9112e9d6106667fba66d6c624c9f9e6ba883d910403cdf"),
		nonce:                 decodeHexString(c, "c9e5dc947ceb4abf58500433"),
		personalization:       decodeHexString(c, "8e7243e95950015aefecf3de75ee002714ce990dcdab9d88"),
		entropyInputReseed:    decodeHexString(c, "40e8fc46de00d957ef2e07bf4cac7ff7b8b6d85872ccfa65"),
		additionalInputReseed: decodeHexString(c, "21974d20401dbf78abd646d48d40079c48afeac6a56b60ce"),
		additionalInput: [2][]byte{
			decodeHexString(c, "db591ca8a306559d3efc7f9ea2e7f12d3ef7a17d80a75ded"),
			decodeHexString(c, "2b9d2ac745bf84af75c0ee4fb2f8ad5a91986f0e067158e0"),
		},
		expected: decodeHexString(c, "3eef1a44a828916e9e77fff39e291f07b8a059e3039c0a6234a2ae4f318c77e677c408de25c1e514f5ead3994a78dcabe34855ada281e1579e016810e0e34d556b225258d5200bddd128b190f43b566d1f8f09488a42d2962e160d16bfc692d86c9ffc199d2aa8bf8577ff51537ad299"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_7(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "000d78ee0914344f73411dfd0fc6a353f1bfccd9aee2f485"),
		nonce:                 decodeHexString(c, "fcfb8d43b9999556063e7e71"),
		personalization:       decodeHexString(c, "a823283079cf0c4775aa3bcb2f3f161972d3a453a4b1cecb"),
		entropyInputReseed:    decodeHexString(c, "b91dfd79cee327a0c2e277d0e5380c84391761d3f1244593"),
		additionalInputReseed: decodeHexString(c, "26401828909ddca1dc70fe93f0f828214a4f158adb79c139"),
		additionalInput: [2][]byte{
			decodeHexString(c, "76274e3ea2fef8caa85c676e905d6ee8badd2398eff1be75"),
			decodeHexString(c, "f46f74af07c79be972945e1223e2888dc3867232596ee979"),
		},
		expected: decodeHexString(c, "85e534dffe0ca1721dc6b43f56d866312d1b1e58eecee8335048cd52d9911648dff8f7a87394ac5c67f25109d7adbc13c9657e8eef849150a7478a1f04c67fc40e9da8856f879ce1ac3be0d187ac7368b45a33f900c1a21b29c83e236aab4278dc5a9f21b259f2680fafcfc8c2abe10a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_8(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "fda82cd1dcc6f7b61c371997736e240e7e1631bcbe4af1f2"),
		nonce:                 decodeHexString(c, "a73c757488c9295e87d6e671"),
		personalization:       decodeHexString(c, "038df0eb94bcfa00895c16328132e671f77efe5af5ade98e"),
		entropyInputReseed:    decodeHexString(c, "5c9d9d221fe20b4085606d8a52585a22faad97b61d2d0eb8"),
		additionalInputReseed: decodeHexString(c, "3749d498aedc59fe00362f01114a567809ad99fbda48b9c6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3fb071aa7922a557ed7cfc43958ecf2328cc7b67a6f3b654"),
			decodeHexString(c, "4242c85664769b311059aa7bf016822d06fc099ade5b003e"),
		},
		expected: decodeHexString(c, "01156255bd3a4cec7665acf072782f5a3e11a2b0800ef76dac3ec7ccf4cdf109e030c34b8fa04ba0a8ea9d93c8a70f0ffbb77fe1c11c9cfb462c822655306e1fbdeaf50f5293dbc0bcd53a341a5b67c304a240a8e961ae42d6c6d65e8c2fe51a3b4dedfb3bfe23d3c0ba7cdfb7398029"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_9(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "18c55dabc8b3280a705110dae597528bccab8c8812e2b265"),
		nonce:                 decodeHexString(c, "f9d9faec99b56411454941e5"),
		personalization:       decodeHexString(c, "5f9a43423875b0e63a62b9b512d4122aa3c7adddb7a6940a"),
		entropyInputReseed:    decodeHexString(c, "81637945d2dcc50935684755a6d7109b2c311423ce587b80"),
		additionalInputReseed: decodeHexString(c, "f0d8e663ade0a5670f3034c69323780c9583266c24c7a75a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "84043d68691c8a25140dedfe3a40831ef6f900ab98895a50"),
			decodeHexString(c, "b7182f3f8bc7836180b5b6eea5b44b811d5365d790efd399"),
		},
		expected: decodeHexString(c, "efa3f8cf4a3cfab0a4957b613c75ae6e34e6ada5784097b9e7b42b847cc9bc96997d6eea1675fc29aa73f33a6bb66a6b961dbe09bf4b5567916e124f975cbb76022c2b12504900370b46446e43cde58aeca7f06574f6cde59dd021b31b793166967e410a4a3c01a084b5dc346d090cc7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_10(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "530cac6bc0fe7e3856a55790e0aec3a48dacbee33a5bc844"),
		nonce:                 decodeHexString(c, "7bee301927642b114125eaf0"),
		personalization:       decodeHexString(c, "c7c7c79f474a7aedebf222706754318ccaa740136aa6a155"),
		entropyInputReseed:    decodeHexString(c, "9d1d184a265d86c7ebc2a2914e119e1cd3c7fc0e32101ade"),
		additionalInputReseed: decodeHexString(c, "3eda257ac5325babc7ae929ad0064cd34d2d32b1dfcd09bb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e5648afbc40996b023aa458908bfb92bf3b0a37f099b580d"),
			decodeHexString(c, "a03ee1ca4668687e2ffbeb5d689374427fd2aaf767de5f06"),
		},
		expected: decodeHexString(c, "3492ec3351f60a02a71fdb99ff3925e393cda57555fad1a129b4e8abe7f484cafd893879d79588952f31ad4c3fe78a10896de1d2908871415371b123e158aa42aae68d51b38e096ea896aece3bca1dcd6b07ccc1d639984478ae12f6b194d57d5f37d8244d83a18b92266469963285f4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_11(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "427789ff80add7cd0d4e7d71c6c88471349c92d8ac61ba5f"),
		nonce:                 decodeHexString(c, "54b37ad23e038744cabd613b"),
		personalization:       decodeHexString(c, "ea591565c60c64c70da58741e5ef2c0f678c1d647048a038"),
		entropyInputReseed:    decodeHexString(c, "37451c8aec8b8bc5b0fce4b997c23882a3388d3d34aad85e"),
		additionalInputReseed: decodeHexString(c, "c122c9c2999cacf6a54b0fdeb150292b48748e7c60a50da4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6c4b1312acad06b7dbc8bae4ba313af83696f419c6850ee7"),
			decodeHexString(c, "47ce6f695203559f305cf24c2e212d8c871fa2428d5fe64a"),
		},
		expected: decodeHexString(c, "d70d2ff49ae25f4548814ea94a47717f3ef27e5e5f1d109ae501fe9a14f0bd71705bcac913fd2f6991230a466cedc856ccb8db1d30182873c7f029a6483f382e8a03bfe65351d14fb3ce7e17c7ec626ca976d10347c3524fbda60b2cac27bb61fe3721b95745de2a16bb8c3c97713466"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_12(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "46384531a48e5521674ee1aeab04e6b396e0e1f4f34b97d2"),
		nonce:                 decodeHexString(c, "d3f91eb5c08482fdc9193708"),
		personalization:       decodeHexString(c, "2a176ccf4fcbc8e088d04bea650a34d04849028dad13808d"),
		entropyInputReseed:    decodeHexString(c, "c4e7d39db2069c495636953ec964ff40ddd531bb1f40ac1f"),
		additionalInputReseed: decodeHexString(c, "31243630c211fc1caa973421c4635ffc7b2569c7947cbda5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1701dd02fcce1444eca62825d5547e7f0ce9b3c833464fdf"),
			decodeHexString(c, "ed41033186e8326202720f191bcb16dae355f3de166a4b69"),
		},
		expected: decodeHexString(c, "245f47c6d7e98a1c61cb367bfcb2e59f255b9048ffded70d54e650624e3da8ff5ade5b9cd759ef0618297640052437c7c940f3ac7ef094fe65b88fa196aa8a15788862abc7b883d7b1aa8ad96ae176de018e55f7ce90f090cf734eca86ad3f3915977aac45b23afcd13495c7511e3999"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_13(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "d7cbff7802a857fa06ca8ff2fd75fb819e40afa3f3aeaffb"),
		nonce:                 decodeHexString(c, "db2f98b3d10628a161b8ce7a"),
		personalization:       decodeHexString(c, "bcc0952b2b1912eea4c06f8aa307e59501823883621d7105"),
		entropyInputReseed:    decodeHexString(c, "d9b02587c08f2678351c57ed3e5bb5ebd7ec4eefcce49be7"),
		additionalInputReseed: decodeHexString(c, "8fc2fa30912002b7999680d5a830aa30162e5792a43cda21"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aa92fa63f15b6992c6aefa781244e440abb0dc858509c546"),
			decodeHexString(c, "1297480a081bc62029fb06853aad125e711cbd488c9b76b1"),
		},
		expected: decodeHexString(c, "bd8c2f91fd87c45acdb15ffab19181b6631cc9c0e2b70d56e010f28335623b7c595f4a5cbf01d90ad03fc3c9f3ce8ba23cf9646fa5ae3e8dfdf86a369eb612779bbc1cab64002f1723de4f660b7220cacb8dd036b8f3371bc808377eda760e9d5958897ad615b0967c085ddab9227915"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed87_SHA512_224_14(c *C) {
	s.testHMACGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "d0eeb2faaa4187ff37a74ff54026c3cdf57ff16467438756"),
		nonce:                 decodeHexString(c, "509014f7243ac487447512e3"),
		personalization:       decodeHexString(c, "514889f68a7403a1f8a0c57691e1125451f8a89944829032"),
		entropyInputReseed:    decodeHexString(c, "cb26aaee7bdc552f3c4dc677d0de43bbfdf6540322ba9807"),
		additionalInputReseed: decodeHexString(c, "c1553120335562255f9bb7d354a83ee915b5f20ded2e1193"),
		additionalInput: [2][]byte{
			decodeHexString(c, "51ed29fc5ac677d1fdcb3408a70576b7060f1444a40dffcf"),
			decodeHexString(c, "db9dc4c9d09dbe5a14f2a50aee1ced60acd43182da45a452"),
		},
		expected: decodeHexString(c, "9ab1e4d60c7f9c117d3d3405ec8507c05f4bd8ee023d3299713a88c7db6f35412e9c968e39e801764fdb5f2c89d4f186ee4e1f49989c153bdfacf67e499a23a89450c097c71424e59a0b1329895c90f82b3ae7c6b6b97c1cf9a87d27d13e745be5243cfd538d177d8b5b6bf1bd56e147"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_0(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "61014e67a12ab1c1664b8b5295b659c2cfd288b4975567eb"),
		nonce:                 decodeHexString(c, "3476d6c266da569ef4472000"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ec0fd1a984954af6d44b21c2023b05cae2b5b5394ae60d1a"),
		additionalInputReseed: decodeHexString(c, "4e7ff57003e41f4270cb29af5a0e32462cb6e20c134269cf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b34cbcb75c025cbf82ab88f3ab9928c7d32b4c14a28fcabf"),
			decodeHexString(c, "106e0c84c362df2b28466ff56f0074eae6218041dbeb960f"),
		},
		expected: decodeHexString(c, "6aaf44644ff155a907db4afb066cf7a7876c54f2042a5ab9d6f42822e1358432cb9b911ebf773a0b9550a688a2942aa65a69cdbbdf1440a3fbc51213f44b96ac1c577216d44c5cefa3e521a8cacbfd4aa60149293548a2c3de7d041df9a85335f9ff41977dad05809940f250ac041150"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_1(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "593939e6302a3afed7118da0c483c1234ec7be37f5e9dae3"),
		nonce:                 decodeHexString(c, "127c3ec903a2660499810936"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6f896ba1fe76002456a3f6ac6b7f98802f6f6d355441c955"),
		additionalInputReseed: decodeHexString(c, "8592dc13b044e3b874a3b9c46ed4dc3fe0e80281027d0300"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a2379cd4dc3189abca346bce587b8bc73d08bd7bde148769"),
			decodeHexString(c, "a7c6aaef338568f3dc8cda0331efedba303c9a10174cfdc4"),
		},
		expected: decodeHexString(c, "fccb39e5061519a22bf4324e4453a2d2959204d71fad4857841f4a601ea532196c152644cc942aa5277769a1e0bb75c09bee406d748a879c3022a5f656c1c152673a64a01b354a1b2634e2ef236c41afcdfa8ec56addf0e0995e0b4f85d36d9fb6406ae0d40ee8515b5ca86272cda29d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_2(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "7258147ed9be8eed169a914256f66ef9a1383bf4f30f61e0"),
		nonce:                 decodeHexString(c, "c4cbe80de4a7ac6fd210ee8a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "430dced67450163391957d8c2ee949564eade8765f9b5c8b"),
		additionalInputReseed: decodeHexString(c, "4ae3e1623eab18749560f28c1284a148db35ea00f7148766"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8388c53d43b7c52c02bfa64a13adb0100f94f2eaed8dd250"),
			decodeHexString(c, "5f1bfd0de68c8b5e02c1fa280bc7a8ba217c51249a624135"),
		},
		expected: decodeHexString(c, "77bcea3e14d6b7cd2ae02d4d50eeefc7a32bc287d61c5c9cd49d0202b45f5d8af2d4886b0b1db4385d1b84a307a8eb7e25f91b79f224fa4f828a6fabc11f9c8386656c158a5fb9c09b233ba824af33a51228817622fa9590af3942b9a5e476a232f871f9facd1178f311b6eae7ecec18"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_3(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "f77db10e7dc0aa1024d35ccc7fe3be9d2e684b56438a38d9"),
		nonce:                 decodeHexString(c, "ae0126cdf1a06546c7a1110c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "97869c32697748887ff5b8a1eaff0f61eafed026814d3eb2"),
		additionalInputReseed: decodeHexString(c, "4e065ebf71f40eb29f62d574f39c10521c99df10de2f9aaf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5e5a4501c9d098717980611e60902428214ae813f8024652"),
			decodeHexString(c, "25333b2be43f25588d32983e25e9d863cbdbe402c664df0e"),
		},
		expected: decodeHexString(c, "b9c422d933987e5d0f28a765fc218c5b3237d04ad5ea276c5bc6d21f977b957cd2ac5b62b5304390502f7801819fbb97af5607e163bdc405b5757abc84accba910c68008f90dec3343cdd0b07d0222274a00f44e8c2e5654f13e4ee4847a11adc258c96ec04e7d403ab0bd5fee3175ed"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_4(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "ddd27f79ac6b54e218c684b6fc720826e1c05d2cff5aa91e"),
		nonce:                 decodeHexString(c, "7d3a9962ed36c266a17643c7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7cc4a866dc1d33794af35423d8fa5b93d044031629aa56c0"),
		additionalInputReseed: decodeHexString(c, "dedb519ae1412e7cb96fe58527c50a617519966c1b4dee8f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0c30761676e4511fb07bfd635e09e1eeb55a5a8fb7e61385"),
			decodeHexString(c, "5c3776e6dca7f4907ed8c7c9353165db1618966a0d5ab1ba"),
		},
		expected: decodeHexString(c, "52f2be36714a422fe59f729daee2ce41729eb20d3d69b51c9f33a3d937d7f7f6ca3705cffeb8aa76432c31b8ea01506f1bf33fe906284d625298b4ad3812d10de633dcd2550c2989cefdfabdaffd1a5a193bb4d95343ccfcc73ca0761b5e14c205e76a64788b95984783bb7431d4f915"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_5(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "52e526583681fb77ccac996ba0e33fae1e0d9db13b073c9f"),
		nonce:                 decodeHexString(c, "83241de56d125dca3129f458"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d943f4f87ed9660452f99b3ad7d2438fdf9eefed1ae2261f"),
		additionalInputReseed: decodeHexString(c, "a99e9e01acdcf63f436cfc4b47b01125c620b20d01f22a4e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4377a3c0737e2fab455179f8bbf09a496ff8bf29ab345d3e"),
			decodeHexString(c, "2bda3c019f5f34d196a89d7cd269effd8b64bdb0c0e0dd42"),
		},
		expected: decodeHexString(c, "39c84116e2fd21bb2ff1d38db60dceeafc582df4cf2a9430455d47dfbdde19fa1a5d890908ac6c7954131ea0f2ac6cba8bcbf551d3406e805c62613337aa1d09cc7cd3fa2467e4236065b72ed24efd0d3457b2b5026e8ef114890035ef86812f57318e5f0dcb2eb88c5d25481952fb8d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_6(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "2d3e229739858708d463547723564190acf7600a1c68a378"),
		nonce:                 decodeHexString(c, "b12fe1f136130fe2091cea1c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1668c4512a162b4f03ff630f81824a49c1f9225d50f2b347"),
		additionalInputReseed: decodeHexString(c, "f150f3839126e029b668eba3114b0f51686f323136e53fb8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6eecd80d20810fb96a0eb9c9f179352fd77c0cdbf1aedd20"),
			decodeHexString(c, "13e9867ec1fd8464aa69775c9ad3fdc9c6d50b6fb85831d9"),
		},
		expected: decodeHexString(c, "98abb7b243f237438dc78c807e0faeb95d89b4f4fc7709fb6ad9ded88d94cea281a3763df204f190bd062ab0ca55052355cf5667928aff30a6b9665c91b4606e13db72100cfcc1e4f7f3a47f8082d45c1825194c07786096250919f4e06c90cb299b6fcbd7bcc30386fa37b3bb8ba262"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_7(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "f4f54b40ed03720d007450cab2367c16338fc43bd7814a8f"),
		nonce:                 decodeHexString(c, "2cab94e954799872035547db"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "29796f011bca6684fb16d2a6cb89eec8098857eb15a33392"),
		additionalInputReseed: decodeHexString(c, "13413d40a03529b93ab741f1e9fc1b71ce09bbe703f7f9be"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0a10b8b009f4065d34690ff599b22bdbc95f8dc7894b9e8c"),
			decodeHexString(c, "1c3cdb4c215eaffe55559dc8a642ccda1a5ca3d683180ed9"),
		},
		expected: decodeHexString(c, "16a48216966b2ebc323122de695c756145c1a94f45335277b00cbec8c5f165c0d0cad5c0f9cff8198fdc802fa47027a8cbe0fff121d7c5f0279e1c4ae263cfaf061f35d2679d3bc9f733e2b5d8b6629b5085b51c22017e8f8a4b6f303f35c584916d61138c5818dc047aecc40d6a32c6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_8(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "91523af1df7b166f7e281f81f5bad2c8a810e8d05a6b45de"),
		nonce:                 decodeHexString(c, "d4aa960573926ad56d72283d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c4785d9aad1e7ef5e3a668542f9c9681c7dd292fa4abaa0b"),
		additionalInputReseed: decodeHexString(c, "8adc386c26090fa4bbd9800c95dd7703b8ad3d905fd9bcad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "858dac8213fd11b60049b03789ea3d7c310172df9ae4f81b"),
			decodeHexString(c, "daf50ba2c2fd49adb1295908d4b17b2961b569343c8f4b14"),
		},
		expected: decodeHexString(c, "6d2b38b3358341c8c7076df6229cd873fa268bbc7c599aa42dd438e755d150c7fe3efdac2a1145b3005e1bbd0e9e0510a6ae69522ee0a3993bd4fb44439f2621e011e0026947964748e3edc654bf5252c6c823efc19d3a44b9528b720a8b2176bb106267123d7002ac1a14e3fc0163c3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_9(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "a40b6157da96965934c939894a2b1f048756c97ef4be4e64"),
		nonce:                 decodeHexString(c, "1cc368d957fe179a4f85deb5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6fa30179c5ade0a358769db141ffc5fd14c0dee2785fe53c"),
		additionalInputReseed: decodeHexString(c, "90508e282afd757b9ecfcdae199aa226d6201e5dd2f20e26"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c5cf4c4a6d936e7f80795a851be7ea9babd952931fdcae78"),
			decodeHexString(c, "c8234bb857411f41eff512cdd1406f9a16995ff1ab854fb2"),
		},
		expected: decodeHexString(c, "cc9956504e25c6da7a6139c1f803f911d6be2bd26f77bc58d1c6d5f11338c8ec64df9c6bfbc04b8ffab1a8df7e2f20d8ed0ec799ed52274bf6a3ca3ca1c9eb777f2f661e2eaa3178907a7fe9e2b4941a8424d70d0ef3dba3215f614805570ca698ff9957d93636c84cda96825499423f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_10(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "865249fb014a96b497c35b6e9f4fc0980faca3b7894d0322"),
		nonce:                 decodeHexString(c, "40cf02cc54200b716a997253"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0fe9f1871f50758f7665c070105075b4a9e2a55365a9d00e"),
		additionalInputReseed: decodeHexString(c, "26c7641c5de609eb8ebb62887adb0d4af9204a4a9f740314"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f886d31df2c55767283db15635e6d33e2c82a59938918f9b"),
			decodeHexString(c, "ea4e201cd1a4d5a72c415ffe188fed75879218af595a23be"),
		},
		expected: decodeHexString(c, "24248e1aa60b89798299cb2cff2aa6ddaa5e5d5fbb8d9bc2448dab6ff155cdf6adab9331db88db71716128ff7166dcd8946944c2e6cdd3fb1890592165129b184d7677cb44a2f18b9581d8867ecb78a9ed6f54a6136ab5b66c7109365520c3ce194217a417a3964acf6e8560ae0e4b1a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_11(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "7099d9e0132d292b67b4d565b1094d90b79f8d002024b078"),
		nonce:                 decodeHexString(c, "ad274e6c47a1ea1189f49da3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "dc12806d1f38aed6fd3f5d51ffe8a60491e3b67a88e5055f"),
		additionalInputReseed: decodeHexString(c, "8ef1e7866034a8951b7484b73dd853f363d18025658c0093"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a4010511be37ddab8fe9add3b37b3d026fd001d64ba00f71"),
			decodeHexString(c, "a2154a45364e7948a07eec860c831213bef2c4b4b9ad5ad7"),
		},
		expected: decodeHexString(c, "9c8807fd80f08f00fdc0da5414b84363635c2871c1932c6ae5579535ac09321bc7751860ab33a7733cf8f35c5722479ab89a12dd79a8b9e13ce69e13de8c295751006b0a58c548a1160393037cecb915ede8667f92de77d541ab65aee18573dd7d00906567c5525b98f2a3b0daa0600f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_12(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "b2ff705879cbf5ab05f4e378100e5c16cc6a0d3cb29432ce"),
		nonce:                 decodeHexString(c, "c0eaca93cde1f4dfbd135b0c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "25bfcc540f91a7dfa3da2bdf8d5e69ffd0ff4e12e001030b"),
		additionalInputReseed: decodeHexString(c, "71752d12646ce2e5fc5a40545db005df5460a612ab3afad9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d94046083220e2ad76770985d5b4ce742d9e7d0775f0906c"),
			decodeHexString(c, "11be21e4bf8031a6f285714158aaf40afe27cc2892abb143"),
		},
		expected: decodeHexString(c, "2184dd8a86fa211da70623b7b8ebf96ed5253298ddf1fe3e3539c752f4413f973cf268d053025439eef6b249036e32094361fa67c353e9868cb908bdc21449900ed7270b7704db130a34fe5550688f6bb1d1dc7f13254b0c9fc71d738537607d49a9dee9f8f42177cd410f06f154275a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_13(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "ed3a96753ccbcba7c226e87603fd1a6d6409e219ca82b52c"),
		nonce:                 decodeHexString(c, "681f33400c7375e5fc6b0da1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a6f5ffbc1e78bd2e0cfdad57ff16e6439e2b2252ab5060f4"),
		additionalInputReseed: decodeHexString(c, "0911c1514fe546e76971127ed5c99ec225167ad29c51e1da"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9ea4f5e1890a024dbdc243fb91eab49e97d25120bc30aeb0"),
			decodeHexString(c, "0827599f2479f0ee9e9cbf329b2c90af7577271f57831c1d"),
		},
		expected: decodeHexString(c, "d70d9459ded2d6f7cd1ecd6357f5ff7852f79c7b6c34b55092952dc4fbce1d4f24c63af2a6ac453f77c89f7267a1e04934f2b8cd835e6c54679d3044bd7faa2c5b5ce51f5f2d2b970a21a37eccd3e674a1780f9c2bf8676d11e878d2aa57f0027e696eac0c93ab8f448f41eba7b693fe"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed89_SHA512_224_14(c *C) {
	s.testHMACGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "f138302d3ee98b9d806f06bf2040fd42e414393d319968eb"),
		nonce:                 decodeHexString(c, "dcbbc97bae7fe19b5f8e4e70"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "604176462ec4be54c8bba30dc86321d2d0450297e91aa447"),
		additionalInputReseed: decodeHexString(c, "f327106bb9037d548b0e95289fadadef15ca0ac24a0c6600"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ab42e9a2f162524577284832083d162aa5623e6944cef237"),
			decodeHexString(c, "17f3438809ae22fc53448a5bf9590fdace8e3173836c8111"),
		},
		expected: decodeHexString(c, "50128246f098745d6c0d363cc93aff73d04109cdcec21840e793bd9d4b148a62158f538a7c635e9e6548159c308eb8d4b4303cf861071b4f24c8988c33e509ac2057e380f9a6aa364ed3d58af2ebdf125a72da4bc60bcf860a4096c47cbc045db6957e0bfb87dde38b532886653313b9"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_0(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "86bbe70423a8e72e44ed7dfacd115cbb16ec123678cee7dd"),
		nonce:                 decodeHexString(c, "8761cb5f88dc388b2fbfd0bb"),
		personalization:       decodeHexString(c, "047c7a8aa64a1141b19539c7d6929de5d4f020371e29758c"),
		entropyInputReseed:    decodeHexString(c, "37913938eded03bb0facbcc7e9788874b4681e4464d0c3ff"),
		additionalInputReseed: decodeHexString(c, "8a8f6b92c3c61eeab3a18c160666ce71487cb8bda384ca91"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9113945324c10107c3c666486bf407a184082cfa3b4135e5"),
			decodeHexString(c, "9e6bc6b2ea742a64802483dda8f4092e1b7ff73a6bad47ef"),
		},
		expected: decodeHexString(c, "513c138ecf7095b8cf76ca2f68e1eac77cb5ecafec22b4c0488d0b613b8d2e8b3d4e3d3ac2972e3ad8eca14ed81350b899d053db72784739ad73fbcd0ea1e64e9a4dff5aa89f2402124a2fde9e505ae2df6a9a2e7d95d3008be5bb3aab36d50cfd2d5dcbf30f3900d695186b470b5d4e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_1(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "8cab1fbebb2e01f09c4ed40efff4571478ef8c41fb3ef6d7"),
		nonce:                 decodeHexString(c, "9a95d961f2f6b5632fe938d0"),
		personalization:       decodeHexString(c, "862bd408e25908e13cbccb8b2ee35c8cd77aa584f367b3b2"),
		entropyInputReseed:    decodeHexString(c, "bc1d480735b92aab885f0861b22e0f31c1e92a90e85f4a44"),
		additionalInputReseed: decodeHexString(c, "3f40cadf36c3b11aa91dfc36afd7eaf0cf4bcfc6f0a9deef"),
		additionalInput: [2][]byte{
			decodeHexString(c, "47b76f785e02a8ed60c55a09dfdb7fc6365f91b32c3390bd"),
			decodeHexString(c, "0f7eb4fce3f6ff3f5d28916591403c001774c0782ee5f592"),
		},
		expected: decodeHexString(c, "d1ac0ef974ce3db46177cb96b302e86b3bd94bd5ecd91add5793df67b34922c27390a6166a2acc006468f589298ca234e2f381354cbd464d93de663a57804ff292ad4ddb21359c5f14ca4bc4f36f23b6bf794f4f639d45a6829f0b54b941f9231bfbb297c802f71eafba89cbf7cf9c79"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_2(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "dcf6ec9075153734868d78db1be031c49847432137dc4fb1"),
		nonce:                 decodeHexString(c, "c618a201ad8b7fd01655c2e0"),
		personalization:       decodeHexString(c, "59acadc81b008e1c55d3cf06eb8fa9b56726e00a49fa09f0"),
		entropyInputReseed:    decodeHexString(c, "57b724d782711a087e475e493a183213b0e039edd2eebbe8"),
		additionalInputReseed: decodeHexString(c, "5a7fe122e0e854de4036c96c8e0a233e083ae4b683808dac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "34ba13a955d53323735cdd3bccdde91da44d330e43361913"),
			decodeHexString(c, "e6a270c25fe994a8a8076ff4e5067eb3c807ee1aa386f7e0"),
		},
		expected: decodeHexString(c, "09354d5636cf0064149152ca1eba3e33596c204cabbc91ef4eb9d1908381f98604a0cc9232e01eab78cc98f940596a1095e029b049e8e0a8cb5a142d4634674f8102b320174fb362d149173903a773b058df3e7a196b5237229e1ad36bc96d491194b077c529d26ec8a3602d4932ad71"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_3(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "cf6d8dd4dfb5c2217d479e9abe418be4a842bb0f2f64bd24"),
		nonce:                 decodeHexString(c, "dd2375c54cb1f2b8eae388b2"),
		personalization:       decodeHexString(c, "654519eb06c2d12206dc9494755f95bbf1988edf95dbf052"),
		entropyInputReseed:    decodeHexString(c, "e51f572c99c2d9a00a2cb2f3fde597fcb5edd51656699d03"),
		additionalInputReseed: decodeHexString(c, "9bd0e5660579fbd32c65bb7d3c66499f35db92b8e47d5103"),
		additionalInput: [2][]byte{
			decodeHexString(c, "652f53cdf8e042a5b3d618b1f25e964c959955433966305a"),
			decodeHexString(c, "34523a619f39b31addbd59a81548938a1b2f9d6d20a36f1f"),
		},
		expected: decodeHexString(c, "33d394e853502d0fc0ac2cb12e363e84a6fbef49e902ba79910a0be3985556728429388a1d3bcde8ca23c157adabe531aa4ee9d055b4ea53334a15ce1af379bd9529a320da862b045c2051c4fc7ba467fae983711fb791e892691a1717c099f3a84f875759de7d47566165ce486699aa"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_4(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "402cc907dd7c4fea13b38d71af58f8781deb4ed0c2af4957"),
		nonce:                 decodeHexString(c, "4e291c9092e86164c608d8b0"),
		personalization:       decodeHexString(c, "4276a379bc713cb1fe7966bf9cc495348fca6d7bdffea742"),
		entropyInputReseed:    decodeHexString(c, "23079e0425e06c777f080c320505d96541f453a73e3eb9d3"),
		additionalInputReseed: decodeHexString(c, "55e1a8b2eec0aebfa3d6478114c323d08f10693b1e841cc0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "94dd49f89a8c0582557b8ef62883db59702e5079a2945623"),
			decodeHexString(c, "39641dd96cf2ff8111471f69dab1623d627b81ac521ece6e"),
		},
		expected: decodeHexString(c, "cdd4356611c557cde0fcb321e4df7728bb8b138a55602d4fb56bd6caa04742f16ac139a706f97c1647a46fea159f8a9339650a2a704e66a2333f9d551d0e46406e01714a14053d4d4ba095170354e7c24df3cadb2f1a11e03bad3605f9fad0d55c997cfdf5a58ddd310d2eabde80fa35"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_5(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "073d6b521a7aeaa3157c0a304547af8c0617a79fdf511561"),
		nonce:                 decodeHexString(c, "f3db1279266716c49d794212"),
		personalization:       decodeHexString(c, "0def0bd4a661205ab97abe72962fd8ae7e08a992a92610a0"),
		entropyInputReseed:    decodeHexString(c, "263321bcf7a2343cb903399d6a8dc156551ccb342e74b6e2"),
		additionalInputReseed: decodeHexString(c, "cac63d849195cc8bb1e8413a48e377b72b41bb59eb905c30"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a20dd147791154e93b3dd208e0d819de12d98760cb2046a3"),
			decodeHexString(c, "f38e988174bcbf19dca7261c4362323b018a1a79666829bc"),
		},
		expected: decodeHexString(c, "24853c3cac2fd38319d162e279fcd1578ed45216368595a926e7afa24399236469b9ac3aee0fa37d8f47feef6d4983fae7970f919d29f2c18f0ee3afba14b879bf88b370273cbef397c921765fd44ca8d74aa0a26c0ce6b3704c2c8563ad38d252624e1e7cb2b3458eeeb139d485b387"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_6(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "e050ea26b758960b6ec6a5bd8a9a2be8375fc2bdfe2ae0ed"),
		nonce:                 decodeHexString(c, "6d2065b48db21f429c72e5c0"),
		personalization:       decodeHexString(c, "13d5e85d5beeef8ef766234205619da179d2959be4109ffb"),
		entropyInputReseed:    decodeHexString(c, "005eb97f27385426eaf7aebc0e8fb177ea59ff5369bba48d"),
		additionalInputReseed: decodeHexString(c, "1bc654eb13e4b5f0359c41b1f0d994765210a8be39f6e2ed"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1943d97cf491dbf6c4338391d036324361cb55c61c81ed84"),
			decodeHexString(c, "822b36218d1e6c47484c0d8e8484a621710e1f3226ed5865"),
		},
		expected: decodeHexString(c, "07dad14605c27ca6ce7638c462c793c248c0f13e6ca88e23ede0842ab22f7933716c6b8a396a574ddb60e3e1e93affa8d1a1e84ff128e0e68b30d38228c4098ea30e3e5e98bb0b8efd3b741e28e79feb0016d0baca365166bd3948324a579b99c5b7e25095d9be809d5e595df7c144d1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_7(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "f9b2737189096e85d7a5a83034af636bc809cb9c96778422"),
		nonce:                 decodeHexString(c, "12460c70badbaf38cec2b757"),
		personalization:       decodeHexString(c, "63ce1faf69ac8432daf87da50064f8bbbf487b659dab1272"),
		entropyInputReseed:    decodeHexString(c, "b605adadf8c76d9c9d6358b9e93dca67ba6d26b2be9de9d6"),
		additionalInputReseed: decodeHexString(c, "5ecdbd157208b108caaf194795e0b3166006f017ba71504d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aa64fca1d8ef5c2dce4d6081f5b21f8d8abc3ef2bb4ad6df"),
			decodeHexString(c, "01a99e5badc90318f723407be65b811c0a138ca934970035"),
		},
		expected: decodeHexString(c, "77b5e9151a15f30e4aed7ac080f4a9010192a28a5b3307d330bde9ae89ce594dcd55c28a57123d95f645e5c6fc1ccbe41e2c68462e9a82f0c8dceb06e0d4ab67762133c4ef80910ed9e89b296fe1739d89f5c70a7871c2e975b6c0d20f95bd2072729afc2f417636e9d36c7b8bdeaae2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_8(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "ea70017ef6c98383b6f13b10cd2d5fc0f1c920b30e64edba"),
		nonce:                 decodeHexString(c, "c94465fd25f656df03d14c67"),
		personalization:       decodeHexString(c, "c804e656bb18f55746fb3327da36d533118607447b27d162"),
		entropyInputReseed:    decodeHexString(c, "97994727803ba385ce143ee55e9a2cbc021b8f1445fec519"),
		additionalInputReseed: decodeHexString(c, "88a374cace7af9a1e5e9c0d731f65ae4b917c14f028a910b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6da929d5d0e0063f4322274fb176133df058fbd90f2e041a"),
			decodeHexString(c, "6fa2dc13280942e941d6f06002805c33b70c1092c148544a"),
		},
		expected: decodeHexString(c, "2efc82a1786f089c82aec7df1a8c1c65b230acdd93937163a3646b2d06f03331a71b7c58c9e885ef50f9f8ef2b28b0c38aa7ffccc8f0dfc634fc7a9be8b80fb94096c02d63aab6386f9317743cb08a1142d7f5ecb216dd00372a3699b9356b054ecc1de2950b3a9d9d44698bfbdff8aa"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_9(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "8f1351d34c5bbd9b1b52627267142fcab99c4fdc858db2f0"),
		nonce:                 decodeHexString(c, "f3532a08940a7bfc3c4488dc"),
		personalization:       decodeHexString(c, "5195bd18a71a855eb7491c46e21b3e4a9f5f9cf19c0b3229"),
		entropyInputReseed:    decodeHexString(c, "ba3c85651d29f39efb15333b6016c754c4cb177b6709b581"),
		additionalInputReseed: decodeHexString(c, "a03a16f13180e1c5b22fd950e80fd4d6fd8dbf6daab90474"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a003db9dfa6226815e7f41b18a54f08b9ebea04434d1d1e1"),
			decodeHexString(c, "032f1824b7f0fdd6335aae1bed62df9554742ced08939bc4"),
		},
		expected: decodeHexString(c, "4fe1c7f47cc6615d983da6b99e0dc813402951ef7981b4b97ea3a26451bcadf5d205b39a96366924e894af9b7112bd97fc41a4de9e89e5ea359b4bd24185a385a031325378251b2761501cfc46c6669461fa6de474fd751705972b0ba36d7200e535cdfd720608bf9bc966d15bfeceb9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_10(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "8e8d56126352668d1b31e963fa5707db20dfd52bed7d6758"),
		nonce:                 decodeHexString(c, "c4296f6348d143d0faceeefc"),
		personalization:       decodeHexString(c, "06ce3e3b9863aa4d969deff961f8239598d7ceee233f2cff"),
		entropyInputReseed:    decodeHexString(c, "c7ee9704b73527932d465f2f16bbad809c684bf54a4f745c"),
		additionalInputReseed: decodeHexString(c, "e4b0373f3bd0809f96c917aabac062423342e23eb57ea75b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3f4e4035e6e7470b500d4ed90271629390f3783cafad2ac7"),
			decodeHexString(c, "1eeaff0b4d17ec48f1fffae86bbacd2015e1d4de15baa11d"),
		},
		expected: decodeHexString(c, "6d96a469dcba01b8d3b7a60f66daf0fe9c557815f389a9fae782332917c913a8009997fe929b277418109e3c1c105d789d80564307d07eb87abd8cbff366e1c497f4a726e6e3797194ecacdc8e50f2c3cce31cf6b0c74da0480b43a3f14c14a9871705766e5fccafc30f52ee1bf882a7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_11(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "0ae72ddae5db4887bb21bb81e3c901bac9b59615b55f3e56"),
		nonce:                 decodeHexString(c, "64df3761e622fa7748dbec42"),
		personalization:       decodeHexString(c, "d9a3d0071fd72910dc6e80e61d7580b143d211ccab5c75f1"),
		entropyInputReseed:    decodeHexString(c, "c24365a64fb2daf23710d03a690c531a319824e29914abb6"),
		additionalInputReseed: decodeHexString(c, "9b5e630e0845133fc133a2c6f2ce8ecec7e1013bdeeb10c0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "19cde173f2eb22bb1cf5888481ba508ad36b44e0889ef6e8"),
			decodeHexString(c, "2b25b7b358d4b4d51fd50d78218ea7bc5bd86c2986b483fb"),
		},
		expected: decodeHexString(c, "235f9511451cbe4eccd2ad889d1a78b38ebe5642b9b9c969e6c2155002150fe30c235d2145fef94216baa0c860df544a864b6bc7705038c9d2342ccaa289f6a7f7dad2d4e78e9b958bda7171223a50c56b8897f45e28c56446e1824b8df172a08fd610ad4c4dc8f869a33b8415cb3485"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_12(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "8512bce0cd36f6314a6304041938c3991cbb51b019ffdd2b"),
		nonce:                 decodeHexString(c, "6a9c0a1212d7bac12efce903"),
		personalization:       decodeHexString(c, "aba98006d78b00269e9e184808690715cb27a8eeea7f6066"),
		entropyInputReseed:    decodeHexString(c, "6e56a82d794db904078b721e54750bfc1c4954c9cd911670"),
		additionalInputReseed: decodeHexString(c, "2f2e9bd063344af9c84777e925ee02ad1b1e7a2e72b81136"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c3af561a1b7b723de7ab18461eda08d916bbf8ff7d9b0c0a"),
			decodeHexString(c, "9bf4321eea3278f06a9e7bd38fc8136aa874d4b3d4f75c8d"),
		},
		expected: decodeHexString(c, "b9a6dbfa35ea863fd72d0fe6df41bc63ca89c4ddb0490920aa304be6d0893ab88730ae2e103e1955371eb72d633dd19c1a7b2bb3373469a96028d96173c015f2c34047c296294b0ee84d92eb15d30c94568fae541d0439b198fa424292aa2b3c34b55ce67a411f2766a05a2f285a1f53"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_13(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "ebfd90af932000b02f824353cb707e6b3414bada53d27b59"),
		nonce:                 decodeHexString(c, "35ffb116b9f274ce4820b57c"),
		personalization:       decodeHexString(c, "10e8219a0841922e94b4dc4f1ce57882d8e43c8fa56d1c1c"),
		entropyInputReseed:    decodeHexString(c, "ce06007c370c209d0718f8eaec543ccddb8a0cf789469983"),
		additionalInputReseed: decodeHexString(c, "883a2320ecfa958dfc6a3cfe3849c84aff081a410005c1c6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "072e0ea278225ded88ea9689d70f9e23c2d96cc7d01d8408"),
			decodeHexString(c, "f0c91c3b8708bd59d5b04faf5baa37e88686c5d9bddf2827"),
		},
		expected: decodeHexString(c, "6011f0b85d50a637e79db2c7698e8c830088477643452efef350eb383498922cde0399f252e398e174c1b1fd883b924f1fb96c89b027d73d31ba309cf01efdfb7a0ff7ed0cccd48919ad4ec3fb03b44c36baece91742bccfa41ff4003c1e4539c45308098b52092b07bdd6320f6b8919"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed91_SHA512_224_14(c *C) {
	s.testHMACGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "757c52a2d246895fcb227c081a25ef2753969fcf6b911a7e"),
		nonce:                 decodeHexString(c, "584c816aa90d16432afe8a82"),
		personalization:       decodeHexString(c, "8dbf7a0200e70096ca727a99bf69eb018dfd86c126b88617"),
		entropyInputReseed:    decodeHexString(c, "3e6d3205af6a2455eb2f414fe758fd01fbf10859672e88b9"),
		additionalInputReseed: decodeHexString(c, "9930658d1aa36f5a9977ceba570540e8abf94819e0090c8c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "afddcb331ef88024170f6a1128828ed7c2efcb36577bbf13"),
			decodeHexString(c, "0b23b62e95cdb6e298cc923e1f084453cb0f8217ee9fc4a9"),
		},
		expected: decodeHexString(c, "88d9deee80cbc4c675c452a966c6b6c0171c8b8daa9d04894563f5a439fb25d8bbd5cbc5c2eba1ef44f8b0e3eecdd2ad2005f301f96e04a57856c3d0206baa01301af7ca9f6f7a3fa76016dddeabbf85e47e2904f83f0ff73e833ba5258d1949512b9a5251cc570e047d397fbb09c020"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_0(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "d7a2c0a83a2a2c11744e3bfc2a8cb211f6ee7f206b70a9c2"),
		nonce:                 decodeHexString(c, "ed6cc950dcb971e89d7d9184"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6e640025d93b016fc6e873f9c85591a5c7c7d85d0e1f9721"),
		additionalInputReseed: decodeHexString(c, "6000a74c3b65e9282bed6a2f100dbae03a90b5a2e9861937"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d2ee0902b369a7c5b9e386f8142000126e2691027cce8215"),
			decodeHexString(c, "847888747daae754fe8c0c335fee234e86987c99c1fa93bf"),
		},
		expected: decodeHexString(c, "9a3e9dae1343807a895700c8b4c33562152e32970057eafaddc20c30ef0dd78c264808dd24579587de76da1ad393e5094b6682cca58ca70b9192fe9f559e8c73769d2ab4fe04ad79c94f575d1d62cafc24dc8a6268944e7e4eb568ac56362e2a5fb2bebeba81bf06d2260ca69a44cd4a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_1(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "f977eb61dbcc054e7296cb10018769d9f3101fbd680c34dc"),
		nonce:                 decodeHexString(c, "ee8d3747d252c8ce80455f0f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "38fdb93fa37c5196e6979f113937e2f720a8a61a8b273c45"),
		additionalInputReseed: decodeHexString(c, "551d7a8f3dbde598a1737d9835a6a515152b2c7e391e8670"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e4a5b01e1360ca50e9f17e1d69f339c28d71689b20760ca9"),
			decodeHexString(c, "4f336988acbe1463348b8c02326574cc5036d7c70ff7653b"),
		},
		expected: decodeHexString(c, "41fea6133eaf71145ba008dc8857d6fd8c6c15c59b4d53423fb50a070d5597cece969a8e7dd57939374715490867ecd9e63ceb738d7ed05d22e3800bb1a7a520517ed8d3c484851cf367bf175244b1f8668ab421a33d88b5d11ca08e53a79d468767b5603fe32afce868f62a552d831d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_2(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "c4a37d7a917b65fc4fe99ce8fd92059cc3609a1813e47109"),
		nonce:                 decodeHexString(c, "d2b408f63f5b4f2b91f24700"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "295a495409e9c11922940a6ef53297ad46351634ef8a5657"),
		additionalInputReseed: decodeHexString(c, "ece909018396eb3f21d7c44306d3ab2be32fe052e8073557"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3471a1a6ab25c0c2bc822a531cfddb56449cb0ed7ee28bd0"),
			decodeHexString(c, "3578c3619a3efa3c92e13d1c09732a50ab8b91e0350c4609"),
		},
		expected: decodeHexString(c, "e6ebe00b03eb4a27ec1b725e04fff68e6454254838cca1b5901dc3dab0c5eca7d09fa0944308d12fabb5be9f700cb6c2e488224988a84a6854f90297d6f12dde2a2354381c7991c38e678063e2c73b2d665132259e5f9906e0415a8847c99c9d5a3e186a37a201b6c7c82a1fa17e3754"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_3(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "f475cb1b7769b1fcf61e38918aa8e5a4a381fcdd8950547c"),
		nonce:                 decodeHexString(c, "82ede8ac1be0ec5887a3fe4f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f156fb33e71c62bbce53aaa3c00e7a90aba07e21f92af966"),
		additionalInputReseed: decodeHexString(c, "8ff51ae9b8ba8361106989998519c8200f9cec9b93049075"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2220d47b992dd68f6a2970f89a3738261a35bf4fe95e79a2"),
			decodeHexString(c, "a91d2eefb047df8c0665ecf75bd1a224a24589346fbdf548"),
		},
		expected: decodeHexString(c, "8cda89634c14ba9f6a2098e637bd6cdfe81aa9bd2920ce0aecc993a4dc540aaeaebe3a65bc02788c677583a0a0a908652e6775091bdfec543ab2402339b1ae0f1e3c4677c34ec66ec0101ae29e3a6dc2a41b46697acba4d4f1c875bc2f762597efb1ac183f4b2904312e8a3143a52ea8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_4(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "dd6e00fbc83026ac7b729a8dfc84961e5fb43b8f979cfd3d"),
		nonce:                 decodeHexString(c, "a778a65be3d4fa3850f0841c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "02d5f2e89a2ee6a0d2c23c0e5da88c33f4dd9c73b574e0ac"),
		additionalInputReseed: decodeHexString(c, "d50ce7006973252011ac85265b3db34e8b002f0e7892777b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "98d3706b0e579b76e0a5afd084bbf0e407f81d073b76b877"),
			decodeHexString(c, "1b4715c41be7ca1c0288d94543b62602919aed38557e22f7"),
		},
		expected: decodeHexString(c, "77eb70f57a582eff9a5ee61e433690640fea9135eaf2bbea2e20656c1f3642bb7c619e4cd71fd72eb7ef19f39eb4daee77571a1b5875775a42266d52b5f1209a1d6aa182f25bf2d403b6c73bcb86ca80a7651d037d58ef5cac8f8d889354b79d393bcad5cc26deb00dab6d42d80cc6f7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_5(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "11ca3e9ecce95fe12c657cc3add7b013fc47395631bdb307"),
		nonce:                 decodeHexString(c, "5a56a9ce228974187e791779"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "aed4f1b519599f4502e3864e26dbe4ec177bd5a2acd9ed27"),
		additionalInputReseed: decodeHexString(c, "579b0362a6731e2b0975e8b403d3284fdd97b52bf0aa5e09"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c35e2abb77178fb6ffbddc6c0ad065fefcad2f08fbbf959"),
			decodeHexString(c, "22e3fc2a31dd147c2c84fef14774748068afaaa04fc91e0d"),
		},
		expected: decodeHexString(c, "0d3ec4e7f68996e913f9761ff33ef79d3be65636ebacb4e118bb2b53f366df5f2f30b4fbd30e18b418be13c2ea525213eb078885226f8187ea551990370f1ef9b06cdefec1b463d587cc30a0fa4188c4ee1b6c203001405f445d4ee00efd68b72f398189287a4258820f5b15d27ee65c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_6(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "879e713f594d2773f704d4c0170c62042810027156fe4f43"),
		nonce:                 decodeHexString(c, "5747e546a0eaf7f7e0c028f7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f397601172eec5ac34891184e37a85aa949a9c8ce032e322"),
		additionalInputReseed: decodeHexString(c, "9a8e2ba5a5059165826efd4b15cd702baae7f0c3bf29c319"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3ddd0ad76ffd9fc2133347ba0f71911614c6d90b57e487f5"),
			decodeHexString(c, "3d437f55531fc76c2595444ca9358a6b88e918aeaa7b7eda"),
		},
		expected: decodeHexString(c, "dde44e58757f6b58917763a320729c4dd00d6df05074ba04c8130aa8c3c4f66b84dd49842f0b4d6baaff217336ea0e524a1bc556165453af4d55d44fbe5a012a2b9aca35c39433bd8b94305f7133049c2e9710ff6b314fa8555690d8d73e932dde8bc4a440de2834d8f9f337d579bcbb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_7(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "e882783310318301568c6ad7321b0e741d1215957936fb8f"),
		nonce:                 decodeHexString(c, "16bcd41d3cae08b266f72d6b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "fc99832514012ea9a67b78f2d5f1120c435c5e0390e854f6"),
		additionalInputReseed: decodeHexString(c, "7578309128f2a7c7634d562d4001ec7b1f7ffc3ccbdcb292"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e84e2915d0d15647482de4945bddfff77c5b8cdd6a08b0d8"),
			decodeHexString(c, "8912dba6769aba9a875684018c84b1ac4eb80dde4d7d446a"),
		},
		expected: decodeHexString(c, "50098dcb290eeadddac212842fdbffca407d1b1642a71cf5355fff01419a6e3cee285c706cd830480d581664b95b6b9cf31db297377f32c46264e7e61098694f3defadf15e49f28c964935dd3b60482ac11122cc3ccaf37365ec9c38ab04bf6c0e02b4f92cc26c0b06241b79b7bbdf56"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_8(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "ed13a428a0f685c395a8da1f9c41bae1b8a0ef487af81f58"),
		nonce:                 decodeHexString(c, "7e797db97091ed37410dfed9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6f5dab96589e11574a53be89a78a46a12b13506de2ee685b"),
		additionalInputReseed: decodeHexString(c, "b830af8b08e68ee8659586d6ac846d17884ab9fd820fe386"),
		additionalInput: [2][]byte{
			decodeHexString(c, "776c45f38babf4962c5e6c50c8f413d83d69a8d860676a2b"),
			decodeHexString(c, "586703e2f4c66e4988641d0af8a01768e829aae8fa4fe363"),
		},
		expected: decodeHexString(c, "fbc526e9245e4e738ca5175893b9af58a042cbb705ca317c5c788cd3b4547f90e2c9156a247902b89447bbb7c3273c5ec5beee3dd0713d9e19abeb4de34944818ea1518340f0dc50937061debaf1f7e7d7fb66b05babdb10bdfece14256be534587559afc0e1cbcfed145dcbee2bc7ab"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_9(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6308d24b05ca574324b5d91a95a06333347c9bac2d064811"),
		nonce:                 decodeHexString(c, "339c11590ea7229a5a73afc8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8f3fcee30449df82337a7ed9a60af216f23f51c0250dc625"),
		additionalInputReseed: decodeHexString(c, "2859e5907105e818c2700381d1db3d3c0a7d56d59d8e5d8f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0c12053773b23673c61e2de603cae1915378ad46c00075ef"),
			decodeHexString(c, "a2c0751ab6f4b8988caa3225f56957e7fb14f3904e68ccf1"),
		},
		expected: decodeHexString(c, "c0c1601afe0752ea0fc0ac126448bbbcb431be8ee719fa0190d43b21f7e5075180722954eb0488e9a8af3a3858ebfe42c8db3ec1f63fa0369cf3e239c6d0afa6a4abd20176b226c6a1fc722342babc19be940df01273feca23d407db7fb6be91bbd7e9895d10975409f51f257737f5a9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_10(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "acc66fe399999247574595cffa8c374e084190ffab32bb59"),
		nonce:                 decodeHexString(c, "654d9864d2640317146133e8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ec06649a8914446f69d7650b4e56a9633bdcbb77024d868b"),
		additionalInputReseed: decodeHexString(c, "70e2971a104a6d0ef69833ae6d85182e44ce310a480dd3f1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e4f86319a1c221105e7c5b82eb70d85f13861cada0ae0330"),
			decodeHexString(c, "b1115e89aaf6d14f66dfa6a917f48a3a91f46f15b09e3033"),
		},
		expected: decodeHexString(c, "179b60de103cd73510ab2143b0f31e904e150c0699a4c74cb9b2bb3cd3ec607e2b841c62e61104c5876ab23bd53934bfcda459a523fe3344c14eab88210af7f24718f3aefde59307414e1796035525c4fb284a6f28152940ccc24bc03f688ca41d8544fe4a49c0f560c08fd4839721f2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_11(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6b8ff645bd92925713801e06e4f8c969b2d0d777888d880a"),
		nonce:                 decodeHexString(c, "f4b84fb2d42d5e8b16de5593"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2f93f020a77dfc417fa355f1a7dbcde534df058da1bbfa53"),
		additionalInputReseed: decodeHexString(c, "86ae6faef2b93ef16ca6ffaefb320e1fd8fd35b44138ef5b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f916f05f1cb5ef1b792b2768abc9ef1ad211747847dfe5e5"),
			decodeHexString(c, "f96f23cd500070fd9bad946c1cb7d6da7b7e803871328c4a"),
		},
		expected: decodeHexString(c, "a277d2191cb075f4a514efbe126947db61ba9c8dd49832ae8cea0699975eda4ca171476b6b160a0a7888e58375c6bce4a725b58a28a0c2d5c4b1cdfdca33e9442337b19c282ff249688ffb2d81e68f2cc27cd27b80f2682b2e2a083b960b31e70d9614e98b43743d96d5f33ead6f6993"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_12(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "ef06ed32b80f450212f6e9d4e5593a0230b85f820dd14ed8"),
		nonce:                 decodeHexString(c, "dbec4407516d591cde50b143"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e33613e124a156a05ab3dee4569f0668ef4022f44279f93e"),
		additionalInputReseed: decodeHexString(c, "4d8483d29c0f518084cb126c245f3287524dd7f25679ce17"),
		additionalInput: [2][]byte{
			decodeHexString(c, "31364a9651b546c21ccfa44ad9872fddcfe9d53ae998824c"),
			decodeHexString(c, "9c39316ea913e51d66ce526f8b29df968c20d3683ceb1fd9"),
		},
		expected: decodeHexString(c, "77530b2c37d278153ccf2a0fad7a4aa9479a4efb5d7966588535aaa1cd5278e6643dcd3f9f7d518e16513049ac6b68f56eb0b11d982bdf56c6f5028ee211c38bf0bf048bb0f75b2c830e038b0b58efaa442b69c1c29414cfc63b12ac1d124eded850a99d1f1570de755ae4ab6333f254"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_13(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "2442a0a76415a8f537fc5d7b8fc37e612b1a13a239089ee6"),
		nonce:                 decodeHexString(c, "844f00e322e908130db51b53"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "13cad2fc0c1267a3439e5acc735a51c0d822a20a0fbcbe5c"),
		additionalInputReseed: decodeHexString(c, "7b5b3353610e59770b492bfee7712a032ab2bb91b9443435"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6113fbd5143c2c8120bca6848339b6e94a55cbae0078c374"),
			decodeHexString(c, "c0af633d238195097a5e4c761174817709cf98c7e6f35999"),
		},
		expected: decodeHexString(c, "a79f4344d489f97999e9997cc18b9c3f78bcd6d69bfc69f4d173ae44a184f738b8dc418e9c39f6a0a70ed28431c149fe7897d0d65ea649783f3cece9de94c2391551c6ef44064342e0759e624d1fb7b2ceb12986bcfaa8c0ec368eef4db2308fdf0549576c47410928de36707fd688bb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed93_SHA512_224_14(c *C) {
	s.testHMACGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "8817a837354bc602194fad0b48f2b999e9473a8163ef0805"),
		nonce:                 decodeHexString(c, "ec590933fe15d0c51b902b68"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "998f484e4047923dea113a988d560d16f2a922a7c2423090"),
		additionalInputReseed: decodeHexString(c, "a8fd10eb64a2f8d60e8658e35243eae8dc23a29f5dc746c1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a11c531f90fae6e8143e61b56c1761b7230b96aa3d6f7d4a"),
			decodeHexString(c, "e1014e8205dd0bac28cf3afb96b4157626918a773576ba52"),
		},
		expected: decodeHexString(c, "876608a4dc5ce0c4a5f9447ce3ac66cb668cf50022cd07214085434da06a62af8d42e3b1a35ffc7fb5a1fcfa56193e1b1d2b61ba53320ec3423a2d4f4409ace572cb60f0dd51c97a1b2f6c4b11248da4d804e6f4c7c0cbaf804684edc347c992b68ce9853ba2e8fd9b088c84a3e069a9"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_0(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "af83ff83a688084a8c307530881a3d996bf4c3b0bf5117e0"),
		nonce:                 decodeHexString(c, "92e82091648b17b5a9f09ddc"),
		personalization:       decodeHexString(c, "ea542f263910c2908e810c4ab87f043370d6defe7e772e16"),
		entropyInputReseed:    decodeHexString(c, "c4df910f07a02efcb57a3ddb9b63f81592edf2289e96f981"),
		additionalInputReseed: decodeHexString(c, "615dbea78cc94c0c9e1f5577518a1ffb4ccd7ddd52f34b58"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ae1d54db4c66bf66d5a099b801cd750343ef016f0083526f"),
			decodeHexString(c, "b1db078d01299791058fbef53dcf5d7de9113e03a2ad9266"),
		},
		expected: decodeHexString(c, "011ac3050fcdc2b3f5b9a4d6867ea4769f5a52c955fb34175cb6d052574fb9f2f6894ab2f46fc6a53235880cce0e9ae6ce0b68f4a33dada0d497da809f879e93618040f96b83d16eb2801005713f5d9aecbbfbff3ea5b994a12ef1655191a95720224a6d8357664b5dbe0653f4f984eb"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_1(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "e25b7499f750991f95ceadfc9cc36ef6194568806c49a9e2"),
		nonce:                 decodeHexString(c, "12502f5410bdb74837ea6172"),
		personalization:       decodeHexString(c, "fa6ebbe9d7a0d984b78b8248e8c72bf90956680716a8e8a6"),
		entropyInputReseed:    decodeHexString(c, "97bd5be0382b7ab8c3ce6fe27765b0fa24f3e50b5c0ee2b7"),
		additionalInputReseed: decodeHexString(c, "85d1ed48a560847861c5d8f4f873a8e9eb8590e81abdad5d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b6b9bbd7668d3a6caa6cec7111bfb72efbcca1100c64bb2b"),
			decodeHexString(c, "874fa5ba23647f6daecf496927512dd7a9afb56492763b9d"),
		},
		expected: decodeHexString(c, "40f0252ba0059982d721fcf476fc4015d412c2ac425adc279d6114f6c873beb636fdfc7b0cec66e70beb2348e87c497687f90cefafab42393703ac6c81860da4f866e9497801e9018d858b3d0cfa1ed65265a995c877e1250ab840596612d714ac39648a725f8edaf1bb9e6d3345cc45"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_2(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "7cbe1355b01b8cc9778734e11e54c44af5cac945504087b1"),
		nonce:                 decodeHexString(c, "c2b56e57cbfb69aa71307ccb"),
		personalization:       decodeHexString(c, "164005c66ac92be926020a6bfa1dab64463aa0e97d529ecb"),
		entropyInputReseed:    decodeHexString(c, "681d8133ce1fe95cb27fb638323c9ba9dd1eb69b3be9bada"),
		additionalInputReseed: decodeHexString(c, "d2c3ca32cd9e396c8e7204ef4cd88291339f110c39e9eaaf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4ec6d07130327e17855b4da1cb187d9bc00da89e9087a78e"),
			decodeHexString(c, "56abdbd71a071c2ff6de3610f079fdcd1212dbf3e464d2e0"),
		},
		expected: decodeHexString(c, "fb9d3253259b7fa4c6bd55d896a2414309e1f66153033a55b01d990dea7f9cb3dd78dd628ecc45c3b71b1c1d857599e50a33dd3da78ee180d23ca0742158735486003204b231371f2b495e070c5cfe295a6767e168eaf71c247200304309024f52716fff4c08038c42984f00b563c1f8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_3(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "da19d80c83eb626ae8440d7404d271ec934bb41d49a460fb"),
		nonce:                 decodeHexString(c, "232e8ce61626a0c351acfdd4"),
		personalization:       decodeHexString(c, "557087825db21132f99200b4f3e4f57e0537544073f34e1c"),
		entropyInputReseed:    decodeHexString(c, "fb3228b281ed3bdeb91b9ca31395ea56f41b39e30d5b38ce"),
		additionalInputReseed: decodeHexString(c, "4b232647985abb5b89af861b6e712c8499630ae72651edde"),
		additionalInput: [2][]byte{
			decodeHexString(c, "13bd9add8f0d34d880c4d7214c29582d47e4f7688631ff91"),
			decodeHexString(c, "6d8d3e137edc101062fd9da95f79a2f94eeb46774e7a5a16"),
		},
		expected: decodeHexString(c, "be9291193d9e5eae5d8305a50207372588055e825583355479a6baf314bbdb5ddfd86195f3ed4ee38179c89d9994c21c62f5585356c4488ca46f64fade3c485fd11351885ea6a933e4183981d4ec34fc44d64deb8705d796d477bdb61ed9f5c0c9a0f7943b9330850d6f9b9e0dda227f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_4(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6daf8ee801420bd9952e85a4c91957509d87c084528f1e4b"),
		nonce:                 decodeHexString(c, "9f9fb695be2fc767beb6f1ff"),
		personalization:       decodeHexString(c, "7b8d1a75c830d7d2e17c7fac0cafab9ca250f4e139b3158e"),
		entropyInputReseed:    decodeHexString(c, "75d0db99fe7f6634a1d789fbe17d85ef8877d35523b0fe06"),
		additionalInputReseed: decodeHexString(c, "5d08f2066fc713c464a76c52cb8b6910b54b273a22e7c801"),
		additionalInput: [2][]byte{
			decodeHexString(c, "622fbe9588f32cf012e020dcd7f14836fcb1794a42834c56"),
			decodeHexString(c, "aa88dbb51a48aa97a75c5823fb95c52af547c01553bbddba"),
		},
		expected: decodeHexString(c, "6ef18356d49b9a0dcf107671a6a83deb381667013b551de724c81031c54da195057bebc13bf631f8c886fd06b35ce7f74f507ddaf27551fe17d71de5645e2ba168dba7cdc347ef30e8026b953299ea97196b634adbc2e3176e357b8fd22552e3df4e65f54cd2e6145ba6cfd285976998"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_5(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "43f6eebf1bd70eeb6fd8b47e4d473c8af788e1ecf57dcbd0"),
		nonce:                 decodeHexString(c, "dedff9ccf5146dc47cabdb94"),
		personalization:       decodeHexString(c, "8ac3b8299ddff225a716570db1f6448f12a3d40dad0b59cf"),
		entropyInputReseed:    decodeHexString(c, "728a12247480e6e4e90c9210a3d45ff3d3bb2a203c240a25"),
		additionalInputReseed: decodeHexString(c, "d76074a327cb2a8e8297fd3b55ef4c431402b326411c9c37"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c1c7a007af9ec3400e58b0cb6166b5757496d1fc3d7546f0"),
			decodeHexString(c, "879c4625c00164054f75c220ff4e904e803a843af17d3321"),
		},
		expected: decodeHexString(c, "acd348fb91b22edb8668ac5997a5fa20dc15118a5026b17be5a6efdc13401f63a3e4f538e10b4b0017ea85e948adf9c4374cf67ea5eb284e936903790d9582ff5b7626e70f14dcbe73c880887d7888e0c3e47ada7d9e8584d087b2bc8e6793e892c08f9971828aaa57fb3b63bcddc781"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_6(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "ae3fcef12b0054e65120ef7b3b2844d79d12d88e3fbf9279"),
		nonce:                 decodeHexString(c, "a772dd04899f1a3d100a3678"),
		personalization:       decodeHexString(c, "001ff619d581ff7bd23e721eb6009a04415131af4e623415"),
		entropyInputReseed:    decodeHexString(c, "438788d33f3ac899711a3e648f8f560a905737e53f83dc4b"),
		additionalInputReseed: decodeHexString(c, "059f4e3d4731387a7464376b0017da4c20154ca9022c9894"),
		additionalInput: [2][]byte{
			decodeHexString(c, "07873425a669cdb328d09b023d6c09308c6faf5d16280f00"),
			decodeHexString(c, "33b45af6fae14dddd5f6c6e4eb0a4583ee087bded1121c73"),
		},
		expected: decodeHexString(c, "53a73afc8a04ca721d650bd1db442c43d8c987974afbbeddd0564c4ba301fb4b98da48851befc263e62121454ad89f7923018539e14fe77afc993edd654112fd620b0de26bc85df0ddf6c1599a1f2348f54ede12bc995d4faefe0a8c4ef3dffdd6eb10a99b8328d0ba4287fcc713fb85"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_7(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "94139f58e9d3aee01ee061d8ec0928434fc3008b7a475248"),
		nonce:                 decodeHexString(c, "c62bba69d6623a60347d339d"),
		personalization:       decodeHexString(c, "13bf7e3fce3ca383f871b021f75a28647646e4ad190e0c06"),
		entropyInputReseed:    decodeHexString(c, "9df84cb0a967800541e3fe6ec6c538af10eed81c807231f9"),
		additionalInputReseed: decodeHexString(c, "99f343bff578436e8f36580a080ec99d54c59b2417aff101"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f84ece37dc98f4c479e00b14c1f56a536920b658decb299b"),
			decodeHexString(c, "82b7e25324e8546cbc6ebdc8893da6dd55075108612db16b"),
		},
		expected: decodeHexString(c, "5f8f39cf9c7eab6c693e2a727e388366f6e51357a8999974144ba86b7b8e0095cd12492d2aa11f48bd86152f6b7d3e0861e27c4d7aebbbe610dc0b721784ca53d5cd010a96f76583f03ccfba2316fa9ab91bc2388a35431c04c8b9e1c820207283f9ff2c39fcace10f85adf8d70ccec5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_8(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "840b6c669d668a0e32a4163ec8102ffd3b9aebab133218bc"),
		nonce:                 decodeHexString(c, "50f545348da2260a8ad8d178"),
		personalization:       decodeHexString(c, "e5cf80a98a058bc2df6ccf99f145d99f803aa6af7014142e"),
		entropyInputReseed:    decodeHexString(c, "1434b86c4c93f6335bf8301dea23c51068bbc4e217f015a9"),
		additionalInputReseed: decodeHexString(c, "f7b225fb628cd2cbc71bcf0015601f6f3653d80643156804"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1fd892a2411a02f9b75bce2d1bce16e248ab2c0b43a6c646"),
			decodeHexString(c, "da4ae0568830ce27f7f3977515728e594b896ec49619df82"),
		},
		expected: decodeHexString(c, "5f0082f8e6ff60b90173910b9ba19f2676ad18a9541dbb3aa5ef186bb9c52eaebb016470679135df9c1267ff8436db6d58f9849a2c5f476861a2d05cd2e09edeef08c0eda6f5e3c7fcf1e3ba944697b9fc184e4e2a0808ffb63fb98756adceaf1cddf06c03bf77ca4f08daae5224f897"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_9(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6a63b5cf1de269e5eb790d843d353620869e5c4a5f2838cc"),
		nonce:                 decodeHexString(c, "ae1b5bb45b39ee33046ef0a4"),
		personalization:       decodeHexString(c, "b130f623c922dfd210bc0605ab2afb534065dc8fccf1d7b5"),
		entropyInputReseed:    decodeHexString(c, "c5d7067db2b8780532ac9eb37cfc81a53f88ff17a605ea10"),
		additionalInputReseed: decodeHexString(c, "9d45dff439bb3034f12a20013a09a0a90ae8c2a257807907"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d59f602674ddd93a6beaecdd221a730dd5b1ff47d7e2eade"),
			decodeHexString(c, "bf76e11de106999425d8a162b59247b989f9dc6f0b256066"),
		},
		expected: decodeHexString(c, "b05a6f23683e95d0bbff9697f4c37baae4c615d4febe7f16b3987c036f1452eff6d06d6484be61154e13f66a76c066e9c6aa5c8f50aa1694069bea405c61d873ccd9f5386f3f8c1e847496143fd74ef71d303dd4986f734f7bbd96a1ce457511c4150c1101617b42bfa6385bde6d30a8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_10(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "bfd93fa6fed66324152595b6017f9becfd0ce28fd9f97e4a"),
		nonce:                 decodeHexString(c, "4a4b9e4ec3b3678f0d033f6d"),
		personalization:       decodeHexString(c, "a271be5d73f9deaa7ec91dcbf7889da7bdd312764863d5a5"),
		entropyInputReseed:    decodeHexString(c, "9038ea5ebd7f9c970abe66367f1f6163d0e83539dc84f75d"),
		additionalInputReseed: decodeHexString(c, "b5f2564ac227cc6e6f021fe7d76f0ee6a9c4489e746be4be"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b8a3d715bd74e097bb3b3131f53d2b07c429b80ebe41d87d"),
			decodeHexString(c, "eee378e8731a4dc791247e03b521543f923c6930e420115c"),
		},
		expected: decodeHexString(c, "8865d2335434e82e143318d8f02ca5cd9fc489ed64d555ccc58a300e063ad7dd35d6e158c6ce6c5d02bef41c27c0c07f0b612ed253f1a301d59e7f76a90a972bce5b11ac3cec07d021a5108010796be79ab05b5ac70bd358f5f2475a84b8e3204aba80498fad0bc005ef8e2a07ac5aa6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_11(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "7753f25b8dff01869caa1a7d7a45d43c9942669c33a20bbe"),
		nonce:                 decodeHexString(c, "4cb4cb547430dd01b6f126f9"),
		personalization:       decodeHexString(c, "3330d4160066b3fcd84a3ad8c522e3fc7e95c172f76d1767"),
		entropyInputReseed:    decodeHexString(c, "8f931bc057714310b68d098ecabd4cb6496b71672e398387"),
		additionalInputReseed: decodeHexString(c, "9dfef3d99d4b893ce2a0efab7fcfc0149d3fc0831e5368d9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6b479a7f9e4344d762987189bcbe32167ff9efe99c4ccf5e"),
			decodeHexString(c, "477a643733eca43ed520ea35c6607c2af7b22e044b9ef08f"),
		},
		expected: decodeHexString(c, "9a7307fe997bb2fdc2829f916c1dd221660b49af669b7a9915df7dc10ed6a3e5fe0e82d6aa0efa92f1f5b2e4ef33c3492de5b0c832bf1559202e85d6c7050b0d8024f9616ef377aa7a2565caaa70b9e091ce90a1ce462bd81979e997d01f9a4fadd3e7977c9ec90e57414c2fd1ba949e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_12(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "3834f7c04357939f95cdc548f5b2870baf53c256d954139a"),
		nonce:                 decodeHexString(c, "4b6ba72e7ac3f71ff0510847"),
		personalization:       decodeHexString(c, "647233727a79771f6d35dde2519efb8c6ee67c5326abf41f"),
		entropyInputReseed:    decodeHexString(c, "cae639479fc7d94962289666bac30b13bb2c3bba2a56c8bc"),
		additionalInputReseed: decodeHexString(c, "580fa75fdbab2043cb5c7ec80040ac843e85201b4665ab2c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "615c579e149cd0ae5b05dcccf647c93572ac38c9f3e2e1c5"),
			decodeHexString(c, "87cddf670d85fa582110562314e298cca68667d7f1ce3201"),
		},
		expected: decodeHexString(c, "15a16f8c5802509ec69e3d5c28d336a783cb4bd64daa8d11f3d52ce8f8568714376f90f51377959991b4f8647c743674c23c6f73e2ef3b238aac54e2d41336a51f547eae995a7a01c76f43858df2e88fd70b41f7d67832b782ca4635dca42a1d4565c802fa4ae0675a3efa794fa2ba8b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_13(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "455881a21cbca6c7029d574cbb724dbcbce4111211965098"),
		nonce:                 decodeHexString(c, "1df34e5f84f1b830c52c8dda"),
		personalization:       decodeHexString(c, "b3019498cd32efc73ee4ee361cf7cd43e713f1fd2363825a"),
		entropyInputReseed:    decodeHexString(c, "12a13a8ce4684048ef507dd684ceefc54c110dbe6c7b2316"),
		additionalInputReseed: decodeHexString(c, "52161ffe0bd4b7a99b8d6e02612517b4f4b6a528aef0e9c0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "892e552315c062fcc1e0fe7c7bff83570cf6313410dd6bf4"),
			decodeHexString(c, "e25b0c7a3600540230b35cfff73e516df21e52150e7b7ce3"),
		},
		expected: decodeHexString(c, "a3e70b18f5bd9425859c1af0e3d41ad186b762863fc9d56a2e2ce6da63d52c45721866a3246d8d3493e072415e3b972e8bf90df5802a7833e57b59575bfdc72b4d0cb185899af89b632196b439e08b4e4a667609125b9396f1138fd4fffeb20dbf2559df4af930a62d2ab4aa94b2f91d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed95_SHA512_224_14(c *C) {
	s.testHMACGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "dbd8d05162c869e1123a92cec86fd02d31485a25d749e6e3"),
		nonce:                 decodeHexString(c, "685f4d3dbb1424e4ff811996"),
		personalization:       decodeHexString(c, "d7ed03ab67b33117a5a59c4c6ebdef59dfd9af1e1774f979"),
		entropyInputReseed:    decodeHexString(c, "326b34317c489d5696ce949346cd029f63b4c6917a0035c3"),
		additionalInputReseed: decodeHexString(c, "2bb206512b887b6e87da80bfbaa93bfb257c8fa03a10fa3c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "59985b969db217242c6ae9f8fb064052f41a53584272410f"),
			decodeHexString(c, "f88609ab4a8ed6811325b704b1f872a05cbd5c4a9207521d"),
		},
		expected: decodeHexString(c, "3e2b46654759529c2ab2e261e66432a2f535d657a6e0c24594a064e1fe491fbbb3ce74a92feb21c0dce4b87305b6971b439f787d6935039c9b29eeadc7dce05f4fc265f4e78ea92e985e4d0372d380114b3f4f5f9c9a70dc3fe7d74c5f707352d017e2277e03d108b6f9a4cbc5218404"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_0(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "46fc5de4ea7d31c60cc62b49d283b7bc71778a028273c0bd4e59f590e168ceb7"),
		nonce:                 decodeHexString(c, "d91d148f4a52bc99c269d46729d594bf"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "76b955c9aa4c290418159f4d805b427de35e42aa1cf10f59e743c56c92280a55"),
		additionalInputReseed: decodeHexString(c, "6722b8f0ae83cc1f52e3ded6f588b638881d5e097d8bee2675ae30efb417936a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d7eae425d0a484693557a53ef97dedf43f255c2a9e38a8334ccef35829e04f17"),
			decodeHexString(c, "eb3d3e3fff84d72a84bf94fa49b643d7d1ebe768b4d508360cdf962eb3cd48d7"),
		},
		expected: decodeHexString(c, "9fe074750995b0c2638eb48ab66957b4033fa34202a7cc9a5354ea2db4aba89ca10dc5eda1f03f9f5a9fc4cd9b9191d96d056ab74f5a4fda15442f1839dff8f240b06e9276f03fb1d7c3b5a8a571c37dbf89e9ed8afe09e542add83332d730c4f74124b7f59fea6a6a8e816ac5e0d66d7944cf9cf18936163bb8a81a34f0d4a4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_1(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "031f44e0a067282b73150a4892f23079325e1c1480c549c35e1604c0c9bb5947"),
		nonce:                 decodeHexString(c, "29d613b24f5f5be62260d53d8b0c4f4a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "26af6de0749827a9f92be9cc7d3236d57f10cc559f8e361fc6b3a525824d78f5"),
		additionalInputReseed: decodeHexString(c, "3abd227d7ad58b8c9adbb867c8605d842083aa12a61b5ef0b187f4fc8bdec2f5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0dfa9ac14ed4c286a8d3142fd5838f4a8732e3a62cc63ad19b3a324aea725a4c"),
			decodeHexString(c, "fc4d07597bcbabefbdd88b7c46c93633e109cd27f4d1b95ba11b7af0014da6c1"),
		},
		expected: decodeHexString(c, "233c8f11699651488332eaddc8875a56e34b5e3fe41ea31d7d04ff1c1f465335a301b5e5ee18e75bfb410530a3fd98ee2cc14543ccd7b16461c31583e47a10a99855b897d4bca09c0c4d828d8e8a03ad23c0ed72ac457cc23360681cfd7cdc36baf010becad5c6c48b43757653240faec4fdb25b5a3e3f3e2aba37882c7aa69a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_2(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "d9f0ab6c6b873ee8a2dc1ddbd8a96621eebc612936e7dc4cb5cf020dd5194528"),
		nonce:                 decodeHexString(c, "2cb3e21b3546f298f6a5d6c5461b1723"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "09d8082de328e4b21f2fbe1b3c540525a73a1450099a9013f57b6a0d55dfa899"),
		additionalInputReseed: decodeHexString(c, "b9d0187b13667e5761f027a5492ac9d4216ca6ad1eadd9ec6ff518e2f41b464c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "177b588127fb9cbf93174ddae9f15bfda493141b0d0a4322641a2ad455b72632"),
			decodeHexString(c, "989e98f30a4af31bde8ef9b010db0ac09770a6c86e3227ba77dd1ef87c45e81a"),
		},
		expected: decodeHexString(c, "7be4075dbdc3f5670adea1611f4878fa09391c3f54e3815c29cf0393ebec077a02e60d28886d5b3d09ec3b06736be0240d32c80aae9537b7c4e62680e10a64cc54bf040af0194ac066eae34e0294d96535b6bd3b36dde9314697b5bebbae2a11b66c103a42f6e94d9b1cecbf39fdf13845363a09ef28c734710ca6221d35a3db"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_3(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "2ddc79c7aa8f4b9e00f4ca710e14fe64f09bb52f0b878bf4b6b7dab3600c105d"),
		nonce:                 decodeHexString(c, "de8cd49bc6caabf8a903e98df08999f4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "383f08a66feefd0b89044ba502e75b4d333bac5f8eadfb8d7bf32bd0631e0f6c"),
		additionalInputReseed: decodeHexString(c, "da8c0bc564e3e7f02fea66b831833e8c95505057b70ed0d0eb7970016ae91560"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9a8e73d82f3edac928c7fcfeb7e3ad3895a5fc4e9362a6596cfe243f70bde126"),
			decodeHexString(c, "21652e79d11f70a6965dd9c5fd56d29b9d2f456fddcdf960eed1888c1cbc4b93"),
		},
		expected: decodeHexString(c, "1c59d43a85c2bea97a0bb69e7b3549ef53f572ed856939b8ea25f939e4299051943a33b1dca599d87f0fe2a76880da0a69ef23100100bde70b3c81fa91d457b4d601c3b6695f78810417eafddabb9667d626770dc8b9279cec65bafc6fa524a1b317942d1c4ecec042a9e01806b30d43896d410016197b715eb6eb70d5d75e71"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_4(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "7f62f1b907fb2822f5dadc336649959638d8d018b30e301dd6f21456d1a9d63d"),
		nonce:                 decodeHexString(c, "94eacd54011359a5edc5e63dfeac2f35"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cab5b5ed07503ccbef8fb21ff8c23c57717b5002f91124be3bd023086091b884"),
		additionalInputReseed: decodeHexString(c, "db4ef60cceeedfe43621a54132b70fc3f0212c08a773f9fc129e1cb9db9faeb1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1035452ef904ae0a5cd5ca2583302d774a540b90ca4f7137128e7939cbfc4c17"),
			decodeHexString(c, "c8f916ddb82e4ffc5eef1a049832cd0e415e5686792df7e39cbfed8051c14497"),
		},
		expected: decodeHexString(c, "d7a1f9a706f761b58ecc8ef81d65015e2381daab8483600bdfd45f6c6a1b7835b31d7d660f2bb90e357b3fbea21aaa8630668fea7ce97d983d50c1e1acf181f397124a4bebd9943458f754bec99ab5e0892e6e121f579bfeca0fd83c46c56006c4278c3d5778a03e33d590913321d4721fe4670b2f7372054f590908607ef0e1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_5(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "37c8b658b5fded34edf7ac6cb3ddc23c8d09816fdb212f226d6bfbb4ac61df8f"),
		nonce:                 decodeHexString(c, "2b9a8f5fdef969c55c5338864c4c933c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5333b5ce4a95c9e235604908e9fd73efbf7f5e87834faefea7e5010e86a8ca8f"),
		additionalInputReseed: decodeHexString(c, "e08ad84b8542db30ea9c7382d3cf5daf656d2d525f9df87827b186892532de67"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dcb3e3a4704800fc0f08983f3c6b7b95fcc740fb38febdd49e96b6ee645ccf9f"),
			decodeHexString(c, "7ecaaac0251663d2fdd3720cd6c7db846a7ad0b7b5325cb92a861d900a3540d2"),
		},
		expected: decodeHexString(c, "f7d1d9ecae703fb5e396ad6e892aa853558304d7f87af44eef7287426cf497ac931e7af2271829b76740804e14b79e287017850234510ff1f887b9a38c0fb8fca6be9c4a25e6797138f89e73973834c268f5ee9c021107d50b49b1b3e6357e536697633820fa955793b0d8557f23b119fe171285a847b653473a3d634599fc63"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_6(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "5762fb19f1ea0d9c327a2a4d108e91ccd18f72b85dbd9df0954b7d2b3d02e312"),
		nonce:                 decodeHexString(c, "355f17ffee210053373332e535fb657c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "37de2db71e66fafc5441556686aec874aaedc1085f7c2505560bd2b5ccbff943"),
		additionalInputReseed: decodeHexString(c, "ce47133c1f6b32d5c97e746fcde8dcf260553a2aedb7eb0ffe480a9e764a282f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f8c3aa39ceaf85204b8036980adaa7be61ef04ac5b8430046bf1ffe9108a245e"),
			decodeHexString(c, "ed812f762e1871e6467cd953f3dbb73fdf31bb76e657242cba82cc6b9a2e7c1d"),
		},
		expected: decodeHexString(c, "25127b184c707ea16c4ba5231c9a312fb18faf8b2afe38672534018f7f8086e43cd60ebea35280238ab4295865d32f98f86223918d848ff6108ee608eae96a24f2db52a14fdd3229e32594b2f510792677ae18328a3e6b492e1c25b7ada87741f2624966a33647d7351419eee2d601d7dc47e8e16e2a803bcb9715ddbe991b70"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_7(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "c8e030af47085e10394af9ff9fa9e2fba7128f22a3687e84e4955dc61a3408a4"),
		nonce:                 decodeHexString(c, "38429e3364602e2e919dcd35b347eac7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e4ab6f0e0b7e371ed941427e556c5fe273618cfd9a697258374fde562b0f02b7"),
		additionalInputReseed: decodeHexString(c, "6e7897b3bfd31255b03278070444b082766133d7a395baf911bea37ea6b89651"),
		additionalInput: [2][]byte{
			decodeHexString(c, "61467125fb3e56665646f6c7a28a00578da13418a7e8fdfaf70d4fdb22cffae9"),
			decodeHexString(c, "d17fb644f6ff594b195a30c2ac34c2a900fbc63f517f1a9f474a2d70dc07f6e2"),
		},
		expected: decodeHexString(c, "d8cdaec4379aa173930ded1b0eccd085e3f2dbc8d68aa43f50c8c064e0dbb6e77c467a11629e379e6aa56529d637f725d13a5d52b68c822a7781a4e394256b21a2820a10e28d445dde77eb22d12263cc6ff54065468811f14ac921667a81bac54fb028a2b17779154a87d732141f605f26b55705239aa1fb381bf282246baf25"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_8(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "1294c6d534e9c15ff72a7becb0f9868534344191c7489e15daca390f67e325de"),
		nonce:                 decodeHexString(c, "d08e0e36de7e374d9d44707267dadeb8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a2a0bc3ed6b585856caa14344c41a348a93884819c265d84d3c2084017f98ee6"),
		additionalInputReseed: decodeHexString(c, "c99317ac0596c86618efa1bf8d451d4839a153cfe98aa201fc143db2bd695d45"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fa10194fec489c51ccf4fd45efd7b84147ff0f73cb8facefe43445a0e65c7a74"),
			decodeHexString(c, "38bb974e3d5a8ed1950c21b771230fe3b118149fb9c8259df3900bc1536e2200"),
		},
		expected: decodeHexString(c, "ca8e3282a7545b66399fc3d632a303595d98a9b3b925f97513be5cd33248e39aa46bcff9b724476b8aa3884bbf30b342e82dcdb613dd0303c2eae25ff63df07b20e17741134763d1ecd0b82db0fbb9bea5064c384db6cd08222fce4c622c94549cb65f27e3919d66692da5d59836cbd520824c989ff92ebdbee66809a9cf70aa"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_9(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "3dfe7bfad11610898f290cce80346a01cacdd4f044972277d364778534fe53fb"),
		nonce:                 decodeHexString(c, "d225ef087e98575254f27251bc3eaaba"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "98aa211e1fdbbf17e08acfab90a36a478dccd1ee3c253365d1bbe4cdd474d012"),
		additionalInputReseed: decodeHexString(c, "04570a60cfe38356c1b6d880a35348724a64b07c5bdbc3ed7581daf8c0ba86c3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9efa2af633f9af88fbc303051a0950dbae37a8f9547596079abdd90336999e76"),
			decodeHexString(c, "a22b07e3e9ee3aa8b1ac00d4877a0dcebea722b97e827ed34a4f005f9e298916"),
		},
		expected: decodeHexString(c, "450a7191ebc51999d92a62f4c46302a671518b01e7ba408c3a3ff2e367eb3c6e06b446bdf9b03921e19ef43e6d6fedb7bdc2e1df195da183f7177d80cb42516a0f95bc4cf92c78c1d8f9f8515a8f8678fe3cf684d1023010e91cad995858cc9a500d12b4dae30cf02e223711496b3980221bc95f9ffcd5028ec76ad46c7ad76b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_10(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "288c6c7f68ac7be0922d6e2b17b523a9f43ae3c0bb82ef61a0a012ee7070b963"),
		nonce:                 decodeHexString(c, "5e22d18f86e53bb5b6b1f48776ad13e6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "47cb99b5d70db8deb7ac090597423fed274201a28f2ae3e133b7c1b292c29913"),
		additionalInputReseed: decodeHexString(c, "45eed40d00b46f617ce52bd36f9da74dd9b1b602c653863d995f9ce6cb1eada5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "02d58e98e152d331f97f5c25f4ae7ac4ea8cfc2e84075d61dc562a72c29848a2"),
			decodeHexString(c, "ad52e35cc162099e60e119cd59cf06f2e28b108cc33be0c2a0b18996fb089ff2"),
		},
		expected: decodeHexString(c, "fbf3dce8985fe5fe7ab2469b2290253a1f3668697f9b85b445ad46b548ab2f481b53438b2cde31fd2679007fb4268fed75c79e553608d4e475d32ee6e296649f0687cc212c90e1534b88fd251354826257715cfbec77c10b058c86bb5623be95c7269eef9cb655ce9361bcd1edcee1516c328ddd5314bf246ead64b9cf075e51"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_11(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "08a32e5df2541ed40d3993dd8dd99308713fd31ee9f89c6e2cc01466dd85c701"),
		nonce:                 decodeHexString(c, "65ddac5ff68a4859a1a50d7fae8b6ae6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1fba94af41cf0db1cb1c5cf96b2c89dece65fe81b8e31fd770ab815e5fa6fb29"),
		additionalInputReseed: decodeHexString(c, "f6284d4690d63f36afb9fd3f5b072b0e56cd19df0e0aff052ff30484b96b4a85"),
		additionalInput: [2][]byte{
			decodeHexString(c, "001e365ddfab04c73a4817774593ff25e939523ddc82cdde4007ef6c8bcd553d"),
			decodeHexString(c, "4ed1bfee4d433e77c7d9a9f975638e69218bc87d40a1af36b61887c333b0b919"),
		},
		expected: decodeHexString(c, "94643f4203f3b9702d83b19dbee0e2ee1aef0a0c8b1e26d5414eeb3cb7038ce96a1fa16977993788fdc93410ef20e8f7e74de28e95d5c5128f4d77b66b436d92a83ba2afd23e8d1fa2b27d4ac0ffb486a71f66062fe118fc5272ff054ebdcb61544788653f6d35cdc0872eecf7709d3f69e64e9d84998776535813ff8abd5aa9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_12(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "72a80a9c5234ac4275e896d2432958678bb3b29f7b72f2fadc2cf69c65cd077e"),
		nonce:                 decodeHexString(c, "cf462817da8288782969e7f19a00e548"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "839d9513ba111378147bbe08a9aea9e5769e59f81edb4588494e49e6b1cade5d"),
		additionalInputReseed: decodeHexString(c, "c4376c52e04e4ae0ee91f40c72ba0733abd3c5645d5d33df0ddea023f0ee58ab"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e3158c1409d674f5aec4b65715d7c4c1d227cf1840254f1e3606e8dc32ea21f8"),
			decodeHexString(c, "b6967e7ca392f4df690425eb159d6c84b83bb2352e9b2b3709f67807f18921b7"),
		},
		expected: decodeHexString(c, "516881ab8f153adbeb482d1c899e6ae0675feb1b358ac7ff257e43299158aca3dc909437b14352b0aad58df905d1ef2279e669337e9096e19bcc09951013825a67a99d522ec018939d3a5997ff9613f346313eb67166a10a1b01a851a595205855874cf03c7a119a5ff1dddd08ac9ab470ee9d0f741c0526a343a9e40afac866"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_13(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "0b65868d3cb2626a97e9dd9eefd3d2329ed62253fb0e795f6b11c0872c7a504b"),
		nonce:                 decodeHexString(c, "8f2ccaa01122a6ac801526d336ba7d44"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c420fbe80fce3f02e5fce894d5830a3260eba8cb8d86fc2f9d543332030accd2"),
		additionalInputReseed: decodeHexString(c, "9ed9859c674d3f6cbc1be5d3f94a770f7d55a6fb810200491fc7e875f89f68dd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "52429ce6faa24911ca49f4aeb3a8a9324555981463c5cf8783bf321cc90af887"),
			decodeHexString(c, "f3c3481c40f9dca1a68c199af621223acc8a0fde196899b9d1efec9632246c6f"),
		},
		expected: decodeHexString(c, "c91344c149d23c9c1de3fc9ea03e38c3bd6b39e69f9129fd71c24e3cc12db910a67d641a689503217d0a39292505022be07ecdbc19e91087064c598078ffbe38c14ac3d854941e81b124786601edc8bd0e9a3f13ab6fb0ff9e3ed87e07629daac45f15d8aa932a055622d80248db80ff49af46603a1fe7bd79b177672340256e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed97_SHA512_256_14(c *C) {
	s.testHMACGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "f6a4815efb20e088df1ce4c2f0beb8fbebc96cda75f31e221997a112a7fdfff8"),
		nonce:                 decodeHexString(c, "8d5e38987ecc050b8b2216b30a80cebc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b909e6565058a7a39ad7a10e013526ebef8afdad4c4df65dcf759d3dc2fdc4b1"),
		additionalInputReseed: decodeHexString(c, "c8f9a907876edc93019480678c1372cd50346e8c63801afb33db5a3f9b8ffb2a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ef16e8e7c147243946c5c018f2f29505425e6f43ff77078efd7f0e04854c4ca2"),
			decodeHexString(c, "623f1207816f1f107563f387487f0954e6e7a88c4b180a06d66ac0e28d118541"),
		},
		expected: decodeHexString(c, "e52b19aa7f121d102a727819069216093e42962e09d4935476ff1f8ddfbb8ade53355fd8c006c46ecd5878bb73b96a5f1c0920687096ac708d14af3a271aff7a81608ac542d28f0de2312fe28415d60096efb8798a83b5dca66e8f262300b12ec39f781ec595093f9f8064844a1b560c064afb171408776080cdd2861a4ff2a0"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_0(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "07fccfc253700b6a75b370e08a3a7656b05819347bbe73ec3cfcb89ffdc378da"),
		nonce:                 decodeHexString(c, "63ce5f986444388962778fe385783b7f"),
		personalization:       decodeHexString(c, "6ce71511c29700a427f2f12a482d86a978ac63c6a1b6a83371e3c504f26d5b45"),
		entropyInputReseed:    decodeHexString(c, "34ac0aa158096b65676ba5bb6766db02f8eebc5a5124204d778f15db8d6f05e3"),
		additionalInputReseed: decodeHexString(c, "a1232e22ba068ae1ccca1a02aee7638b3af2c3238afe394687dc431961250d1d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f65fdeca968bcf29bf3e6c5ea01146d411aaaaa3afa54849bf16273805c620f6"),
			decodeHexString(c, "b308b2e265da3e43096f4a8be9a18fd6cea6ad928ae2ef8140b5bad82b898e52"),
		},
		expected: decodeHexString(c, "075189d22c22d634aa608a7ad7988f45a6fd3a43a9f84016dc2eb90334a2984562597fd72f6c340746a688bda79d5aa21a730a5e1f7a318a9bfc55ec26cdc6dc17a400c6a46f65de8aa502f5e310b53d76dd6511d27f76c2bd24a0505615ad5d86d5092c285e6bb3efe014364698f7c88a4d36762bb9165d5bcc7d7fa0e5f4ed"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_1(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "02bc5f68ec198949d814322cbb7d5ad07406e01db7ceef07c6a620f2f62aa281"),
		nonce:                 decodeHexString(c, "2efb4cbd9ea8737b979dc2a149fb1f76"),
		personalization:       decodeHexString(c, "29aa89e680c1d8ae60182c692b1dffc5db66aa5d357bdc88907841191048a052"),
		entropyInputReseed:    decodeHexString(c, "c41bdc7b83032384386f950642aa8b2b8bc8a198562cbe4a3c259693760bb1e7"),
		additionalInputReseed: decodeHexString(c, "108e08d94a6c7be542c92f75d0f056ecd8981df7b55b9471666deb484891142d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fd4df2bb206199d80a7da35b6a8f607d7d4126e0770b8df5e3f5efd9cc24e1b4"),
			decodeHexString(c, "fe45c6a972dd4534a909d1e0ee0ba118dc44b1e413e3b75548a1778bea2d9992"),
		},
		expected: decodeHexString(c, "f7d208a2946dced7cf172cce1af9c6eb3675f24ab8af7344792a3fb05498d27c8f090723c993f0f737f78b85bd897913046471fd11e719c693539f399c6918175195a2ce8bb82cc5e06bde4e1c88581444a3353da8337b3ceefe780a5bbcff8e29b09a2ddbf05fbfa6ad0ff6f90ff022c0bee0bbb7449b82c2bf3c51b20b7863"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_2(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "f019762e9cbc17f1c10fdc2c1a712764ad73ade9aff51a9d0a54832f67074b87"),
		nonce:                 decodeHexString(c, "7d5f7998820f37a1e1a2d7845b214ecf"),
		personalization:       decodeHexString(c, "41e30320f37f2cc85d11cdec49be44b47040c8b271ef134adbae811e2383470f"),
		entropyInputReseed:    decodeHexString(c, "e49a7e8d2b7907dbf7c9f422fa35011263acb82179f1a2977544fa45cb2fd7d8"),
		additionalInputReseed: decodeHexString(c, "d079e3b8058fb928917cd7be126fbb19843530634eb3fb86f2ff65d8e173c3a4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "12f91ba1e9045acf3697ee7de948c4aa79f5389147aabdcb545cddc16b1e3343"),
			decodeHexString(c, "9d14e12512be8df2bd9bc0c6caec763ed9d3f8c97c48a23e3ad1bcb9c465e49e"),
		},
		expected: decodeHexString(c, "1ded0903b29c1f1dfcae1cbd7cd77c204af8ee1492d7acbe24fb2f71e8dfa0b0d180cc6ec39357ffb807956c90daab8794396e37a4675fdc2fd1e7f3041ae2be864cac235d41e56fa3845a52f827ab7d82e9dc7b07d379b5538c5ce6178c70d5cf4f37383b57057f4825e8340bb7029946c23e153281832bf75d360e58bb7b52"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_3(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "72318f1ba5c8b0e98f40f6debc07a46b0c0ae1fcced71f6485e649fc01efebb8"),
		nonce:                 decodeHexString(c, "31069cb9acf504f44a3db30fbd984e10"),
		personalization:       decodeHexString(c, "b9aee5275bf30436c3f8666f6779c5bf26ba6e934a44633d95bb50c3a2d87cf1"),
		entropyInputReseed:    decodeHexString(c, "44ccc32f32d71279f23e3585b0ab794b0d967fbf7313db9dba8eda06064dac69"),
		additionalInputReseed: decodeHexString(c, "c72639cef4b62ac7980507811637dcb4f923e350fd40abb7ccf293aee995972d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9c1c29d2c35f656502e72802fa0441b297b2c8901159275f38ad02b7188aa4ac"),
			decodeHexString(c, "546802411001b9da0f7d59f1c65ce380dcef8524472b10bda9061b32f55dba4b"),
		},
		expected: decodeHexString(c, "7cdaba83f1891dcc485bfaefa2ffff59fcc73e79cd748e838629eb726b0afe19b28a898c5442abcb3f66836545efeec486654cde1ffff18264edbae7f584a595e38b3382c50299fcd94638290b75f1c8f37063895c36682dc483a65953d47b76cab74239b00945a4f7fee9dcd7157ecdd836c5b59ba08f33bad5f552b6241338"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_4(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "7d1afbb6f4f6ea98be04ae89cbb2efcf4693cf73ff0cd3a93e8bde025a49d6b0"),
		nonce:                 decodeHexString(c, "8f35e96640264bea6ee77eebbc9822d5"),
		personalization:       decodeHexString(c, "29bf916da7a35abdc2a1373905692ee0d948f3ced950bb85552c14e21491fb82"),
		entropyInputReseed:    decodeHexString(c, "7be92a00fc2a2c9be512a168c0cecb0fe9a0aacf98b7ea117b5e9b63fe3d1307"),
		additionalInputReseed: decodeHexString(c, "113bad39cf789317a8c4febe69264a3b0070ab893fe2175170fd9bc62717c3ec"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8e726829b1c87516f6838fc5af5cd79d1b7883d9450d433823344930ae38e0ae"),
			decodeHexString(c, "ae4f9608cf9c1f21c8c82514d06ad33485776551ff8e1cd7ca916f4cbd30adee"),
		},
		expected: decodeHexString(c, "9a3625de9a2a27a48dfd83c15806f579187aedde9d2c8c0e3476674c89aa5f877402c5d47fcc25436e9c31e80c016431d5a58396d17b4d67c7e035019b08cc2c175d7eaae4ad61dcd53251b34784590488a711301d4ffb1a78919e356f348a9af088c95eec3d998ecb2ffca019f10c957288e48a849dfa04fbbad4b866bcaeed"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_5(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "1eb0f1a8fc95dfd1d89d893ce8b6df63beb342292d4a231008cf472e8011933c"),
		nonce:                 decodeHexString(c, "917755efde69e078ea24e6cc40c78713"),
		personalization:       decodeHexString(c, "877d09340f430963689dd5c5f67b6379075d852312a2ec3329dabb8d26f2c6c4"),
		entropyInputReseed:    decodeHexString(c, "da3cd50614872eeb1e11fc9350d9456355442e2831002489aa4f5d0d35f62a1c"),
		additionalInputReseed: decodeHexString(c, "e42ab999a52ef6a3b445d633ea2ddf336600912973f1cf3055160f9dcc5a7703"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d0f2781a06e4e5b93bc480365e1db4f31ce2743fcc6f52495e12ed898265a572"),
			decodeHexString(c, "b697b7df9319d15578641e61f500659b22ca4de3a32026132a868016e6ed778f"),
		},
		expected: decodeHexString(c, "6f455ddf903f5a291601a366f0ef31f886c8165848ebba8de75663761f54107bf260c1d8d231508bae913b9652801f2dc456c25f7c5cd11f633553cbb81bb57196c3a84d43306bbf3581dd6c6b929df0dc7d0e82bdc9c401e043831c436a6820b488757a976cccdf72417092e3380831876f313d5d82f4d78c30084a315d4d28"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_6(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "9a30fac1536c908719bcfc996e259b733f64642dc6e81a0035e68c964d3ca31b"),
		nonce:                 decodeHexString(c, "30a54cfee97a20fd13cfebfb63873df2"),
		personalization:       decodeHexString(c, "68ea560768028cdc01cf133a0749b76d8837dba0f6f24a3d057872efc9ff4892"),
		entropyInputReseed:    decodeHexString(c, "c49152684c9ca6c0d1dd584f1f1d2c64ad36f82184c91b38a89dcebec193af2b"),
		additionalInputReseed: decodeHexString(c, "9a3bfa179bf8083cd091a76d0f7bef0f37a0b94818da973512f6a8d041d102ca"),
		additionalInput: [2][]byte{
			decodeHexString(c, "778e2f62a3ba1a164749a06696e897b534318ed2f7142f2649e04a9e93673b5a"),
			decodeHexString(c, "142e67962a51de933078d57f0af40bfeed693fc717c650b0601dbe282987b81d"),
		},
		expected: decodeHexString(c, "60309379049cb92340a61227b0e76b516415b2a53022e59be799e3835725c21ff9d51f796ef4bb3756c3262137085e498927c29d60554e89f4bd4fb03e5a84ee14840c795919c1788033b36eed4946863155ad36b784c1fc10e10fbd12f3326596ef07d50c5b4f2e3deb59653a62158ad0ddf43f9b5267ac2c2f71b15d5e8f0f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_7(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "016bdc5cdc6fea8f2ef51bb39ddf6399d23fb3bdb01be921a957f9c761736c54"),
		nonce:                 decodeHexString(c, "05f75d508efa64f25756c9a1c8d88480"),
		personalization:       decodeHexString(c, "eac17d8a199968f8a8ca5d2d9f695522292946df8e60f0e91e9a29f565524bfb"),
		entropyInputReseed:    decodeHexString(c, "3562b659dbf9c0c4a032f028444331f9ddf91d095c6a7f03b69dda6b5db2a11c"),
		additionalInputReseed: decodeHexString(c, "58bcf42767a209e5ef80180cb660ae0e8789d656a7d1a84474aaf7a22c19eda4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3552bdce77fb4d6693336abfbd12a3620f605b35e2fbf9a84fc54a50ed03e498"),
			decodeHexString(c, "4979a09228938c0fd3e57b3bec0e69211085ed9b0c54c85e9494fc3cd789eb72"),
		},
		expected: decodeHexString(c, "19e62f9d5885f790282ca3a476ab2a2ba799f5a131216c7664e864668a375d33c5179e27efd883a49c7b51794ac5ae120ba7433904a0f60246f814128fba11b64743fa276d3d7af083b4c51131a0a804af58d5982a857e2e624b143e381c20c53049cb4d686f27f1db130473e1a8ce733744d3b3ce7f1a6b34543bcf8eb6e234"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_8(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "f4abaef3e46e9a548ec8e1b87e5ce52eace5696bb558e228706ea08e1ddbba57"),
		nonce:                 decodeHexString(c, "008524fc3f41137c184bf0dc1a6c78ae"),
		personalization:       decodeHexString(c, "9ec8f6b57cd41aaf2963095b8951b2d37d8114edc12871a6b77222e9ea6cfb79"),
		entropyInputReseed:    decodeHexString(c, "7076e78dd02dfc3cc3aea42014d8a1b14a2c9e9846a2aed0a4601a42b4e578f2"),
		additionalInputReseed: decodeHexString(c, "173691bfd6226263d2e724661e13b3e74690e3f1492d859d96e00de02b38962a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "08359e7377f8d656146e4fbe2b7fb215b4657abdb8370fe0dd36997ef6d5789c"),
			decodeHexString(c, "e8d642fb120813922162e191f0c4c9cd145e18f402abd3ae1d69a819e7c6291b"),
		},
		expected: decodeHexString(c, "bb206b95074afa0136afca6a9b98960f0a34e3ce68e10f992399de1b9fc97093c2d5a305900df91ac134245e97484d0472049483f312b48d86ba5107f40e1ce344674ad97f8e33edaa5e1afa0b14b923522a4cc0f008c5c01f1be8e042e72258d6d5dcb2721af017aedafa8d8db11e1ad21fd6c92e652ffb77c098ec62125b6b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_9(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "d8a504a0e538b9ce58b717dfcfd2c1e6e6ade8de326c2b796f2fc54445cb5efe"),
		nonce:                 decodeHexString(c, "1fb41dcc8c219216ff4da54adecb54f5"),
		personalization:       decodeHexString(c, "f662d9d7fac6f8ab8a8ac280cbb4f76f68f8b16149a9651522c40e041caaa25b"),
		entropyInputReseed:    decodeHexString(c, "85b0ed6f75740af23a75172ada7af10ac61dbccae9d73dcaa13620cfc41e4c79"),
		additionalInputReseed: decodeHexString(c, "92f6a72a0aedd2d1a5ac2d816730bb6d4d00a20d792762c768933f2035f73663"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2fd39e04f72176d837b4582b39e2aa9d8aee121aaf8391a163cd59934f1d2f2b"),
			decodeHexString(c, "0cd3e0eac36cdadf1e173aa6862353f744f29e7c27051668f1dd162eefecdebd"),
		},
		expected: decodeHexString(c, "c6b97a3345f2fd2015267821b8e1d53a9574378198e37893d3d53b733edacad3f5f12f527a7df655892143953fd25981b7cb07fbfad0ba75c8b7f9c4814f53f55193e00a46e3fb636cbd3fad50706d50f9371adef47c7d2abd2b6d4b2a1bc22384058510e86bee1fb761ed23f88d72575667910ddccb74309f95351c20ce95e8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_10(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "38303f38c3b3fe05b129589252687eb1248158058d64c79085f6a2d66358917f"),
		nonce:                 decodeHexString(c, "720c5ca27ee8b8cfbb62d0b7585d9015"),
		personalization:       decodeHexString(c, "2a3a077c8931f70e7fc4e6659560ef1871e2e635c0c695300ccecd0310dfaaf2"),
		entropyInputReseed:    decodeHexString(c, "6db8be9d97f07bba92399c6ecc239b14763eca3d29b72f6aa77914c9493a6a7d"),
		additionalInputReseed: decodeHexString(c, "304fb5f0e1af4c43b9ae75ff748dd4eddf9352fe3a55e2d4589cda2f42e999d1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "952f3d43bea55a46dce62f5f191eaa224ecdd9b6e8fc2d2c406e1d21e327e5b2"),
			decodeHexString(c, "2e277ca7f1a0588060e04936b1904fe1851ebf3be2822582b997f38547b14c6f"),
		},
		expected: decodeHexString(c, "779ecffdcc1868d404ad88f68c6fdd299b7455227c28b3baa1b0d2ded7643696e9e8cfe4c76f33c30a6de81f9c95ad088ae387f20cbc8b4f5b53f79233a6224cd9d4678638148c86ae803094a9afe9729fcac8d489b5f40a1d5ce2ec4c1f63de7cdc8e44ad2cbebd65dc4875ea9e256a6ae036cf7b2411116097c0f5d825e3ef"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_11(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "6d20a643c400795cdd2c17b92378f6f81e4655b37304aa13bebfdd43e11c7de7"),
		nonce:                 decodeHexString(c, "3c1aa2bafc5bf2da3b80cc5a21790873"),
		personalization:       decodeHexString(c, "c15345307821b63f308b8afcc45f59d5060bf1cba6d4bd9efae8b57ed84ead6c"),
		entropyInputReseed:    decodeHexString(c, "54518bf138249391b75ef6e0db949799b084cd0e004f0e01b96a20f6fe0146d7"),
		additionalInputReseed: decodeHexString(c, "49919c95d97e7e0ae946d6efe044e66c89753d3abf92739103f33cd3110a1819"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d99e235bcb5e5deacd09a93784bc689461cd89f04412708f14535b0c64f14f36"),
			decodeHexString(c, "790741bd0978428853669a03741d258d65b5e6f88b18729587785409c80ef57c"),
		},
		expected: decodeHexString(c, "43fc557f47a3c2287891aa5f332aea6128aa059c72201be62f3c25bf57de04ebcd8b24768d8e9044c6d2b4ea1cf8f5ee639db7dfe3083503eef8961dd74febedc0ac35b4bb9e1227472eab895f78492070a26f57c9d420ad70d536eebde489d3c22cf1cddd9868b95d2f89849d3d01f1a0d1e92b5a2d4c7e0d9ab9c71694ba3b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_12(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "81a4eefbd3832a298bbdcb1598035b178a65f0580d3f41158d4442bc39121c2b"),
		nonce:                 decodeHexString(c, "566098e5dcdd2e50984c0557e94f616e"),
		personalization:       decodeHexString(c, "79cd7a6dd14c49d99f738bcebad69cb3c192066bc3d1861f55345c75d19db3a1"),
		entropyInputReseed:    decodeHexString(c, "0cf7576efa4bcc53d587f5398ed26f10110b04110ce4e551a970046ea7e0ecd5"),
		additionalInputReseed: decodeHexString(c, "3679b11f8bbadbc31548ac86bf1b56e5fa6292a731cfb86ba3b4a6e844365c0d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "178577c9f2887d88561baffc6d61ee6f8d6fced5bc86c1983f48f2bb2892423f"),
			decodeHexString(c, "bfbeae5e6d224d3603c75b1a08d1948a829274fb78bde7fa08f7193135a07145"),
		},
		expected: decodeHexString(c, "de23eaf95fbce00e32a920fa31874ed7e8023a07b37ff74aa54bb9564b35ee2619ad1da3e39186ff73728d32f3177a0362479db20707769ba59ecf5614185430d6d96e895fe25df17f31ccd900baca806b99b2bdfe1639a3db28944bb542d08efe0852a59660289c9f0d5e3b93c0b6087ca17ef2b2d23f4b6b26a49d8a1c7b2a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_13(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "fc104b74eec5db55569216af50d9e473af449fc5657dbee8d4dc7003921562f6"),
		nonce:                 decodeHexString(c, "a135af56fed164e25e0f938c39d4af21"),
		personalization:       decodeHexString(c, "a755b79035677c344614e9b9b9a17958c11d8179802203c4dbdf4b461d897696"),
		entropyInputReseed:    decodeHexString(c, "b8d6bcbbac7800fab17f0b001d7d76e929cdc99e8168019466e52e12672aafd2"),
		additionalInputReseed: decodeHexString(c, "0328b9e4e6a3403376b8ee77a66527e6b7d6647f1d3da79a1ae25c7203be91f5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d38f821e74661acf358cc94397ff23a11c9fff7cb117659fde00067dd62bbfc1"),
			decodeHexString(c, "b74bc5ab03afaf58a10f24b31631bea8be0343fde1ab3ef4ef77a3292a7e920c"),
		},
		expected: decodeHexString(c, "7f50a38a214ac629600c61c0ca2476f0d20060a956e19895104090525c8829ad89ea0ea350d06780f38eb1cac6cb95b9dbf78ccb5fb21f470ce7bebe4aa947b5f4467c8e735704bb8d939c9a7b927df3147082a50bfc33d8f387dc6e6984634bdd84b8ee0716a25516ff295045e394d19e5b27b4f8e1126e4b4c003e86a8cc00"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed99_SHA512_256_14(c *C) {
	s.testHMACGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "a7a633446d7ce354e73fe504fcfbe6817c1cfa1f7024581a8a40049dd27bea3f"),
		nonce:                 decodeHexString(c, "dd3866bdb7cf2a8b12c77014159633b4"),
		personalization:       decodeHexString(c, "c101aeba70d11dc11bfb3934ed2bec9decb33e67291130b290c9da8e090d0e81"),
		entropyInputReseed:    decodeHexString(c, "270b0d85de0a238f52fcdbf21b952dfb77a700988c2d0bcdae2b149b34816b13"),
		additionalInputReseed: decodeHexString(c, "8817e467c7d913a102dd2895ab9f52592bab28c20ededcda962f00f18ad08b62"),
		additionalInput: [2][]byte{
			decodeHexString(c, "adb49d99c15a98bc89903d0ce659ee2b4da7228b82e077c7b2b5383a44a6495b"),
			decodeHexString(c, "f7deced5363864a30c9d6578dbcc8a0fcb3b20f9d573c942142cacce11b9df75"),
		},
		expected: decodeHexString(c, "3a6abb0065edf3240a4489b08cdf9adcbf7e117093e80cfa49c288b3c940188ff543ef1c37e8bf8fda4a759f5b58eb9b35827d74b7d740ccd13064b3db45df26b8f366267fc2e62895b4f7516443b83d0fbf539b14ec46bdefa0c40d98dee7073c7f01fa99dad17048773b7ed5a68f3903229751cdfdbe85431b1f83d48b9a25"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_0(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "eb9db649dcfd8184b44c18b3651ea0eba42b1058ea996bc8a57bc66a3c9ac07b"),
		nonce:                 decodeHexString(c, "ec49d77476f0fd289f4ff33e40532008"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ce28ad2cb6d98b232ad13693aa77c4afd27117710be07a9b291aea765d1271bb"),
		additionalInputReseed: decodeHexString(c, "372f2e2d5019e1f8a0d6b8f29bd0f9c04fca7c07f53f4d4f62b6d764f78731b9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "592e57acd712308f91137ea83ce8931cdf13dd3ac81183cb08e2df4f985ab926"),
			decodeHexString(c, "2e36a19107e0cae875d0b3516bbaed86245b6496843526a276abd793767b7d1e"),
		},
		expected: decodeHexString(c, "47be5c2729daaa07168d990dabaa73bb2be0c9fd724b11374899538553757c408897cf32cc0f92a5560c4c54c2ee96210534ef252800ffa5d7086021dc9278dffef531ab7e294e532cbbb38d52c31495135ec326772c5a0333903c3c44ad9b59d09109017d2e9439b8a63df7c0ae7048319f520331d30a3248e51b559d040ac5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_1(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "0c9763c6c5b1bb9e48432bc551e74864e4bde6569fbe852faec481b1f3d30eeb"),
		nonce:                 decodeHexString(c, "98644ac975582af975a5d1449d42f589"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "eedc2ea994072ef7994fab06a19a3acc0563aad6177d4817f3fd054df807720b"),
		additionalInputReseed: decodeHexString(c, "b5a91349ca9bd3113599112b15fc13686e49f70e949d933a7fd65b46f3b689ff"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8165777c0e02e29ffba4b23e9dd49d0a9bb6b2dee74a6b79597057d6394d2436"),
			decodeHexString(c, "725f7e6f8181c6cd98254bed1151d50491f25afc9c36dcd842107b851704936d"),
		},
		expected: decodeHexString(c, "d1c7f20f67672a5ae0b85a49bf0fe433b296b4466fac3117b8183c341955a72427aebb58612ef38dc2af578e42973741e8c2716e0b93786ee8c2b59b6ac5f42583798f9eaa5224a730d9cc16e12e3c5b5f500ac9b539eee87b65176eca541fdcd835ed1eb70b20393ecaf8bdc29f5424c37ceca11002cc00da8f8eed6ae386c4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_2(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "5d52ad856f5397cbac68addc8eeef956e3cfe8ae00a7969b4197f5f5a7edab79"),
		nonce:                 decodeHexString(c, "08a99a509109a50f0ae5b4f446eb84e9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e6663980a36af878707e832183e619f16167c535995337fc644030c4e92a14e4"),
		additionalInputReseed: decodeHexString(c, "ebc4f2d339a144f460f49d8d208c3c27cadd1c3b0ebcb4c811c0c04b998c16bf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "af0a589fbde50af5cccbda8d8d7035feb0bf4957cc8f0344b7c79d36f2ef558b"),
			decodeHexString(c, "cedca3ce01213b0139f52de583ce9c6e40e7c8a5b1dc323194ebb53243774195"),
		},
		expected: decodeHexString(c, "d467934c7a8aa0e99cc719428e9a17d940f473981f313abe4bff8bae1546baaf61f756cb0a42fc0d2f31d1148e62130e86458c810b497a08eeaff4641a8c044f12412ffba109b08ac34a1aaf9c61e5a991a390b29424d1470f906e8341315963c27346af0cf679caf160b5028034abb4e5dfcc8533423dad01096725104edc26"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_3(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "9222b9d7c158bee6f6ff5db9225630d146c9f8aa93afb396e809c14be68a7117"),
		nonce:                 decodeHexString(c, "08c5287fe73afe15e3940ec3cf4764d4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "66a88884f2a6cd517d16c8d81e5eeddb68065b982ebed67237f4f56cabd4c835"),
		additionalInputReseed: decodeHexString(c, "1bcab288ffc49bb582f308847ba20caf1469aaaef8e1f1353fef278518cccb33"),
		additionalInput: [2][]byte{
			decodeHexString(c, "949a220aa142fcd5a12e74f0307702cf81c472641090aca569ed5f8871c120ba"),
			decodeHexString(c, "e0c98a8ffc1c90a42314c5b8a43d266eb2d0e053c4fb4203b3aab3aa07916544"),
		},
		expected: decodeHexString(c, "e1b1d65375c50f1b799dbc434eb7e59bbd70c4fbebc4ea63eff129efd4541dbc23962ff743de3e66ddf779e524ab1e0b6c40b6a418cd29a799e45b8d5ea6fe582b598691877e7e4301793419d1f2c88f5321fa408ed4fc32c202160d33f342c77fe50c1e0933af4551bef8095e4659c0e9691c8214a9a1cbc040134ea5b6bf2f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_4(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "2355ca4035584ceee84e3cbd61e1a62f0dcdb0d1566bb6ec76f74051c7513345"),
		nonce:                 decodeHexString(c, "d9023eff15f08998eba05652b1b72991"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1ea9eee8e509af3bd2bcf814499cdae92a02342b9129e13717c869ac5b923aa0"),
		additionalInputReseed: decodeHexString(c, "e3285183329e5f208e62f4356eab87541296cce46fd92d24d05b971ff59e4774"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b61726319af8354def156d9e52a6bd7ae9160b4a6d6e77dff111dd73aebca509"),
			decodeHexString(c, "2d498fe3963c211069fa82aa055e95f67372e118353e676adc9df4e853512bb5"),
		},
		expected: decodeHexString(c, "c4efb45b11f84c93476e4e586d8a4dc9768a3c0709c2da30b51c39d98808e9f8b60c07e0dea821af1645d723f6834270a67d62a0b8d1e55611ae7be3aca0f6bb757eebaa2ae049de98c57d02ef894927ce81fc3d84f66b01c2984c3b205c6230a353148aa643b58e1d7276587417204a779ab571013d143a26a23093dbdd9ed1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_5(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "bc26930ef299f0e8d811202adad4c876982f2981fca4fe6f859b61ab1c315939"),
		nonce:                 decodeHexString(c, "7107e8978fb0359db30823b644465357"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a62b45b9f190670fa898f0aa0dc6583ba677df92fcadda541346969cb5603cb6"),
		additionalInputReseed: decodeHexString(c, "3f267f9a0ac876f419033e5c2f7e955d37e690c6f2540cc5469bd076b1decb50"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dac68c8be08a1e8b50d135484fa6e3ef49b709726435e8998eb543865344e79a"),
			decodeHexString(c, "43ce6a0c3ee9297e4f6bf590e61dfd2c70eb41aa8409ebdda3b0a50b741c2dd8"),
		},
		expected: decodeHexString(c, "1482588574fb400bf6180de5d52a2a8f91b4d991bb88a1af95ec505591bdf557b11b095eb6316bd711c57359333f6efab3a321c167f6946e5ce8d351110080cd8aac709d1e8c69fae5599838de4799fb9644c4dfee8c7cc190026508ab8c03195c8d14efb629e2cfcedbd39c5ce798e019d72291fbf1c294d0f448158e30fe72"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_6(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "578512f0ef409d9f2172512f7b59b2167d6baa9a68ce8af54a3ae074cba077a6"),
		nonce:                 decodeHexString(c, "a6f961b670ce19f63e80e2c3495bc9d3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "778a30ab819731f7926963aff7cb4dcadc1d10a28625a4cbf8cc6d88889e944d"),
		additionalInputReseed: decodeHexString(c, "e87666543516b2c0aa270d146c5d6c5a109dbf2c5bacb57cf70be43010b9cd7c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7300a19d742cae900c74711b75c9e06dc54254134cbd6ce715c1da7bbaf841a7"),
			decodeHexString(c, "42fa023f15bb2b319e6a9dddbfb8eba451000e7815b15ec376a194ce9d56010f"),
		},
		expected: decodeHexString(c, "14b08b11ac8d4593f2fbb3bf5a47388840e590ca358c69511727c4e762200ee50846336ec614d94b5c5c15ce1508bf1dc152450933d3d6d83833e1183aebcf913995d48a04f7f13eefb23058069f4f44d5b453039599a7488e42554ba498fa6a26569da5ca86dcb553b29df4ac963b0aa2e21c5a0800d7ba3a325be2ec325c72"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_7(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "637bf78a99981e3a9baeeb54ba7a1007bcbe967b7baab85990675a1318f10ec7"),
		nonce:                 decodeHexString(c, "812ec8e6bd837426e2d9d95cd47c48ed"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b2d39c0c6e2d43278c16f30d6e5da07609be4478bb9198e692c7200994fa80d7"),
		additionalInputReseed: decodeHexString(c, "38011fe8a647b553aeadc192c7d9ddbda223e01e3c7accd9ef5f8376db2ddcec"),
		additionalInput: [2][]byte{
			decodeHexString(c, "789eb7da5ec7430711a85d59e8914b240123ad8eee8c4a74693c0d49b7b4d154"),
			decodeHexString(c, "a74ed3954a06ad4b4b1493d1f3d93a9785d259cd14cd9f99f48f0757967f7163"),
		},
		expected: decodeHexString(c, "7d08db43a688b319c38ff49457790eee6e75ed62eb01dbb2f5942d21b5ee682e90fd05340a5cd754e0700e7049784a7ef6ea84e270cc8b208253a37f214df6277e38d2c63065bf7cde0da8ce5e3941d2b5ee4db0aaa97968c9dba8591382c0c897bc02a47c2eac2b093fe263a13bd97d510f1cfe131282eff78d588b59b2190a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_8(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "231f1e34c1b8b0b12518182a59225688e3c2e240714de3e252e085cc864b8d6c"),
		nonce:                 decodeHexString(c, "13c899db2bfad3544b851ed537b9e844"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2a95d6f5ab9726532aaf431e60c61818527569838691e2f79da43dcdbfdaca29"),
		additionalInputReseed: decodeHexString(c, "e85e63c5e69b8a27915ea3772e63c0dd405df88905707fd3e79a189ec349fce6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1fb65913ee397ac4931d0f82a285ed91eec1fbf2692a3a1f00b9e9f0fd47d184"),
			decodeHexString(c, "b5826ca81d1b8676cc4259f77bb784b58dad94daa64693f7e0bf927c1059eda0"),
		},
		expected: decodeHexString(c, "61c53125c1020a4b06ab73a3a0d6c8693074cbccf34b200acdfb8da887dc521ffc4928c5da60507d6623dda1b460b0f2eaa9516905d86ac56f44bcc5b8ab07299cd530e876c3b9779d5930c6da16ae187732630c4984de60a0a42d987bb633d105e57afc88a50ffcf8b969b339c2511492da8d03373ab4c6ce3d214ae4ecd9e3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_9(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "dd474f5f17c8e76dfff45b7fafa8b68e96cd2e66e5b439385dcc4949d1846316"),
		nonce:                 decodeHexString(c, "6b1de8c44d414596cc0aba5a8ad50219"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "afed3bdf2c7b646a1e93ba72379d75ff7498085d55aab879bc794075ff7c2f8a"),
		additionalInputReseed: decodeHexString(c, "050296b1e00ad1cd58aed2a668a67386deb27de9f2c325af8aef9804ed993d84"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d54d7b3dfdca55915418fe858cd33c181831b99e4fcfb9b0b92cf75a1cc356c7"),
			decodeHexString(c, "b14fcb3a7700411dd0a59be3eae849d046a516765d0b8319e7745e992f243f69"),
		},
		expected: decodeHexString(c, "625f702cf2d9af780de2f42b25ed162310e08cc114a9bdfbcdc82407590038ec3eca947eb222cd579290e07f170d793a4f4b27266fa72eef21e6ac2155b27a9a8e1beb6e5541ca007d814ce4785fc2ce1bd52a90d54f45d2318aca850a49dae2fc76178b23f5230416e457b70a1bf1d12bd5deeb961956260a1bc900965fc129"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_10(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "1361d1448265495b63fc56616793f1aca1d4f7ad1757287ea5c110397a89c2ca"),
		nonce:                 decodeHexString(c, "f7047768cdee4529757f80a0de72ef2d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "744f45f50a45ddca0c03cd111a15e34a0b65c53d0b3520c2336450acf9c14bd9"),
		additionalInputReseed: decodeHexString(c, "d1f9308306b077ac6cc39b2e919e961c6fd05756de2485af247032fdf55a3a9f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bd1ca21e296eec6d95893dea2a42f3d30e76181dad96f735ab3afbfb7fc39d3a"),
			decodeHexString(c, "0a038e95b4a6480afc2aff1d104080046424cd3f8c01178fe01d0a29b83f36d5"),
		},
		expected: decodeHexString(c, "d27e512f9b7d015a9325f27d5ccf7ac1aa7cce013e619c150f1ef391599b9697aeae45e99efadec7d319315678bb06d87c95814e86a687f7ff6e5c0bb9ba4c94d69c8fdff354e5f7bd17bc812681359a494f8682f2fda036ea4fb5862b31fb18171af45a5f0a4420a16134766e5f6f55c192f151d9e314f6991dddd860bdf11e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_11(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "c2260feaf514d061d21115a10cd1000ba7e419a38f7b3a2d2b247f815183bba4"),
		nonce:                 decodeHexString(c, "b84da6259f4fd35bb1300018da3c197c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2cb1717e7d01d04c41706514daa7fd28be36ea2f561461eafd4146d483c6865f"),
		additionalInputReseed: decodeHexString(c, "44538a777937290e7a132fc7b5517a1a719575f34f104ab3cea5246c32c97d42"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a3f4099120afc870a8fefac28ae06b9be8f7863e1c9fcf396d3f831bcada5a0d"),
			decodeHexString(c, "7ba6b283d34073e76dd5608f75cdb65bb039e6272f5a80f88411e1b06a7ebce1"),
		},
		expected: decodeHexString(c, "caeb2c55c41b6b9ba5c5088230104e9c9baa0ec606fb0bdfc9d5656567d36c62956c3103fb4ee21fb38fff0369bd14d25f0d0e1ac1668d135197887c75111fd59f8b449943b20659fecb85fe0599457b3ae734448e2325da8ab7edc7ba6d4b194578367e8d42b3ce90883c179c3fa3503ea732d8d7cd8bc5bbaa9b7de585ce40"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_12(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "10eae699c4a961c932db26e96a14ee60f1be48541c7abd69b791981f3c7eaa37"),
		nonce:                 decodeHexString(c, "e40a7570129ff4f6b12eca669493b39e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e5a4282757ee6877bd175a621d078ae1e2242a66f61ceb65453a38cc1fb0ebd1"),
		additionalInputReseed: decodeHexString(c, "1047922ed485f046459090c91eeac33f0d7ad4f00901a7e8c3ec47ff31323445"),
		additionalInput: [2][]byte{
			decodeHexString(c, "27557647212cc054258e27dd29bd987474d6b1b056a04369fe3c595c168e0dbb"),
			decodeHexString(c, "9d6432ec5d4aa5dceda9e134145d0d490994bf17182e7c0c29368057fa32636a"),
		},
		expected: decodeHexString(c, "842428a7ea9ec0a38bbac5a2911c1d0fd2a620b9e3a0488b45b1c95ec3cfc4dcfdae63651e718b1f8a14ac615eb35f29a9a149a5f4145f9c599ebe720abe6e83a9585d2cc9a72571c1c7efea7e9935d38c4f8cb329f9a557b19f99d565a8482410fdce9f0f084a8115e01d24e84db870d8067d0fde1b8a2e2e5badc6e0bd06a3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_13(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "33d40648d9772f5fa4e968eb2a99f73bd0204772cf6058c50a4f8d0cb78dbb8d"),
		nonce:                 decodeHexString(c, "237440f67f3c4dc9d6d1d6c9a0059a2a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "170888240577542696686de4e457bb7788f8218fc03daacfd0adcc3f341c9194"),
		additionalInputReseed: decodeHexString(c, "d979ed113db2b129798e454ff108aa9eba2cb9850b0ce012db19d3b8e8f88a43"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5a3d74bd96e53297d83b924b392caca7937fafa5dfe1f058b580847c1c57efd3"),
			decodeHexString(c, "e998842c65e76b6e72139b1a1859184202d793fea43171a968bac99e3813c336"),
		},
		expected: decodeHexString(c, "39111845baa7405f07006a1aa3b789372a50b50f18a7a0ac219dfe517a184b3232f060927790d914b06e1cbbe61cba6feb332b19967b75c165e1a02e04463e1bb8a522f9f9d1c279433799d4c9bef627a8b33a01ec891d3c85574b02b78d90c82baf5ebb8e12c0788c8cfa7f88a2ff1ef55f1f65af5d19e9f8f7a41b373cb66a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed101_SHA512_256_14(c *C) {
	s.testHMACGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "58363aa4d8273987bfc9f66811ed9532afd706b33f362d089da1163c4a9cfca5"),
		nonce:                 decodeHexString(c, "5e707bc48ad10d1ba8a50f0a75c7f740"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b9f29b48fb52698fd779632a757a350201057736f821630db9c0951f2660854a"),
		additionalInputReseed: decodeHexString(c, "dc6ed0cad6ea4b16ad37b0c343eff0a33853200ce3c5954d734a9c9aec08a6d4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "01e41e770157c8bf172b286fbe82f62edf2592f31eecf2311443e7cad3c5563a"),
			decodeHexString(c, "0b70e161491f8d29663064c22a1cbce92f9348e6eaa0e3bfa0e8f561f4be0887"),
		},
		expected: decodeHexString(c, "8f5ac65a82533c049f28b04f88bc9fc73dc8c45914ac382c5f411fc628c1b9691ca7bf771919aa6711b0b445c1506689ee2e45b3dd3186e9bdde8902666339ad7764e2d13da823c7807b95cd6e73e1742804c55d55e5dc2f3e4498d5b695838507ce6f0e8e7062cad8133d70740a1a46181d5ecd03d733f20c4ad4d814fb2ecc"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_0(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "7a3390a5c969c29bc2bfcd10bcd297ea89612c63b69fbb7216f0384c6cc083c6"),
		nonce:                 decodeHexString(c, "92a31aa58c2022eb4a14d3ad60036de3"),
		personalization:       decodeHexString(c, "422cdc707f7ef9103dd290edd929f1bf0a7f8c89970df88c907191b8ec1a17e1"),
		entropyInputReseed:    decodeHexString(c, "ae8d4a214662075891ad9a1f51ff1cf97784275634ba46ed7b411cf3239caf9d"),
		additionalInputReseed: decodeHexString(c, "e0bec0b7d30995241bcea013340dc721369613670e5e2dfc446c502739426c6a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "56462eea66d430f73a250644597479c649fb0b5d950e1fe57fb8b2493da05a6f"),
			decodeHexString(c, "4483379bb6509820f4bda32d880212d7ae6ba27d51f29efa53bd6e1763992c53"),
		},
		expected: decodeHexString(c, "1cedaaa49ba4bc508fd3eff35da2c914633c7a0f91755df78802f8031ebd9cc36635e4ff035ca17ba134aed223288348c7d609179bbcebd8933265acc1391ef10813cf3497a80443b5162835a43bb81a36973628d3f3952c4bd062f5f1c0281550a2023cdc1617f8ac11651cd9e32c7acb4697d68bde2d451739e49b06cbf481"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_1(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "ec4a8df5c624ea74906765678a648a03c9ab4962e6099fe3eb0df70cc599f463"),
		nonce:                 decodeHexString(c, "829f993089661e4ea08a9509e07c0cd3"),
		personalization:       decodeHexString(c, "d59dca9331f5d951befe94d25b1fe53bb3193dda7e73ff077721760bd6b6a57d"),
		entropyInputReseed:    decodeHexString(c, "b94b031dcd1db6992f9313a48311f7b950d8fdd6c09bcbdfa25d755ba4301193"),
		additionalInputReseed: decodeHexString(c, "4fb06e6fef73a75548d843580f4127ccc1d820f5ccfea4c3799cc101da7d1264"),
		additionalInput: [2][]byte{
			decodeHexString(c, "64ae84ab0d07e656e5891953b35c21f68ddf3c4f4aa118b6a91ae16d9aa628eb"),
			decodeHexString(c, "accd4c23cc16ca8daa0bd4dabb977c43e9781b503e86a0dd4b104306d43b1686"),
		},
		expected: decodeHexString(c, "08d9327710612ac829daf7eb2a6a5c42e84af6257f6992673a749eb9a48239dbbdbecaac148867848c842dcda2f6b218eb5f88b34ec08127f5120639dbfa5fb9758dbc3c2d33c10f991278c16fec9b1d40bf55f5a550192cd299f5c496963492cbe28863f6b29b8e1dd4a6e7a1feec3614cd89f24b3b4af46fc78c8f166a139f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_2(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "255c88e68dbcb54dbc57b8cb474589bd25d1f1c874aa88730ece0c65d357f99d"),
		nonce:                 decodeHexString(c, "db2c20403deaa771ce933c884c8ae819"),
		personalization:       decodeHexString(c, "1cba260684e595034df7975dae3f57e641c19efaacaa78f0f2c727e7949f78c4"),
		entropyInputReseed:    decodeHexString(c, "0f20da8051fd575c3d2988a49a4775901b07cb5b64a59fabe3779593291ad483"),
		additionalInputReseed: decodeHexString(c, "b7d19d5194263a09368fe9679582acf085d27d47c0134e10b221827d61b62427"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a642146b33068a421bc81913743bf1d0809b1f94604701a03ae44248a23b85cf"),
			decodeHexString(c, "6a49100ce8c9b61421e6c3680b1e12d0377a94cad5a6ec4232ec38b976b5f1f1"),
		},
		expected: decodeHexString(c, "685ad08377a0a0fbf85d23b8c8b6aa9cbfe781779d850b655c893fd992813424c3ede2d1f3d9c63f051cfa809fdafc7056e37a375502aff2f160627cc4136abb12e69c16936c1691657331363820d9bf38e32a9a28f261a763a4f6126fc17be2a6f6a88e39aa1e5c6251e37a505c9999d382e4f3145899bca91f5308b599128a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_3(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "c46e494869e435611495cf3d562aa864ab2ee5e1c71d696ccdc0656018ab85e0"),
		nonce:                 decodeHexString(c, "953a0b2355f768203cea36ea7b27ec7e"),
		personalization:       decodeHexString(c, "117b4e67694c5c61f62eab10ad43de46e133823e21624c7dd95075e99028a7a5"),
		entropyInputReseed:    decodeHexString(c, "909209a5de5cd2966043402bbe79647d1c81d89cd26a1d323ad30f849f053172"),
		additionalInputReseed: decodeHexString(c, "3151f5f8f0680f7aedc583ad855d6ace63d6b0367d82b5e65c3a4e7d2419cdbf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dbeea2ea7a196c72ebb9230d2cf1f156b32399df76583d0678185bd145130b69"),
			decodeHexString(c, "b7d05eea4700e2e5a5255887c8a77233eed929fa2a8570956cec42f791867aa7"),
		},
		expected: decodeHexString(c, "912ee29d80978ed72ef8f4d88e49036b095aa5615e7c9813b7ebb85bc440f3b48dd6ce5eec4c43b108cf7bdabf761145afa789446608d85b3d638a2093607153560be989b8ac4aa7377b0417db2ae29bac4808c71ceee77acc68c49827e7388b7d018f9cdbcb3f77d9d23bebe758d6d945b49cf97fc4118bcc4ae342a3f462df"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_4(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "fbf27b657805e2bd9a3eae0b4e1c19cc491169ff2ce30314a7da36c13ce969b0"),
		nonce:                 decodeHexString(c, "c9a9db43c82f34b4d789033ca77bd6c9"),
		personalization:       decodeHexString(c, "e78bfe7353cb5960da98bb39e2cfe8546ebb85df2a1643d71cb1b9d8cca22de4"),
		entropyInputReseed:    decodeHexString(c, "0907ac53f0b8ada5bc3d053674f1ff131c195c11ca8c55284461641ac13e0fe4"),
		additionalInputReseed: decodeHexString(c, "1300f86f544d4e70c301e03feafd058b06d604e875e3ad643da4949e7505f80d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6f62d92283acaba7b14d0fda90cf4807b9f37fa70dd6b4d331ceb37db1c176ae"),
			decodeHexString(c, "1b190fdb497a6776c3a66bbb74dd470e1671bea012f15eba3e644e6c349b54b3"),
		},
		expected: decodeHexString(c, "f0b60b5f02d504e763bac669cd9b3561ba0169c988cbec1406a6621bc5908ac4b53f9252b902385802ced4ae917242d0651b43c48e52f0887de135cc416ef3518459998c9289795ee82903a858bfb5b8884ea5ecb693abd766dcc6d255cbb3acddc57559ed3c698fa057ebec7574076ad8ad56fb85295183aa33b4653b24b1ef"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_5(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "b1d5706ed000f080bc15f79d244cd6f8c3096959635f1141a7c3780aa1a01841"),
		nonce:                 decodeHexString(c, "1575ab1192663e96a363d91b5608e9e0"),
		personalization:       decodeHexString(c, "9054c84843bef8de1ca59e77684910712caf3170a6eec650480d1885c045c709"),
		entropyInputReseed:    decodeHexString(c, "c2f8230720e7e06768b6f6e69d770d3217cd5ad114a6e80ac1daa2930d7e08df"),
		additionalInputReseed: decodeHexString(c, "2671a7d81fb7af4edf958a4df66c614a554787b3a39677f6a2c456867569bd85"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d3bd043af2af3d2bb1939a85e56f34d196f621478ea6f74e2d0c4065862d7d8c"),
			decodeHexString(c, "a4ee91a293357ea67cde50af20b606f42ed1276e7f1a3b78e2da9a758aa4307e"),
		},
		expected: decodeHexString(c, "7631f654b648fda1c083c1b47a0e43aa2819ec29ca2a263501701d4c240a999ef27acb2c530896798f698b160a554a7dde24111d78b1e90020396d0a03675bf274df5388c788471e056aa06bfc7eb6eb2306cba4e90412c9f8c1fe80055a898888c908b91c024a880ff9a5c083ebea3817a93c171e66acc094788d43c4665d8d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_6(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "b2f1798d99075d9ec8bf2266e7fe3120a8ad12679954a61b8bd4338cef51f521"),
		nonce:                 decodeHexString(c, "ff30cf733d54ff410ed6959ceba8fae1"),
		personalization:       decodeHexString(c, "ae20fc6b5d740023c6bb889deff687383be1f1a8d388109a20c6a69e10017cda"),
		entropyInputReseed:    decodeHexString(c, "e0a7c8e29c7094a2a9170e88444712232fd7b51bba4f5ae59ed3823a60828c3c"),
		additionalInputReseed: decodeHexString(c, "4705b81353cccefe4442a6e0c5bef3ca96bab05e245aad48432f1f31a8590bcc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a5c9a701099c187e0cf0c6033fa5ac169fb8b9f6580359dab5eb8339fd22f78b"),
			decodeHexString(c, "dc67a76fbade14f6806d44117cbbf27757b4dd698c55a485da33885335639274"),
		},
		expected: decodeHexString(c, "fc730ae280d07e5c055fb76f7537c29c58f299e2cb018ec035bfef0950a8c841bb9d3b7badbfa878560108ea56f7b0244bff368e58eb260c7fa59081bd81c587cdf7be07922291c7cf426f0d6978901aaafd0d07c4a10fcd25da093ecfdbf5f69b93ce4f91862f25f1779932fb2d6905d08359b0aac035fc8d8efd62a733d794"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_7(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "d71da4a480bc1e387a46beb545f306f131ac34d95937d0ddbf48ce76224c9af7"),
		nonce:                 decodeHexString(c, "0539294befcad2cffebef86ec9d329bc"),
		personalization:       decodeHexString(c, "452ecd7ae517b06c4d13ff32758eb50b0e21f715baaf498f1e192bf14dc22c3f"),
		entropyInputReseed:    decodeHexString(c, "9ef15e2c1e33759ca66709c19a21ee1f9c5327b8ee22c37f437c982d3e78271e"),
		additionalInputReseed: decodeHexString(c, "25fa3cbe83b558376dbc700221fa2523a1c1bb7f35fce5abaedd949c862126a8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fad8d1da95a656b8a785bea1499969b6a7633dee1de1d28bf490085a0b354f8b"),
			decodeHexString(c, "cb7fe7783c045de52687b62e651e281cddad9a22c5cb2b95d86ef51a70bcfec3"),
		},
		expected: decodeHexString(c, "f5aaa097378d19aee9c3f14c00818e7f1aa5117f435c4735da5b2e3e9c22eef77ea1c37ca385a15c9505a5405fb80da16abfc7d410760541c85a78096648ef05fb7f58b71ce511171b6a87b4573125b4b44d96b7261308ddf1ef334241f956143f68226404be02b83a3f814ba2853061a33264a82a13bdb9112d3cc28df970b4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_8(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "0ab21e19396821e044834ee7722f276743e94625728f58106faa7036880fd8ac"),
		nonce:                 decodeHexString(c, "9655c5d87cfda8e8b3c18c385e7c3d57"),
		personalization:       decodeHexString(c, "386e79db3d5b4695fb36c56de8d74458c0bcdaafd96ed4d28bbf0d1a413e49b1"),
		entropyInputReseed:    decodeHexString(c, "f9513faf2f28730799407f8ee1722ebecf4009bb89dd8005df8947ae65f31414"),
		additionalInputReseed: decodeHexString(c, "b02f5574d526a18bc54dfefe55ec37296196950f6e05f9d3290bad8c05a88038"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cfea200abb861c9e3c7e969d5f7dec82f593e743d3c87a2f07c3979ba9a497ca"),
			decodeHexString(c, "b74ee00e0e86ed6a9b07fb2d9e8f1111736cf1a00e31724e17fac853f0ffd099"),
		},
		expected: decodeHexString(c, "4d9db09b8812b94ae9ec3e5c93328c0bd92566aa19e8bbfa48bb1f51685e83d13669f3a37daa6fcd92e3566529a7d04c6080d9bcdd15212199817923abf33fa09159fd85182881bf3921b8c07bd49348f18241b9989d46bc9a06036f31f6c1a0764ea7e7a4164e854d59dd64c72a643ae0fdf880d8c8e85da9d5ed60cf90c141"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_9(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "da798b49c6d57073de41740da369a8d4409b5eb92d5b7ceb97c2ce26e45fc8d0"),
		nonce:                 decodeHexString(c, "7671d12c29370538734e341109fd4997"),
		personalization:       decodeHexString(c, "75ba1c88415959e68f9a6faee690f1215522025c0f48d02db83fc25b3c6cacaa"),
		entropyInputReseed:    decodeHexString(c, "b9beec7b7352f6ee0e544eec1fbc9fe03bdfeacbd3e724dc1bec84229432d438"),
		additionalInputReseed: decodeHexString(c, "8f17715c739a6b757a34f1486dce77fb84ec585f02a3af94803e15faccd39c33"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6946f9c95e2d130ba7b9b4fab7a7196465aca0fdb977946a2a20b23c8030507f"),
			decodeHexString(c, "6a6f44dae2bb9ccbfabb24d9b083c91017421a2f6832dc8b1e83bc0a755f7be1"),
		},
		expected: decodeHexString(c, "64db78f87fddd4148467c20fdad4aa90ac02a5411f05aefec712d02c5e6e31d841389174dcc57c1d32b1b9afc9faae38ecac9199f1c22425a8e20522ba96f8cd0d10db6b51ea2396c0a36c6e634a0ab5676f6377c27991c62d02f5be826a04f29878a6042486de79b2f57987aa0efa065b846357608c78360997e5cf70715b2b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_10(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "3e30e32497933fea413089fe6fdfe691617239f4e15b053e2c7dba7e6ebe97dc"),
		nonce:                 decodeHexString(c, "8fa62ada9a920a008a4060ed1d7f5bc5"),
		personalization:       decodeHexString(c, "6863ad36631c31ce2878fc591d54543df756f510016821eb0ef084f47e291ed8"),
		entropyInputReseed:    decodeHexString(c, "510b69229a300e6feae9637c7429f1e97a3ce17ffa8a5aff2adc8ae469439bd6"),
		additionalInputReseed: decodeHexString(c, "7175da5d212f2355ca74cfe8dbbe47625689ec53799fa00334ce784d675af137"),
		additionalInput: [2][]byte{
			decodeHexString(c, "999790b27eadc26dbefeb7c793ca48123102035d695cdf93dcf4ea9292a78cfc"),
			decodeHexString(c, "ebc362dd4c14f8df89dd7c3f9115fa334a1af06416da0ab7a0e98db8c86727d7"),
		},
		expected: decodeHexString(c, "cda407dcd217136c2011cc8a39632baccbd7a522e001eb4edbf044eff78146e92053ae6e6bec8635f7816b076186fa30d411b9ce248fc6c72a5596ec9c079f663d4e94b1cc048c5389370fd00708cddcc71af38cd5a0387dce0a18a05baec2cdbb19ec416397924b507ab26b71bae40e19df654c7de4e7f5a6b43010a7d375cd"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_11(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "1392b9ea5d64b89e933bf1d7f4e5e47b8943312b991c360d021b9a5e2409fec1"),
		nonce:                 decodeHexString(c, "2f2f2ad01350010e307ab140165e532e"),
		personalization:       decodeHexString(c, "640ebc23511f077f922eb7f68fe92971a82fe47fb17601a30061f8e551c0e898"),
		entropyInputReseed:    decodeHexString(c, "333e1c1811dd0a23c1e84ab013e15cbca83507525d0503a318100e0fcbca2ebd"),
		additionalInputReseed: decodeHexString(c, "9f38608d40ebaa7ca38c7291004e8de9268cb906efb13e880efab2224e4de9a6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "eba2d758ef8d76cf384975f67c3b6bcdfa9ece2c9c08e0f5856ffcdc539c588a"),
			decodeHexString(c, "3898869dd66543b5ffd8e6d5ffcffef748399e4d6464868804d42d69aabe867b"),
		},
		expected: decodeHexString(c, "f0b9bd219c0a9a5e89f599d27c61f160d049b67bc5c036095ebbeaa196ab51c835e0c1335eab3a426c82c0d6b70114d9d6487186920e0284b2eda84b2a8be301c21dd38f4b473591d3e7a9f963d7e83b1b4eace6a43fb70d064ddb1f723323fea7c5d68ec043f4eeff9f607b6d60f7cf1552cd7a524adb52e1a9156cc431a258"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_12(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "4a282427055e1ba237c9f30662fbfbe5c191122f7fd6b756066276d09587100d"),
		nonce:                 decodeHexString(c, "2d5220ee59d807de140c7934f71b90ea"),
		personalization:       decodeHexString(c, "2e9465fa9a8ba712050343021e7de122fc89499b2142c66c5ff203e35a33ff5e"),
		entropyInputReseed:    decodeHexString(c, "837ad8dd86f157a2d82ceadc326a3ef35288e36e7c6577ae1bb6ceb2b769b0aa"),
		additionalInputReseed: decodeHexString(c, "e42907edb7c21fc94acf4ca89a905fb7eaa081bf3a1a3dec4149fd95c558251a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "60fe93d3f38bb4afdebb2582709ce62b9e88c2b2edeacfc1442f42f6d2e6102e"),
			decodeHexString(c, "109d08d2fc724bb5b2f1cceb47454f9273a8d4a4c4c9ffe9849d58a4f21ee4b1"),
		},
		expected: decodeHexString(c, "77abb9b49b574bf42aca91ed59d49c5679b3c18e09010fabff8d0caca32c0cc799ae7c99cd50ed688104f69295349ab5f54f2670106fce2cc9985de7dd3cad15e1a9f0bf97c6a84eaf0bcbb50427dbdeea6aaeea6f4ff56d3c39cdd70e1f8d1f411787dfd669b2faf647400642f1914462fca7ca351fb4e84a0a843929395669"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_13(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "0c824fc42e088a7eba8785248870aa892e82f20bc5d75342e062a1c6261465d7"),
		nonce:                 decodeHexString(c, "e8a3efecb0de5a738b960e1aae478e78"),
		personalization:       decodeHexString(c, "7e8ada5678a155f9465bbaa6c89106250fe1098fb50f2d1329fef79cb4368eb9"),
		entropyInputReseed:    decodeHexString(c, "6c2aee8860a6b43304bbdc72f831783b70c1f6f2d047175e8acbfbbc69677a31"),
		additionalInputReseed: decodeHexString(c, "71b03de1d261e5dca0be92126871ce1781c89cbffdfb241945eff893f0251b61"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6034f63074634936a787cdd96b25fc1fa4ba8d16ae6862d591581e7be7ba1481"),
			decodeHexString(c, "b8fd87bd4e25a8c2ef1b0e4292632aaea04ec03eee9b1a27b64887703db03cd5"),
		},
		expected: decodeHexString(c, "3ddf2db93a9bc297665dd6938d5a243e7fc95c44e9ef91a0db65d83380ba02dee86e136e7ad454dd94a8542f9d3a51ff09572c899214b579d49abc61b65556c8b77fb35d3bd11d5facb610eb9fe7e54992d0066db3b259cdf2eb9b6a7bf96d7f79d1ba3f0253d9640331808f0f81230337bf229f3579ebf860d9be6fb7492e17"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed103_SHA512_256_14(c *C) {
	s.testHMACGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "2df6c4b4991573c94075047c4c5d0ac95a4e1ddc832949cad8479a9a9bb4c8e3"),
		nonce:                 decodeHexString(c, "ce1b37385e70e4ec7b501abcc22b4777"),
		personalization:       decodeHexString(c, "78728996738ea629d19be925facacafd771f13ed5ff36d4ddfb90258d0812391"),
		entropyInputReseed:    decodeHexString(c, "a260e38dfb4acc8c017faa23c668922efb21745931c80fa093069f52c13ca170"),
		additionalInputReseed: decodeHexString(c, "c87e7e521904f28e82e93d17a5999003f8f0ae9b81cf8354fe634bb2ef1f26b2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2cd520affc089bcfa84389e8533e8e1eba8f581af5709b11aff92c781d2846fe"),
			decodeHexString(c, "8fa0296a8004de774b88f80dd6691ac0f9452c4790f02404f7657cd5818fc791"),
		},
		expected: decodeHexString(c, "c2989fde23e1201014bb3d0d2d7f4db67b00a8d43f4103f3b4588e96f8d6166aae115fc0edefca54730728c910115d1ea7aff3b6f48789c4552881114a565ce8bab0fbf3a4cd2a74a6e30ec062bcf0381895ca48644c6c618b634528baaac5c501fb52eedf59a875c74997474f239948fa26e0f0550b8b153eda8e18aba0da4f"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_0(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "53835429e872a933e15dd0062c672026c3a295aa7e614998a5c9e22e710c72bc"),
		nonce:                 decodeHexString(c, "91f3eb64d56d0ee1214f24445d3b4832"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "68fca9ee2053fd737d203f472dcb49d63ac4b99fb730513c4eef9d2a59d97a4d"),
		additionalInputReseed: decodeHexString(c, "c8a6eabf11b671b2a04fd7ebadeecb31afbe3f08939054c70e4872eb7148717a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0b1feffb9fb4adc22c1c70293bc17e194b940e2720b8ba130f9a0f07abe23bb8"),
			decodeHexString(c, "0690ba5b71005a7d5a4b2bd404622eeb406f875349669218b1d0261eab1fe99a"),
		},
		expected: decodeHexString(c, "e95eb17c1bb1cf26a51664e16d6e2abd8323198224be8fc449248d49f5e45c9eb4731a2fb2e6db51621018e129c57954744f9759fbae31e133692dc0efdb154e789671ef0182f797d057e8c3b2acf330918b2e84669797551ae8af904e07a67cda36610d18bb59872f415d194e416650ccb73c66e92adf55950c08af1a2eddaa"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_1(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "c867ba0ed5233449bdb7e0f8ee8da2c6d846468774aae21a581a2d005243ea7a"),
		nonce:                 decodeHexString(c, "bf07c052f0a8d3ab0786f19074726e4e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "49685ffb7d44536fc0407796ec6c037dbace997101f23830acc97e4d5e41b0d4"),
		additionalInputReseed: decodeHexString(c, "8bd6f9a0f3936183d6bba49d110361e7581cf15c4aa58e7c9c559b7d43ccb00a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b7b5415d3ec4e0161029d95f9f9d81f007cab6c2119772dc1726dff5a427df16"),
			decodeHexString(c, "405d9ed822facc86a459036e0a0944c5e7b247b9c16ac02896c61df42cf24214"),
		},
		expected: decodeHexString(c, "92070fed054020dcab79b1d4146bee67ad03d718faca114da3622b56f3b0c75800f6a508b15910af4f445d2103590fbf48ae83490e6d6a9981975016e7aaabba09af8a4b77a822a8ded93ce7a33b5c17032869ce8a36fc338c8e5b369609bad0a136df2eb74bc4082007712cd33654c6a24879c4672103692a6cac94601a38f3"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_2(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "6b7a99e8affa388c8e141960321d1c1113aa75ec6ee5eadf231d77fc64c91775"),
		nonce:                 decodeHexString(c, "a7929ded328afc999530186efbf9f834"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b7d4699ddb259551f53822c5e9ace6be2cd877b5c41ffd547a599ab56213dd17"),
		additionalInputReseed: decodeHexString(c, "c5c7c482f844df42f371df276ee842569bc2b665c4a97da9444932f0837df971"),
		additionalInput: [2][]byte{
			decodeHexString(c, "25ce2780e214ced19667d6f73e1a85fa2c342dc8ec13df6953adf1ecf6a719da"),
			decodeHexString(c, "77418dce643fac1e881335e09b47ebe30e9c200b5b9c3641a245963b4a0f1c4b"),
		},
		expected: decodeHexString(c, "7acbcd0e8e7750fde62b3587f7cb4c3351e28fd4b7a06cfdba86f1844a883893d3da97871ba7b51a7ec42b1889c25d6b20d009e4ff9386746066115d87dbd7021c3168794ef80305fc6b3eb0969f58595c959bf65f03010aea9d15e0e083d343d97e5769f6357d8f1e01624cd116da8a38139c07195d9c49ce294e1de3e81312"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_3(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "52a205d8f49633df5f5a15ee7174083fe39e71d0c89a33303b521316d7b5dc78"),
		nonce:                 decodeHexString(c, "b2f679be84fa803f5621792af0b9f7e8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f6ea2cebcd9a27e46ae2e9be0dbcc7cde767b264f1c713b28ae82ae1a7e8fbdd"),
		additionalInputReseed: decodeHexString(c, "38e6ea786f679c411c57d0fdd602240c3562e93a83683050f2c4e41df9064e70"),
		additionalInput: [2][]byte{
			decodeHexString(c, "87b690f16bd4eaca47bac668b762db836b6786105deac8b7e0d09f5cfb6daad6"),
			decodeHexString(c, "cf6023ef9a5c4b40ec182e9eb640279143c03e299e6aa59440487b77410ce561"),
		},
		expected: decodeHexString(c, "324d01b4e8e51a9d5c271a85143ef586c70bde97d6a0714470fa4590c2dba22aea9e246f6914c2964364125727a682c154016c7e1207452ec800dea6e17e4cc0dad75f01253a12212dabef332c9618f924843003aa5b7f3097d1857a6f6ae9a45c4715109915ea8beb3eb0d341ad163137cb5a293ddd4e077cb905f3ed80cbfa"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_4(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "ca3a2cd60efe1f59e4d078d35ad69af6772aae6a270f887caca51a62893ddd90"),
		nonce:                 decodeHexString(c, "6eb6f65ff76d5caf16e8668d7d5479dc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a30c93d4ea646f2242dff3a7bf13b0202e5052bafca960c38eda9d19b8c5694c"),
		additionalInputReseed: decodeHexString(c, "7d4a2c79020054b4f979c3e191a6ba8b89f5110ae0ec99092a35661341da112f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8d03a249a2f0c9a07accf8cfaa267cdb9c874882feced009a6ebebfa6a270512"),
			decodeHexString(c, "4d017a8a84ef2c15a6e3e98f771ae40fe66a84d81b989e3884f0318f49901ea7"),
		},
		expected: decodeHexString(c, "7e9d556f47d5f0139baca531ee2ebc3a444e96dc6e10ff53903ed58b11b1b4a62dcfbf2defb6da51d33760db827f61d9f4199391666c667a8a22d4166ed84ae36b5e6576a0d22c8f02c4eb01ca9fcd39937e6ac0410d23b3bb42a68518570b986581d639d4cc95e91a9698956693522301af0c6adbeb610bc7595d6be9e18726"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_5(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "a678cc4b37597c4518921e7049549d4d2a8eb9b3b89931d40020fb9de1e32382"),
		nonce:                 decodeHexString(c, "2a9407c73960885e755357bd0b2b7ae4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9e15458c4611ae6d8a275d178514bf92734b2b899a702f198d6b16454db7a874"),
		additionalInputReseed: decodeHexString(c, "9bf455f4b5e96fd977763f61dee3072f6aa240891838211df1690a5e453547ee"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6dfbc277fa913337bbd8bb3ed3f1a90b15d0fbf86fb7d6443f693ea876176f2e"),
			decodeHexString(c, "72f20c66d9609420fde7b2db49b243a879cbaa6fb33be583caed788942bcdf84"),
		},
		expected: decodeHexString(c, "d7ab6d7501fa713c06bc81be4ba2b35d4df5a7905a4986d22e2e260aa2e64f8980bd134573d80a5185e81fe7a2c2f0c620800ec6fc0bc4178b5188b55f1cb0d625727af35e0f6346a4b7abc9102065edb1d20ab2d82fb5e3652f0bcfb48fffe3cde7a434cd9dab8d809344d582eccc4022d70520c960a3e4d1074a621892c20a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_6(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "05b52144973484f718d3b911fd8fff683b91aa36f42104f57546ca5e1b447cc6"),
		nonce:                 decodeHexString(c, "37fb8e90b9d4d8a66d2a951b60250e50"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "02af2c2b4dc564d5766ce51e093bba0695c2a8b396d05a7d88218d8192307268"),
		additionalInputReseed: decodeHexString(c, "ea0a76bb2496b49e7aaf7c340a1bc10124882690bc973794d8881f9a2f1976dd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "964e14ecb813707cfd0498ea7da7ceae6b9d9ba6523f4479f4d4d550810d5e85"),
			decodeHexString(c, "144890028f4c9a7754ed4c388bd612b4fe2f6bf8166e0cbc310e76f59cd6676f"),
		},
		expected: decodeHexString(c, "0338d7c1268f44e945322968eb8c5d38018f6b983206d229b2a42ed4ea5300e55c992ad956bb73ba9e3e6a94e59eb9b5fe3bb7d16539c1d05bca36b73df53c2f8f0d19d6d8608c25ac8f9d8d025aceb88e9df7b4ed3e88e2e090cc6ab782e58f8b8a9bd69687bed9fe466c6b433f52e7be3e8f701aebe8161b975d45aaa69cfa"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_7(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "1f18936c96837f002e5d6af3b77d4663a7ea5bb9f8c41262108437b0240bb1e3"),
		nonce:                 decodeHexString(c, "fefc4f82a52faaf780e745c837ce6468"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b70ed8663f5560bf9b1017c4d2cdbd32cb6827a22e89c4c12647023bdd8380bb"),
		additionalInputReseed: decodeHexString(c, "40ebac8591f2d99d2d151a01d62cec57970de9302fdf7eb1cbe7e93df5a0854e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a6ef4ddd0584cdd90bfa4ea90867cda654db53ab91749bc5362bbcc9e5573782"),
			decodeHexString(c, "c3f458acf584fb110ad62ef379ffa9b9c65eeb3c4a7188ac61b877ba1428a539"),
		},
		expected: decodeHexString(c, "6dbb4c0b927a7b0fba46d1883dc6d14810708b83ce957107836e1cfb8cf489da3f75d542a42904063fa928e656a10d0cd818992aa7e281dc8d576727d3b5819cbc464a098a351288f4787760cee35f8325ee8badbf7524beb33c1e6549a4a983eb10a17fed3f0c82995c250a309e4faa2687ea642da8f3ea3cabf6c377560a45"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_8(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "a343dad72baf03dfc5e1d6469c12794fe87863ee292ca31a50f0dde19f973c01"),
		nonce:                 decodeHexString(c, "c4ccf775b6264c9cb1d4abe94e6f7931"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f65187a9e0867e40cac96996ff1dc99420df8dd623e8113a1f7a7719c7809203"),
		additionalInputReseed: decodeHexString(c, "19db2e5439fa8fef60f8b6e903bcb38a4104701f9cbdb6737e6ce338262be599"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a3b05849d034e3510fe6461fc16dc71c320dc0b127ada0ee0150120bd89039c8"),
			decodeHexString(c, "df462c6303083ae06f2eaf17a8151efe0331be02af735ec63fe8047fa5e2bb8b"),
		},
		expected: decodeHexString(c, "e5b8dce5b868162b0be8787bf811a93c8380077c1636059326a7a5497f53eaae39dbb8fd5e3f0190b787efe8cdd475981b550d623f76e683fb9b963ce749db89ce8d4bd1fab81b7fa4aa90a92702a4459a57e58305eca659865c9a420d5b707c47063ab380a4011db3651d27a4de2d400d7c30c5c9cb13ee873cd2d5806eab4c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_9(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "55487811aec7bb6c580885840e7422e39b89981c636c1af798807c94df806c0f"),
		nonce:                 decodeHexString(c, "3e2bd25194f8480c806993cf3e4f513b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "53eadc56310157d7c944b03534cac0c95840ed0862a47b4fe1c5dffcb129e7d8"),
		additionalInputReseed: decodeHexString(c, "012cde26fc472110a14b1922a3d74ffc6bdcec1d85af5fc6f48ccd1806266f0c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e8309dfe34017a2bb20d976896cb6326d20b538bbb0707631d13cfb9a26ecbfa"),
			decodeHexString(c, "1d610f732f86d7ef53b1129eef6663edb087c1f5e310337497506039e6dd02a6"),
		},
		expected: decodeHexString(c, "c75940a2c7d34d99fa55b6115f935de3ee4f72de05ab2ab970e8c5fb251da5ed04950865165efb63eae4deb961de48b271df60e11c0d8b11bcab97124520c66a332c2caa735553b330bf0de8c1dcfa7883d480d5cf6ba5bc7902b33b330e2e233313c294b398ff1f6bff21468bfe2bcee6a2e6cb65cccc1aa8bbd8930cad3441"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_10(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "ad10db53846b7f1fa2ac38843eec61b81bba42e4c7d8a43eb944a4b94c072790"),
		nonce:                 decodeHexString(c, "a53fab7817f2cadc0b7f9d9e328dc0a1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0cd7a1b8a1ff9be872712252dbb137cceecafa032414dfc921c9687b6c1d701c"),
		additionalInputReseed: decodeHexString(c, "645ab93ceb81ee190c25ecc10edfc92848249b4a9b49bd45bbc2fc208cafedfe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e55f5adfdc3a39f3d98da3722668844b945421ad6b2ad874e3eed2108a3317c7"),
			decodeHexString(c, "73ecb98a8263a1e7e2f354f3e3911374fe8d49cc5b82773f89957aa1ef2949eb"),
		},
		expected: decodeHexString(c, "01235d374c38b9c583452f66f4f6cc8d135076d200e9d24e2baf3615b04ec06d7374589fbc450b16d4255a1329125e88ce90e0ad9bfe3b412fd6eab5db8c9b72a1b49abbc7b249a561ec5d29115dba60ca481576a0050d587e36fe53b291bd8ea142acac210f1137e2b65419ec18b584bb1b038948bcb84f099b6e2ba77e2f07"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_11(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "c45efdc1e63cf916ba90c3bc3d99f2ac473e9c2bfc548cd1f3e312c477d357c3"),
		nonce:                 decodeHexString(c, "cbf233df0277a91d070cc722c47e06f2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "478b620c3dc3951e80e886e72c0f65e56a62106fec4488f426002e4d03af13a7"),
		additionalInputReseed: decodeHexString(c, "4186f04bccb663d58c1f62cb843782b812c01fc3a4f5b85dff3af4696884f0cb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dec6ecfba3e61a29fb2bc74b6ad5f478f660b9cd2be5769e675b93d9cc4f57a9"),
			decodeHexString(c, "9b16ba48b9ce32e6ba276ae7b072c67902154fefeda3c9f106a398b1557d1223"),
		},
		expected: decodeHexString(c, "d9b16835563df3b0156009e065e4539b739508358e36ec37524465a623dca45e6024ea7dd35cbdc50cc0d4a07d88d976d27bbee71115a512ebc5fcb57d70360fb8cb92ef5797f40660da5c5bcec4182f030db6da5cde651b9e83f23e47c28e74bd84a41d6cc52c1a9cabcc41e7c6ae0b27d2c4bc6dc2089eadab78c1bc5eab3f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_12(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "2f56e10d7b2ee167dc468a188011eb9df05afaf2aaf9ca07de8d56e69e514d38"),
		nonce:                 decodeHexString(c, "b3d164ff6f6db3572c6c0a86a1792ee8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "697dd5334fbd479f4dd842485431d6a4b8f37447aaee14a5169d0f5c0a68f016"),
		additionalInputReseed: decodeHexString(c, "80062087f6f617e5e3e5582b959c62d97a35a59b529c16908ce051bedc4b9b65"),
		additionalInput: [2][]byte{
			decodeHexString(c, "62064fe2a0533b9285514d36928ebecbc52ddd4ee130b6424069cc746242e1c0"),
			decodeHexString(c, "68bf9979bf5f03984413f31e7092cfa5ac0c6077fd55560e4a475e45647da940"),
		},
		expected: decodeHexString(c, "f57744a755f02edb76848fef8ffafabdcb9e5b2758d443b5a6d428d8578af7c0bf1e61400171655f2d31de5dd1d0741e3f383bccb106cd00f49e067aa6b1ec7dffa1a0feb2f874d2c6418dbfa264632fec3fa91eb6542b9a190b70c5b3948509e59a18b5f1d9ee86492293303ed71b9dd750124b1c09e760bfa5d0c81c8ad1be"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_13(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "d148693f9609585b30421b72c9a8598054bae30ccad8c2f14f799a3858c857cb"),
		nonce:                 decodeHexString(c, "71daf4e6c6d9d4da7238e67548105744"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a11247e631790a6e754c191e6e256c273373b857a36e3fab16a14474d623070c"),
		additionalInputReseed: decodeHexString(c, "384a93c4aa6d998588a06ef7ff95ea62cf14c569a17258e4c5de74cd1e24c89e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "87503f287b2c660edbd83cb7074978f55f2af7a42e653ed30a354795716f4be5"),
			decodeHexString(c, "714cab163719648b614920874efd914998c6b35778f14f99b5f3d11a09547c13"),
		},
		expected: decodeHexString(c, "bfde83cf0500bf06509a1f0b273c98fd8d2469cb8e85acd81327d0ea57f57912e992c6398f48ad198b55af6ba71c4272cb3cb7794a04b8230708deac9a9e1c2512a68cc83c736c7cb9d12d9cbe08414c8d9baea96e7cf270f4918e5267d791e9ba21de456294d7b4903ca2b5e3a6a0df903683535a61a8bc74561c4b8ab71f7a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed105_SHA512_256_14(c *C) {
	s.testHMACGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "fc394b589d9ad2e8703423304bb619cd69a596a3d8efa6d9fca68132e0f6a955"),
		nonce:                 decodeHexString(c, "8e4e9613db7bc5279041a119cffd6095"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "70bbc00742db2b7ad2a54cd4d9d2b8979ee2d1a5c07f8405a5be70b360de17fd"),
		additionalInputReseed: decodeHexString(c, "b1e66fed6cbc30d3b7b5ec02aef4698db152c0521b3367ea44ba6d422ae6ab61"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9dd8bd9fec4758bf2489e94859f2a9b46d54cc3d94c420291478b2e73ace52c9"),
			decodeHexString(c, "99bfbefa7f8f92f57c86c6d01aea5f82f75e158e0b802c54a83351a0456d0ce4"),
		},
		expected: decodeHexString(c, "19318fd4ea1065d1d157c4a40dc5eb58bc6694515955362f651a616e9a190ff25807ded9f237f6dd8aedf1b1e6201dc334597faa0f32c573ed39292d3cc9ac3531464d4262f92424770c9b3497589dc12c74c8e8b25ccfe3edad24e4809e2393dd2ee036f8b4b28083cfc47dfa999f86e2591a6c886ff14d519927b399e3270a"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_0(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "13722bfea9328431d1d4039fcdc1d94c5ed389e584f1da8eb9acfc175902fe24"),
		nonce:                 decodeHexString(c, "b49e205c2b57f0258b3065a594e5bf77"),
		personalization:       decodeHexString(c, "d9d939cdbc69ea037cc9652064b9c933b1651e609446c0a83c64a4b8701b217b"),
		entropyInputReseed:    decodeHexString(c, "71737399ac220bcb4cc3733fe017a02f2b3059ab459b45f187e1de597617f287"),
		additionalInputReseed: decodeHexString(c, "c8ff3aa23b69a56d0b0f1c166b921e3251ee09658e57271bc10c3cac870ba3d9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6d0db92bb6802151c359416cc57aa4a33ba9d46158d5eefb6b7759308edf20fd"),
			decodeHexString(c, "8ae04c9287f3522d931b33fa7d4c03a74f1b368d39116e6bc6d9a4e7992cdac4"),
		},
		expected: decodeHexString(c, "1f56a526b65d9c98d699e3a4d416a39de70969cf9dd7f3441058958ccc3d6187b163488d8f1fc6c7e3b446584b8bc788c5f54ca1a235e45eeb453e3cb25eb5dfeab649edf614c788ea24d59f76567bd696883859a0b1179d56ed1b4f1f5c633b5751a7567fd9c8ce8670e1a1654ea5294b3dff0d869282d5e9892e635d366fee"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_1(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "658fe952111394c1425b300555967470d37475cc9cd9ca3ff8c42e477f552330"),
		nonce:                 decodeHexString(c, "21bd55624200d64b638dfe9d654801c0"),
		personalization:       decodeHexString(c, "3c26957bab05dda66fe7c3ef766583d0444f9db6288179ecc7d2ec359ecc28ef"),
		entropyInputReseed:    decodeHexString(c, "f7d88b00746e83b1822edd80f6d373224c51724c8e028d30530962dc44ff6192"),
		additionalInputReseed: decodeHexString(c, "36f407368902cacfc6a0bfb891307334c2b06273a0c02792c5da4b0a5c5b3977"),
		additionalInput: [2][]byte{
			decodeHexString(c, "78876074e1d06098d3e3b02f51601a3e5f447c21e6d8dc8cecae870f7335574c"),
			decodeHexString(c, "e01ba5e37378f4669ad7c61c9be8cc08d3c7eef5f61decd5028c92eac63bb27f"),
		},
		expected: decodeHexString(c, "bb67ae49eb781e842f118df384718324d02166bf1f660171c81f65973e70e3093da1c17a1b130c0fce443ceb50940847f669d87b6d48db5935f66f767ad486e3186b2b6ad22b84942eb1ffffe660570744775943742eda9fa2c7800de74cf5727ea17ec780dee3d84fd3201cbf31d72df989d24975b2be988b9faf9cb1f0d9d1"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_2(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "6f5231ac26b942a0e61760cba0fc4960f4f0187e9aec7167df88d84e80185046"),
		nonce:                 decodeHexString(c, "bd746207f1babfeeca79be2edff4b88b"),
		personalization:       decodeHexString(c, "aab4a6c3e154adbc6f549f8ab1242924acdced981c51c0c15aef4e769d9e6d51"),
		entropyInputReseed:    decodeHexString(c, "89091ef8717227840c0f7a479b086bd9654b07d4f6f9a5db1ca342c6b86e0f30"),
		additionalInputReseed: decodeHexString(c, "ada3ee0aedac447dc4fa5ba3b81bfca3d7d1fd2c89413516cfa52349f22b1d72"),
		additionalInput: [2][]byte{
			decodeHexString(c, "43fb27d5c165d533049a2da47fd1a3df695065aec40650f10c5c8e181f0b3072"),
			decodeHexString(c, "32f6553f46344dd8de941fec8bc353f99eb8c7badaa108d365f22a3fcdb162ce"),
		},
		expected: decodeHexString(c, "69c1893302b498af007fe97544d3d88b045b1b4c771fc14bbdc76e6fc2ce72981f67910304a7194c433601a370f11b0b5f15fd97bc493a1d519d307e6f492e73256ef7a5013a90f0b9ec36e430fa32a835991a1b7c5f6c0c55760761d3aebcf52b86dbd7f47291503d389ce72f8d228f2bec1b0d5434b49a08023f09b203909d"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_3(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "2da5595cbe827b17d69c834e5d13e344584797ee9f9fcffd3488e6987dbbc7c1"),
		nonce:                 decodeHexString(c, "557d55e14fcca60471bc4a669809d40c"),
		personalization:       decodeHexString(c, "0f74c702f39a65d6861f9f732edb4c1189d610c7be6f29857357e79ab37c27d8"),
		entropyInputReseed:    decodeHexString(c, "f0f371bf64f58938fc85166891e3450bfa80bdbaa6ba9abe2cd97eed78844b1f"),
		additionalInputReseed: decodeHexString(c, "223de1493e360f93d32857a97ee1ab4826317b14b6664633e3d2e8648ca1ef31"),
		additionalInput: [2][]byte{
			decodeHexString(c, "385f4c62885a6ad2d9b4643ad117410228ef56f883969f52abb88c8f673a066b"),
			decodeHexString(c, "92c7ed0785ee67dad948aac47f165b491b7fcc2310ee73dd99d5ce9251261729"),
		},
		expected: decodeHexString(c, "15241afc336842f83f3a3052075bad7df3580bd60e6960f64f3702e1b77b908352e61ff98dba6f3e8e2413235debba87c9241a504e89c7b9b0c44b72aba18323af9fbcd249cc8d754483ec4c19a5bf0a6afb1aa3df4c8058446e812e990bed72df109f515f4afcad906e3f824fe80742c65e313063795b521b6f6b24a2d46e1a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_4(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "b18bfc54b50ac41bb304e3da81f3a101ac31c1e867b2c3fd03f6b2d9968f3e46"),
		nonce:                 decodeHexString(c, "6d06a4c7d28be50b9aff3c2d42d067f5"),
		personalization:       decodeHexString(c, "b0803f48ada3204112b06bf7dd5ea0b3878f8aabef7aefe6fcdac5eda7aadd86"),
		entropyInputReseed:    decodeHexString(c, "1554bab07d1afdb6e1b55349ffdb044f32417f557d417908c65f6f3c5ca7ae5d"),
		additionalInputReseed: decodeHexString(c, "37e18282a4d8de4e57a1da597d604b9d8d478e9fbf97b5769fce6f3e065a8a56"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7c337b1ad0c797d244c51b400abffdbc6ba44afbfaf8352f9850ef9b5b658584"),
			decodeHexString(c, "b0f34c1c7408a9a373fa9c0c98b5073b5ace71a7544d751b62caafcabab9b35e"),
		},
		expected: decodeHexString(c, "e42d3a1ae4425837fcc8981e69776d7b9a7637b73a1a0524f93aef0beb5c78dcf6920af6e47d68b9f2f63b9a8a60f5fe3d117b4ea15fc359926af5d9983a0186b6b09abb2447aeb79fefb267607a8da3ffa24a2425fea5ddf2d8e32c1fb634a46b2f76b53f711f3425a8f42bf9ff8c7c971add765710d3cc3f958c65dee0214e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_5(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "94baa4d0211c0f1e397c0cbf5606a5b6f54e8392c44af776e73986c6e8c74e50"),
		nonce:                 decodeHexString(c, "d0bc533490eb9060b14f5aa0b52bab99"),
		personalization:       decodeHexString(c, "fba4b1743edbe0099d0b23c6c91dac384b8fb1c488a28e2290d660d33f4b2b1c"),
		entropyInputReseed:    decodeHexString(c, "ce37bc687e2683694f450fe7d7d72b5f485354538b69e56a4de725c988fe27d9"),
		additionalInputReseed: decodeHexString(c, "172040d6f88ee331c80aec2634c47f8c73538adc333583977207c763959b679b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b4be9bf0129b0461f77d08688064405ba800c0864a2fa91921e20f9f540e4f5e"),
			decodeHexString(c, "5172811f6b31ef8f1b9616150fda43db9eceed1616aae0ecf9f60aa2bdfeb85d"),
		},
		expected: decodeHexString(c, "ab7f4bd73bb9a23e490298ac2129ac9039c1899b53f04e5dad3765b10182123dd45a9a08d0fae8e73c73d71cbb1c71ab37d3afa8564ce8a17c5371d34854c34d674e2a22bdcb4a34882effccdbd596cf7d398b426423acad73dc5c83258dc00d91f44739a88ef97d3b96443b2d284e5de0f1cff7dc4819163ea94bde73e9005b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_6(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "7398b194ece8441d43b7e456955869f6626135e1076600a11396c9b014a1c569"),
		nonce:                 decodeHexString(c, "33233c9fd84234a546192684ed8c9480"),
		personalization:       decodeHexString(c, "2fc550c8d0638047382edd4d1d0174f6e396887891c90316879a4bcc26b61317"),
		entropyInputReseed:    decodeHexString(c, "d1904042c3ff4ba1a9c44da7bdfaed057a1285132fe4df60b21a5884ac1377b1"),
		additionalInputReseed: decodeHexString(c, "b3f32c9c6f063792e66ad8a52684a2081935f57fd26ec1bf8773dcab465d19dd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b36cdc4f6635382dd8794104f9d245247c8f3a39626f92103f51ea33d5b3c391"),
			decodeHexString(c, "90b10a00ddc3473ee23582beac36797c21ffdacdce9e51400d7d1a6bef81c051"),
		},
		expected: decodeHexString(c, "98544b5bc4493bb54445b2e97cdb7bb65c5218598290a4a2ae672a88a48a16203848b548f71f4b4ffdeae6482a6b395224c689a7cef1fe56c50265b38111bc3385b2a579b0a0e04f7c3bc672b24789b178435f74843c8a9f546ba109acb6b1006bc20d2acb7e29285e857cc0f0c5530ea4af8e9edff9d84a3dab103e2ccc9bff"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_7(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "a577e89915861122ad72cf8c916558222183581749df07bcd48075de88ca7c38"),
		nonce:                 decodeHexString(c, "6bddd13ec758c4a26b01f44ab8b9e536"),
		personalization:       decodeHexString(c, "08487819a373d451881399116a5d172659169bfd2040a0abc5ea82b19e414d6c"),
		entropyInputReseed:    decodeHexString(c, "4f405f93d97973c7673c086b1e54bbe481289d06f5d60b565cf24907666b5245"),
		additionalInputReseed: decodeHexString(c, "e52ec1cf01510132640637be15e7ce8456280643ed0cb44c54c986c6fc8a99bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "181a9f831759b891dd217c0f577bc0c94f9bd98df3c3fbe923b1462014fa4885"),
			decodeHexString(c, "4dfc814b9e238a411f8b6b5673bc3de473dd8bfce1c51db57bc69c08c40f78e9"),
		},
		expected: decodeHexString(c, "666b06cfdffe93a3c472182c69f6f7f8c069b47bfd2d9fd76820141b7fc209ed84ae902f0cc38d2bb4fe4faf1c8bcf6b517aede78295f94f09b28b76fd2fd26444710222b3499c35d438834e54cb4014c2e33e5ae23e285add8e7b751c2f9ea89cd69393a35ace89c990eb3c86feeddffc5e89371613940d8c04d683ea97e87a"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_8(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "2f3f1a84c97d1ba4b3cb9ecbb54bd86274ad75fb780c72b7b5b38d8a69dbb151"),
		nonce:                 decodeHexString(c, "902cdfad832526972b27a1c829f8695f"),
		personalization:       decodeHexString(c, "513fc2f52b05b0999bb7cf8c21d8d3835f0bfd3ad69bfedd623d3cf02155d55b"),
		entropyInputReseed:    decodeHexString(c, "a6573200e875cdde32bc29462ef3802ed1f2da0febbe3bbb19aca23d2501ff78"),
		additionalInputReseed: decodeHexString(c, "b6df8d74731d99480e841e7813ebe0f562a87b96de20ec68f332fb2b3fe30054"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4c59352491820cb33dbbcde911ec394b55ddd476b728769cb1576c3ebbd57743"),
			decodeHexString(c, "434cee9f92038826c2e492a0cb9f67c771f32d98018b0b9e949506e9fffe65ce"),
		},
		expected: decodeHexString(c, "d9ffe47b720459363459da347e09abf08a0f26dc67c5b11839e6ed205ad4c54809c0e927be7c55d9f879ef8326358907a2f515ac67795495a958eab1ab0a5086c729661b2f510b48ed762044eb349b97a32db8d69c47f20bd81cfbf731977dd5b545bb81529fe0f425db80f36041b236eb53cce7a97464463fcf843bef7a762b"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_9(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "fd66d1528ae9f309047ec9c378cc73643d2c5166f4fd5f0bfd67ec177ac6f9a5"),
		nonce:                 decodeHexString(c, "17e97a4050b97ed9366f04b7c5fb3f8e"),
		personalization:       decodeHexString(c, "53f82d268980cf5dd260a0ca471e3834a724430c827100fa62b5d0bfb28f7395"),
		entropyInputReseed:    decodeHexString(c, "b86058a58b6859ada9b94cd0e4611ee093408be3b75d753e314c769a65eb3d91"),
		additionalInputReseed: decodeHexString(c, "50f70a86ac776caf67108ccf063318d8cec3ddbfe57932ad77b20e21245b2eae"),
		additionalInput: [2][]byte{
			decodeHexString(c, "255b8f453fab4d14435620829a48a0e53ccf5d3ff316f83981416ac8e5969eab"),
			decodeHexString(c, "e19559a3c11844966b170e7d4f9303a431a15303e63ba6834d398ef785752c5f"),
		},
		expected: decodeHexString(c, "1be669b3283d870d15e2e9856b91ddade973fda0ed80fb58f957c4e7f39174b14b1936f07b5b6afc6df89ee96c6e851bbeb5ba9c467fbe9494ac194e660dfe292bf2cad3e71ce2eb06640ed4e2bc63f3c52fa385d9df5a07d491b3d64cc1ac9d937d0ef625a463d3d295bb4b09844a8bb63d9440f731368ac0bb59d6e5848777"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_10(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "d59bfcca97785662be11cb01069ad84e969d76bfa90a047dc4b42d5edfd90a4b"),
		nonce:                 decodeHexString(c, "2dbf73db611ed91bb408104ab0b8a1dd"),
		personalization:       decodeHexString(c, "86be6964314cb1e868303caa75c02ea496366d7bbda242ff9d81d1bf1553c8aa"),
		entropyInputReseed:    decodeHexString(c, "5d6e05ca22c86bbebd41cda23b8746198d6cebe05d5f1f33fcb57774778926d7"),
		additionalInputReseed: decodeHexString(c, "1705f256fe0f3c1ea0b7547b2696a2e44c8a0fee42b6f601e889e520c6a315ec"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6cd2ea7999bc31221f127aaa07e06db55623165edbc16724e4098405c2628437"),
			decodeHexString(c, "2142e51708cf2f823e6a3910333e4774b3c94fcd7a82963455cf5281e3a1a399"),
		},
		expected: decodeHexString(c, "cefb91619aab4767e9f8080c9c105444b58c108e567fe41b4858ebb89102b9032fd96a74e06a48c75945c41b7bedd66a2845cf3a5139493d69a3f9107f4089513c4b6c527d071fecdcc22c34f10c4cf5feb0be1dca0b0975bb64215a63918cc2310dcf2c37e7732aee92737163f2054963aa7e35977466dfc53514f3c88e7fb2"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_11(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "57fa97342c92487aedd7766b0e5721c0b90765b6eb98c9f65da87b09467f12cd"),
		nonce:                 decodeHexString(c, "45afac70e478132cd1d566b3d54f00d5"),
		personalization:       decodeHexString(c, "d5fed02106d3bf346d48ed2cb8a1c36a8ae0826c75a03ce5fb591310d1c238c6"),
		entropyInputReseed:    decodeHexString(c, "e3ae21b02424dba5228bda8d61fe645ea9f709fb1c9a3ea585076dbd1b410745"),
		additionalInputReseed: decodeHexString(c, "fea04490be7e3dc0ff6280f371d7ad46b05acec2f6d4adc88664ded4bc87f5e8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7bf23f5cb011b1c98c428d1703123f9b8e790d272f85dbee275329620fceccf3"),
			decodeHexString(c, "3e5a0edd90858875300c579dd6ec1ced766b7e89f2d2a3aa4e08d88a8db51000"),
		},
		expected: decodeHexString(c, "90b6feff3551f05bda2e6ac142d2bce40972e7bdb6897452312622476291c9b5bfc69a0d60029bbf63e4496a6bddff56637282cc2af78b68493ab6f55353add538d8b1c99a0c8463b212a3758f8f8ccfb2bc94d2afab7ea8d2185f91857b411ad5433e37caede90dfbaabb12db243ee796b1699fbcbabc143c7ff0da3d863410"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_12(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "bce36cc908a253adf0618bfa8ea58dfa9597442b423b7ec262f0b80593d3d8b0"),
		nonce:                 decodeHexString(c, "94b2f6d101c5539afece79afd42f5e6a"),
		personalization:       decodeHexString(c, "42b6d79367ce55ae939f2d9a9746d2753ffb452dba1846ad4ad599a664494b69"),
		entropyInputReseed:    decodeHexString(c, "f8c6582a600ea86196fe0a117fb9d69d260d8e8f28727c3322c4c2ba7f8ddce7"),
		additionalInputReseed: decodeHexString(c, "e37ff948d2e3ee783b1cd7a213470b59ab0461e1dad7e20224a845cb7aaac87f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7e645071071a63c224aa40a2b1b3b4ed318ff69cf32e530f6c31be9888ee4683"),
			decodeHexString(c, "669b6d40004bcdb245ac0c8ace931c7f4ac22143ba2aebcb5c30743ad8515ee2"),
		},
		expected: decodeHexString(c, "2f298a0e342c3d40a191a228eb6aea6b1173e3c78b7b7caae665c186a547aedcbfaa441d8d4e436442746fd5aba5cf0509a147988157ce738b7ab5060bfeb76c075e49a9535d8921f6162f3169bf7c8a46b5f8f4b296bf14fef8a683c2ade43433210f1d81223ac7239621d875121023d328e686c31d776ec66f7a4c04c6eb9e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_13(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "d60050e50d2197eb364245c334fcc6232e62ca0e491b27af78a165a3062e7409"),
		nonce:                 decodeHexString(c, "caa1a4f6f7d6bead82289b332d889f1c"),
		personalization:       decodeHexString(c, "dfc7cc81610f37f676414882a682c5005c1ca04d03ae5125b30425208ac36136"),
		entropyInputReseed:    decodeHexString(c, "10fb5ddd6238597efc7524ad8a4c2cc3e0777d3a366b9799ac2f2fb02896804d"),
		additionalInputReseed: decodeHexString(c, "64fcc7e2d7e8cf7908ffaba81ab69f54edccb9f961246abdfbafd81d6f71b2f0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dd7222b16ae2323de3de43ee42f35b80ee3a56d245473ce52e4037eaffea3e9a"),
			decodeHexString(c, "8873fc98a7f7bdfaf5f30d2e4400c639ae873bba87d49c57a77f3e9b94e5e0ed"),
		},
		expected: decodeHexString(c, "f22025b50fe7cbb1c8dbb6d9878db9f6eb36e58b629084e5b6a6ccd207761d0c4589ef098d015a8bfaa21d05cdf1b24c9d83440398a6f7285c01627593ac799f6769f3aaaf97988bbcbacfb010df2321591482e4d9cf28a81bb4f15f70f15d70a67d5faee3eaf942b031859f6d36375c6f235affd7d931092b4d7528b0229cf8"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed107_SHA512_256_14(c *C) {
	s.testHMACGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "9346ec3113369315233f000c71d531da53901e5d7792c15ce219aff85c92c269"),
		nonce:                 decodeHexString(c, "856e0a090669d5e7cee4ad5140f93260"),
		personalization:       decodeHexString(c, "99443f464bee7df64ecf844056d14d0b68d73e6a4a5b4c4e37403afffeb26710"),
		entropyInputReseed:    decodeHexString(c, "2b1050c3e3d2a087f227307ad2d7b3b64e00e64fa24588a76c488836e67183e6"),
		additionalInputReseed: decodeHexString(c, "8469ffa4c16de3165719664782f7f80d947aa8604656be92e2dfaddc83fb6426"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a5e0e8585738e08b682916bd12a640f762b7a1bcaa11f6813bfb20633410b370"),
			decodeHexString(c, "d797222f26a4e392372606371c35e67aaf651e166a20a8022934c78aad636611"),
		},
		expected: decodeHexString(c, "47c66b5ea820b17d4d987dbcf61b81fa9dd4890b107d487f5bd7393317ffe2d8365ac6573c56a500655fd283f5941c6d889138953d0fdfdeb00f531bb71a34b160a316fb07ffa2a6a89b24b170eca56e5d729095de1cb7392f492175d20abe4f4971697cf952ac5ab0bfa540fb89262d4c4a065086b04b552a215053114a938e"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_0(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "6c7f7cb957ee62f04a45eba144c29aade5c23078232bba68da400e2374ff1b5f"),
		nonce:                 decodeHexString(c, "a71760fd56436c458530e2e2a2fa5f78"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c5fb044177f8674459747d04cb98d69dc77035d68b888d3dc090cc91c76803e3"),
		additionalInputReseed: decodeHexString(c, "0f198e122ed2e6b147aa8daa5898630373c7a3df04136bb079b56cb7ea2bbe17"),
		additionalInput: [2][]byte{
			decodeHexString(c, "63ae11b8b395ee59dd32f8db844f0d5bcfce4297ee132534cf989fe31cfc3661"),
			decodeHexString(c, "5e368fe1f61475432fce8394f5256438c3b26f3a361082f1890b27082c4eaa1e"),
		},
		expected: decodeHexString(c, "4dfbaa2f46d1438edfad4f508735773e514da8f8b8e700731415831ed0cdb63821ff599fe410a11d979ccda3fd0b77959f5c187bd5a544f34213bb7ca3cbd366dbeb12caf361ec988f2edca60610b2560d3f72968f34b65567996025acefb30a7f03474e044c819c0dc12cd8ff60f80ee4a9fe8b5db230aaf0a53d25cbd662f6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_1(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "2bb97ac179c064a386b1d6e9b1f3c1d50511716c90034cf38c40901410f7d5a1"),
		nonce:                 decodeHexString(c, "b3544c5a7adef90a1acb33fdb9cb9c88"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "388f7214de8b8715f73f4426400de5acdc30bb80c530d163fd0edc1b4c5d79a5"),
		additionalInputReseed: decodeHexString(c, "e839282fdaf9e4a53f47680a850bb094fe139965e2d408bf90699b7a313b01c9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f26019b2d9bd479c484ad6794771a71a6db7835e7263d5c816ea68d47d70c13f"),
			decodeHexString(c, "185bfa7b0950cecffc146780b34b183b631d2346d7a971bc02e6e8e4ac5c7e9d"),
		},
		expected: decodeHexString(c, "cc0dc68fae8e9482f09ac8b99687fb05fde1d96c9a04eb195ebe217544096f2353626b67ebfa492e7275856ef03376664912a76ffd97435ef22ea2c82c5fe85f251755f87fce859adca9978bda3b7e0ee1a22cd59bcd3e6604abf1066a988d3d1784536adce791f61f358afe4cddc5a3adb00f7c1976d27ab2676eb19deabfb9"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_2(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "f4ccd63088d3a3fb37f9f7c11b941f8da13fe473d6e29cab0f607015fffdbb46"),
		nonce:                 decodeHexString(c, "556a34232c7fed0aeb49f1f4b89ab152"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e0fb0caa02f268ce9abe820039444d3a5bf80b9b3c882d75dafbec95f9011fec"),
		additionalInputReseed: decodeHexString(c, "e998e4109658b19cd3752b60e6030aac76db8fae32b5e262456213242edfb149"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8cbf032e8878d4fc3303f7836dc6b86755b5c44de234a23b8452456cd06487a7"),
			decodeHexString(c, "f31f674e2c184463e3eba533e2206bc06cfffb4d4fe2e74a8354df37f684ba5c"),
		},
		expected: decodeHexString(c, "1b4de0842cd4eb0e70a15be83a71a2070e944e88502f46e68834b738c7dde20066da961194af7dc6e67389fcba269283404b23b09b0904339c15481ad16d2c1671c02a57158f28d36e6ae025d1805297142520d97b848f349c2c328bf76433999b0dab0e65b4d69dff5aa604a3412d07a353599376b20c0bee2eec416826f558"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_3(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "8b50f2d6d05ddaab91fc508138f3bb81cbdefe8f79ffc4cb2d12f5fa79d64c29"),
		nonce:                 decodeHexString(c, "d88a528dad2dee4a6eca47205e521496"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "77beb009c05756dcf91251d13d8f13686a25d6bc11d24a0926eedef3bf4536a1"),
		additionalInputReseed: decodeHexString(c, "af2ecf7b9ceffef2a3010bd2c9c75dc7167ec31c92a87866cffb0a0d116fba24"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1fd067730000ca75a07eb896baee44b9664a22ab21c74f6d2fba1a39ae7dd35e"),
			decodeHexString(c, "a62700a75c202acadaac6219a0edb7d9baf0574a4bb49ee19db550a434775574"),
		},
		expected: decodeHexString(c, "4147024e83b79bb0fe839ea1bd71234323a909bf2e6356b3f6eb5519075df8ee7402ed762cfa6337599cd45d574b58e0115327ca67a2905aa2e69399d9d4613e36f1bfeccba6a1af51aff0cf15ed62052ef144a2cfeb7547296b6e111429f0e032110ce136e9eb55b6b1f5132ea170c93acfe085c2104c90fdbc99fa8d079d1e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_4(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "d0b1ba0150ca5232843a1a1e8f16c011999fa6f6021c65c0ab81fea95e6672b0"),
		nonce:                 decodeHexString(c, "8077646d4817ad18789902cdf24ade82"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7bce5eb22df1bdf2e1a5324b14cc60d1e2ee77a7426c68e1d6db889601332118"),
		additionalInputReseed: decodeHexString(c, "c29bd7791814e4fb3f2379bbcba5e838f9ae113fc542c76680be1d073565e653"),
		additionalInput: [2][]byte{
			decodeHexString(c, "748e93baa446b71390899369aecdd70ee10bce3d21a92848c163c1b9e2ad80dd"),
			decodeHexString(c, "6d3fe6cc363e75bcc5b2e57f3d46d05e610270cfd297b47bf4fb81f2773135ea"),
		},
		expected: decodeHexString(c, "a8e96d1a6fd6a16efb034a8d45f3fd7085fa195c3f33b3547c5b935abe8467db83abaa81c0c1429fce61af1bd5029b133467d27b6de604c634a7b241d44c2b938df5b2b70984c52e2b6ec34171eca28c2644b14dd9ab0fb3d10df36fa83fa0af874fc1204fbff8b5a229c9bcc63b9f9efb42c4526f75d81fc38905b053e04c90"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_5(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "e0a34dd16929c0ec075091a76bda5d34df43eba1817c8caae679ed350c253cc0"),
		nonce:                 decodeHexString(c, "5a309a40dd4a33b2821cec3c6587a7d7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b15cc5164b2ad349397ef6a70ab2ade875a974dc0096c367c684e2bc6353f915"),
		additionalInputReseed: decodeHexString(c, "e34e331d5c087253ef9ee2ca16c0b09408693b3042ee92b4826f8394071f2dc8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9b250184bc7beeb5ac732a72bff817096ef7ecdc52a5f2ba649df16e69c543e0"),
			decodeHexString(c, "c581eebde19a6082b29099982aaf58be1348c76b39282ffd124b0b3cd257ebc6"),
		},
		expected: decodeHexString(c, "6510a6dd3a7530a6d27dbdf959f7907927387db23fbde72002b64d62450a56b568cb314765944382bf74dbb3ba39cf29bf020d68d05ae47af31b73f350e5da0a29520c60c60c5f8dd45a96dbf957ee899938a578ef9bedb554626eeef2c67f3ea77a8823277e06e9a38bbce27b38ac3ac999770463ab9d5a3f3db5af7b3f1693"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_6(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "6c770da75510ef99da5aa7ba880ee7f27f7020bbf448ac6370152e1f70d159ba"),
		nonce:                 decodeHexString(c, "403e59b38cfc7166ee141439eb2b6e51"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b94ef25af819b0595f45b8e8a2ee46bb98df84aa30dc30638c22cfe13815d052"),
		additionalInputReseed: decodeHexString(c, "45901e60450b841282c8641ccd88b67a84c3057fae64962aaba2adadf8c9c67f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2468eb77ce6435b318c597c819c290c0880917b67a08d4d83a4b32ba1347c115"),
			decodeHexString(c, "1e21ca37c8685cec36d2baf3f1ed3a2a5459c6fe1ba59d14986ee421f460b77a"),
		},
		expected: decodeHexString(c, "9afafc60ebca8c50de599955b13b85cd1a2d04c2a27a04ce40a7f7fde915b362cc2ef68fc2a21ffeb5bc7a524dff02b8c222097841e885508f90730c4df410161df15e5b13772d9fa455e2d214ac97a074c9199dd83c188cfd4e41509197c7a5ff76c0a47a4f7624f105b3dda3f866439bc0361175c4d59e58c579f80587b055"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_7(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "a252d25c6a54f1e932863083df28ba4f0fd4547f6576890fe588963f32cad4a6"),
		nonce:                 decodeHexString(c, "519f2510967d4068ffbb8651d6d046fd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "07c15b7f178c6ee26aedb18fa0bf4f4d6f3b475535229bbfa1e811302ceb298c"),
		additionalInputReseed: decodeHexString(c, "5dedccfc7563b881e42b9c7adee9017f99c6eb6e8cca184b357fdc7806ed6af7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e7c35ac561c37d5e7fc2864bcb4c650226372ba569861af10168e07c04ab025b"),
			decodeHexString(c, "4609b08f226e61d651d63c773d17913c729890d02ce3eab32a2a5aea8ce4e95f"),
		},
		expected: decodeHexString(c, "d701a056cbca20bbc2c2c8585222c1ed8e67d783dbe5d725a9fd3a1df8260343e87fbcaea071bb3b81e00baba20d0afaef5f12bf04296a9c6995918bd7f6664c1ce166ea6f14c2d549eb87cb011cd254491887d29f58ece705122238a7c86f1b5863175b28524465fda4493543ecd1a0ffac4de288d0b594b22f7bd7ebaa6702"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_8(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "8ed425e1d761e92f07ec8cb098326e7a0f2b02a1ce22fb25ef9a35484bee031f"),
		nonce:                 decodeHexString(c, "c9b14fab3795aeeb58422fbcf974a13a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d3948d2abdd6009aa51955a52a1fcbfbbf6f68bd78943c7a48aeb84b5be3d273"),
		additionalInputReseed: decodeHexString(c, "502122287bae8a63bbf8cae59813cb6025cc164bb0e856ce9198eee1724c4ee9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f88de990a9313c102bab1f138ff423ef214548b9a011f2ec90f8cc99c28b3a1c"),
			decodeHexString(c, "7df57ad388c516270d3898b52ab0525728160d902cdecb0e59d9fc174078acd9"),
		},
		expected: decodeHexString(c, "b9785bc1a420b920b1e3f83ad4733529d3059e54ea2e7c83ebbfcefb9373aa0ac3a80bd13cce28bddc192c59e46310fecb527861495a9a6152232f572b245f8d1956e6cbd03567ce7a199aa150b0fa16ee3e1128eab3800a2055d81bd07542c4ae4608e2915b72c9b3d9fcfc8112fd7fac59866a6675271ac72cc21fdc17d11e"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_9(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "02a152572d79ba40b0adc932c8fc5b86bfcf7aeed81696a54cf3cedbd6f90519"),
		nonce:                 decodeHexString(c, "2354d5f190ae00d06650dbfe50116c9b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d75986669810ce5eb0e6103e6f40f8ceaf1ae64e198d1788fdb1f19bf0016c99"),
		additionalInputReseed: decodeHexString(c, "ebd8d956f859adba6fbb384a4aa6706a6d0a8d72c7b00ef4329649ae086739d5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ac5eaf28e7063898d8e8a83580da29bbb45a85ae40d32b53dd10c414f805b6a7"),
			decodeHexString(c, "83343660a6cb2b2348af76450466f92a91d58ddffbbf0438333781d8dfc2f6ad"),
		},
		expected: decodeHexString(c, "bf4db35b109ec5fbb65bbe96b1da29878c953da004262335474a3328ffdecee05063da5d63d9471784d9e039778931938b718170a22fce18ad3dc86e661bfd95ba0c52069f8020816a9adc8aeaa05897f9a30f6259dec4e296e75657251654b3c85fc1be6f43ae642090901b4000737e49c82c0b927b7fe47bc49268fd2e3251"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_10(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "d1d7d60c579421a41e125fc91c9bd0f60075fd59d4a891c5e96a528fd61b93df"),
		nonce:                 decodeHexString(c, "17803ceea32303a81647ee9bf12d8d7c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e7795d37c2269db6796f92880ff08d47bda16a68f9b4967773a292ca2409aa6a"),
		additionalInputReseed: decodeHexString(c, "002ae65fc512137252aec8b10a40fb63ebb4443d71f15ee4b7e87eb60d997588"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e42c9bfe3b62d3f3f3c7d6b26b58ae750bd00b90e370a655d0564f83d43c928b"),
			decodeHexString(c, "9618d0a600593c12e20348cbf940728fafdce5cbf698db1a3d9b69c35bb7fa74"),
		},
		expected: decodeHexString(c, "4d371423bdae5663d34171508c32947ac44991d8a1f2a4187f949e5a85d68ed2963d6a160043c5f3604b98e2c051c87c35882097efc96d9f27af46b85b2ed1be5b2ebd592fd7e63a3b3382b6511daacc20e6d9994ffec4e8a133a0c3a09df1e0c99c22b008380752b9b907ff0e2c3579875a5c1f54e0acd1c02ea6eeb5e2e3aa"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_11(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "86ce1e7631cfa0642450520b01b9fbeb6f6ca1e8f1d70f58246f37c052b78bbf"),
		nonce:                 decodeHexString(c, "fdf9b1fd09b1385db00efade922d9b23"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a9a6a1b85d95829dba15ef169df53fe5272b991bf42c396d34f3a1607e98a7eb"),
		additionalInputReseed: decodeHexString(c, "8979648b425f3f9d13e13fa858da5820fbfeb77647a5b980858f83852e931523"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f6480e850159f9b262c7c2f8a86c0e87c4093847a874930bd33940b7d1d18726"),
			decodeHexString(c, "65f85e7332347b0828ef351d7bcafa7cf866837517d9b4e3ee044e23c1658ea7"),
		},
		expected: decodeHexString(c, "b6e5b8ce21e1fec474ae669e810a65f203388d448939578704b459d79721e44c9c8a95043fe6e1878cfae3c8c6dbcec79a32c7b5176fe105f3a9a1163bf24d295dfed12856340ec8a8c5610ef76176974548736e6cd5f680f500df247bde2326f15ee07889613f3eec2883ab2c5d9045ca1fd360ba6d1179601b86ca826c3407"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_12(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "45ef1c9d4936edc87efd3d363032e65d70175e2c5e8994bb1df1413203dea326"),
		nonce:                 decodeHexString(c, "6e8d3baa8f0272fad8bd27ad402a00dd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b4c8881abfbfdd748319d25995b4ac9018d9d6224012e465f1159852d3562325"),
		additionalInputReseed: decodeHexString(c, "a9ed60d04fb5ff239f6be5c0558b6e7ac14c0fab2f3f80bc475acd3768d3f474"),
		additionalInput: [2][]byte{
			decodeHexString(c, "658158a4cbf5f097555cd3806e55e938660ad5962336bf8ae81b07df12f91718"),
			decodeHexString(c, "ad6d9d2618cf7c8ffb43e5c1674051e7b822785f5a8cd97d2288509ee8b3adf0"),
		},
		expected: decodeHexString(c, "7b8cd2b664349307e5c2df8ff8d9eb3925071dee4797781cf0720b00fc208434c0d626bf4e3a0fb18bd4cd4e3ad4bda60403d46c2825db79bce7d868c4c95dddb9789bc76bff05790f71e9a088dce1138b96c29d60dea039c5f27c8e09de74303e60cab8e20464f2121e75b35f65cb1f5f5fc2d4f55095aa100df5795d1717f4"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_13(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "7ee447e484d5b8589a333a0af3d0d369918be7df1623f8a6f51a3b6d37eb06d7"),
		nonce:                 decodeHexString(c, "7bd85bd02224ce54d755511359ea957d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "89876ee467ff30b4b4ed793cdb13a2e653770b7c979099d8ef88b3270abcf3e4"),
		additionalInputReseed: decodeHexString(c, "a8566c7134a3621f5cfd3985e05790220d00a1b14de03463d2bb56c625cb04b7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e1bfb749c0f84b51c8a97f9f33590edf8ec35d94e041491b3c561a62b99140f8"),
			decodeHexString(c, "4f7b06f4a11d33d538479fab9ebbd354ba713090dbfc4457aa0a3fe66c69eb07"),
		},
		expected: decodeHexString(c, "14fa6348a18c3cbf8739cccf940cc4adae01f34eb5c2edf320f92d304e848634290af62d59569e98882ff12fae714d370f6ad8396b4c8e3a94542361223d7aa04e322288f100c5cb8d2001123466faeaecc8401564c9fb03fc4f5cb25be1e0000f99d4119495d7024c4ed5f1d74f2ca57958d7b89044b11b782c2605cd97c0aa"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed109_SHA512_256_14(c *C) {
	s.testHMACGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "e0c79c338fff841b62c60dd53e6193261beccf0ccf88a13643e8773b5d1bb081"),
		nonce:                 decodeHexString(c, "e84d83374c0a021157cf7fc6e8f1822b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "895dc4d6460f99f6083e8b989d2ef0225d49c79045a04babf99659c44b692108"),
		additionalInputReseed: decodeHexString(c, "9b0abe8fe5f9ecdbc21de11b1cf93fe9c11b68f3422c308b5b5c96fb3a171cf1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7445c11ed9a91e2e3943cc34750cd56b15229b9309057c3acecbac46d7c993d8"),
			decodeHexString(c, "400cf4c693d49288fa40a367f77de08163a74a2cb7f30edeb1c872e5ef86e9c7"),
		},
		expected: decodeHexString(c, "238899c8e867bbe19af291fc93c6ef55dcfe301feb5a21543ab5210ce900ffb07055309b903e58588996ff0f8c6b78d8ecf53381f98c57b676409fe7726464c70954b1d44805ac6b99f2a49ad41569b0e336a6c61d2b77ee7de1186dd8e135d5b031185fe2ff05c6aae9a1c3dacda554c3b622ec6404a25fee0f49f796c10629"),
	})
}

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

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_0(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "eb314860cd71525c8a406511e899d4125a8041ce9dcbe3d496866982ac4f8090"),
		nonce:                 decodeHexString(c, "adf81bd208b66e8560d72f076dd4b8e3"),
		personalization:       decodeHexString(c, "683537ae09e0073c39e73be9defa838a6e767b908d84a14645913048ceb6eaf0"),
		entropyInputReseed:    decodeHexString(c, "80764cf816353078637ee46b0b657eb9eb67bb307a75fbf81c17ad1b9d2c27c4"),
		additionalInputReseed: decodeHexString(c, "a1bdabfcd7447bfc69d8038f3e19453b09b9a1771cd847aeb8a0debe9fe262d1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8e2fc1be2b64970bb822c5a0eb4c02563997de76a0c6a13ffbcc8e6cde2230fa"),
			decodeHexString(c, "a9a1a518d95bbac9329f373f8a65957df4d882fe793765db030b07122ff8d549"),
		},
		expected: decodeHexString(c, "c39f34a610c96d995c2ab7bdfafc511737e8cf031cb13af70ca1fb3413a74893f90ae22591c534ddd82da64c998d4fc6be2a4df5129890a00376d97308c418387ca481a35062479dd9a788be4565a1f4b4cdefac6045da934e69b3b7131c95f8d14352a65b68c9bd6c6f6f5cbfbbd7fc51d02d61da8bac9cc89c44e04978e511"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_1(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "a46e22d08557042e50a328b22d8fd4df20b1f92668c0775ed320744bd40e4ca4"),
		nonce:                 decodeHexString(c, "b2d7d09c18e090d8a45a3cfe99458ef9"),
		personalization:       decodeHexString(c, "700e421e07a19cd1eba8b459fe3720284215bdefe3dbaf642c52982502d452b1"),
		entropyInputReseed:    decodeHexString(c, "856d517cbc820e9a94ed2c85c4e04fdd15e15278f352a57622f0e490ddbec381"),
		additionalInputReseed: decodeHexString(c, "e7f0ac99e8fea7a63a0b02cf444867a94c116c1eb418c1dfba9f25533d2cd82d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "10144ebce6080bb00b5c66ec724d72be24be2f03ab082c825f0bf51a3e297bd4"),
			decodeHexString(c, "b1a2b0b01f921726fcb6de1dc1d59c4b988801c13dad38c242043ddcf22cd203"),
		},
		expected: decodeHexString(c, "f502d173ab1900d9f2255952a2c30e592046719bfce1544826a5c04fbbde35501a8c8dbd574167e056bfe881fafcffd3de69e8c07cff04121c62eb03b11a6d61af4aa50a11f2bd92629315a2890e0019006e8e6e986623ac4fc463fdee7efc85ff9f8fcf1033b727738f2c66ed1ce11035f93ca9625185745d94b603dd6a0d3f"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_2(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "028bd705c8bddebf0a217690b6934f118d2089abd05b3376d6e217a0f4d05378"),
		nonce:                 decodeHexString(c, "da87b445da022a03fdc9019f7d700651"),
		personalization:       decodeHexString(c, "f7447b32075d02b341d01853cad47e3eabeab3d737dd4566b8094a57931362a4"),
		entropyInputReseed:    decodeHexString(c, "3cdbced62c2a7bed2fc40a66714d00a2cae37566dd75f35e74a629062b2ff3ef"),
		additionalInputReseed: decodeHexString(c, "a3b14f1df7ee3315d01db26b16bbc44889dff2e3db1b0396d543c478b3e6495a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fba9c65ce9a233f13a4f4976aef6ef472c30195f9faa11be1040b82a44b767e2"),
			decodeHexString(c, "fe07ff895d548858190fb1207fee88812cdc48ca2f9974ef3ff1372c0a31c3dd"),
		},
		expected: decodeHexString(c, "37bfb61c8cb9dffe953eb390f8f1603cf8beaa5540f6580941bb313826a2d6211d6534befc46df0058b309db918db870463a9a570cad030da2928ec7bf416a52061724077ecd5d437e32ceb49ebeeecba8e6f0835b4d98bad293a8f3b4e1886f51bf6f04ea9341895683ae278a6a0b8710cb7c8ea538ff174448de830e6a0ab7"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_3(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "366a3007586e6b43fd2e8cf7ff1a88f087d81ecfa1500cba5e2cb0b1f54c9221"),
		nonce:                 decodeHexString(c, "cf86733ddb943d3c2f6ce1b094c3ea79"),
		personalization:       decodeHexString(c, "c1e7af6f2385416727df11f1835753c9427006439ec51ba8e3fc1276de159d79"),
		entropyInputReseed:    decodeHexString(c, "f3563c71ba1251a2b8c4c958eb52d8f556d0e4620adee65a2883c92543dc7d5a"),
		additionalInputReseed: decodeHexString(c, "8558fc9c272a6f9ef554644fee471ab8e39fe698e60ec2507209a3b2eac0ee75"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fed576f6aa1bae06a881cdeeadeff8012da0aff44afb64b13f1def171bcd18ab"),
			decodeHexString(c, "2805cb8e7713856857624fa18bcc796b37458ea770dcf93256f959cb4388daba"),
		},
		expected: decodeHexString(c, "3fd8c1cd51897c69ef5fe0cac6ef8d142eb66c2f7f99615ab6849377bc2b3935d28217e910291954892d4376e9518629b0c2d5878538f61d2520a65850ab9443433729457c63bd13793ef921d84967943b068868c14fa404f9b3c3455c4f97ac9a38ce8bcd8c0777fb4fe1db5ff8eaf763fa386aaee5341d6a6a20a536456f53"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_4(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "483243b6ed31eeb688596d176fb71a3c4fd862f08d39c269198d99bf4de03849"),
		nonce:                 decodeHexString(c, "26f5d213ffaa3cb52fa7b6a70f8c3a02"),
		personalization:       decodeHexString(c, "88c1d5f42efa9fc783a0ebcee5700806353220d132d870acda08f8f29afc2a29"),
		entropyInputReseed:    decodeHexString(c, "3edd37b2661ec11ecdbbcabd2d075411191c7a0537511bea9e4a7ed9de8d3d87"),
		additionalInputReseed: decodeHexString(c, "bc094f67a503aecde138114fad5e1c4968561a451a1577ad4306d67631c44609"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b234c653aba9afd951605165cab27bafac95cbbdf86996bf5bfcdf352039b6b3"),
			decodeHexString(c, "e3f2888b9673711c0f85664cde2123b4e52058c992d5d9205d27464ea63f6c4c"),
		},
		expected: decodeHexString(c, "05db4edcf6c91726b9857cd4d53de620640b95d793ea8af2ab2e386257e22cca98824eec860c9a3629a90315b7a1c6cbbc2ff025478af6dbd06460ac825f68c36fff8f54389c54fcd467b13d78a0058adb0635562c880bd9f0ec4ed2d4fcd8290102c2b5405938b692799bf0d0c51b58a471e07b68cef92b81215d3a8f714af6"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_5(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "4d3bd135a1e89ced37d09b4975bb1bb87ebe71ee4142b80a0b4b0c88e0a41538"),
		nonce:                 decodeHexString(c, "5907a7633d76d3b1096a5fba51d75e51"),
		personalization:       decodeHexString(c, "9a53252639a9d0ccc27a11f9cbfe53bb648f8ef838d9de520e0c536be9b063c5"),
		entropyInputReseed:    decodeHexString(c, "86080bad1d9bd1fc1d29f6096c5378e3c73c4eb6578657807b6d67a77dcb1288"),
		additionalInputReseed: decodeHexString(c, "5bfdf14686226b55b23d34bb328f6eb2abc4e683e73dad10a3b6fad9e03506bf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8c43d58ee3cecf933a1136300772dda697b266dcd5430d5122cb8e7b1aae87cf"),
			decodeHexString(c, "256a9e544a73be9d340df7b5df0679c48246f5486e2b76133962f68392029210"),
		},
		expected: decodeHexString(c, "149dc147d05f438351df0ecfcfe7a7c4df837216c5953ee32078f67afd186f7e9aab416c1f0bebd94eabb60cb5196cbaa1f289f9744923ac9ecff7d638e0e076497b4a38991c682ef8099cb1c1eac28e5178d837ec0cdaa1f72ae3acc2dd063fea28ff1d7ea3664c4d225e41a2b349e8a8c73d5146e613763b6fde9b818d99db"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_6(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "fc6f222b361d114558a99d0b120305799260b4961aade021816064443cf890a2"),
		nonce:                 decodeHexString(c, "1149480d0ffc976831ae666899750501"),
		personalization:       decodeHexString(c, "90e2debcca9d72eddce2a0566c3b2c2a66e65fbef3ff950a32e2e79b6e7a2eba"),
		entropyInputReseed:    decodeHexString(c, "ffa0dee15fd99714339d288c13031a0987452868291399eae61d16a2a21cf76c"),
		additionalInputReseed: decodeHexString(c, "cde99217ee45ac3ed389d34724f5725dd83407523c384d5f6ec1b929953d2bd7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "869e9fc34fd0e23fc57fecda661fd90184f7418b8599edb2b966c8584f8f8a39"),
			decodeHexString(c, "4f000b7bf31567b018fb8602b40a0eb7ded66810443f6992ba7953a220546ecf"),
		},
		expected: decodeHexString(c, "d953819e46255a002bbdbeef019022f629d9f8b5520bbcd6c23557584ba0f3bf3b0bfe3abbfe5187513483fff86e2c5c445856f5a4daa50e53dbb4c7a3d1409008f8420c780429314b5772ff98d2bd206ec61bfd5361e4cef78681ba87bd1199cbed5e59ae93c247acfb7ef7dc93177829db78d77e0c0cb69bada59203540cc5"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_7(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "e467e12ff28ff002ec0ede58845591d1a9a4613c77b692cb3d259445ba962d18"),
		nonce:                 decodeHexString(c, "e689addf868bd7fd984ca27381d8435a"),
		personalization:       decodeHexString(c, "4f3ff236ca4aeae6f60cd9aba71586432f7240bc3e03d529aeaa83084eaf3be8"),
		entropyInputReseed:    decodeHexString(c, "f9fd5d58b00421226230f2187f5acdcf1d907849e493e8a4aabf3cd8fec2bcac"),
		additionalInputReseed: decodeHexString(c, "86fc7f1c49c947bcfc51fea127fb9457be83bc08203dc5a4c4835d2a0a8cad15"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5df969c0235ddc39888e38aaf78a2a9efc2fa56bce2268ce8a788abae5c6e0b8"),
			decodeHexString(c, "1f81ac0b75faf20cce4539b1f1d841543f0e2bef633d9a59e38658e9eca4f56a"),
		},
		expected: decodeHexString(c, "5c43142c00448130eec1442a25fed2eebfe4d6fb50814f6c632118f115de78f6d90b9520dc7a089b8483869e1f045d1d4a3d66509cb30ea4e8077d525d5a2d5cdfb87e3ccb9f13789ab95bec3a98ee0eff0a519a0bda6e781d61db3bffa0128b90ea65ad72782b963ff33bcd31a426247f1a871c4921138f21fb5ca87a5bf2b0"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_8(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "0387a449d13511c606272fda1b57e81b7ffd62ef897094b44f64f92911be6600"),
		nonce:                 decodeHexString(c, "ee45655de3683f310e0e38e99002ba41"),
		personalization:       decodeHexString(c, "2e135ad4990f5affec6ce88cdbb300be166db6ff07e5f03572205b7356b8ff7a"),
		entropyInputReseed:    decodeHexString(c, "7d8b45ce064f5654da4d52f3c8a964d7b15a219f363a504a02dd9555c6f0c6f2"),
		additionalInputReseed: decodeHexString(c, "0ca1612cc5038c338c308d8670a5989b1015adfbd8e5c7eb9c3491b93d8da926"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1e732f2e0a61856a4e6c866a9ae13039164e96f0bf141eb843d1f04bf77bb678"),
			decodeHexString(c, "0b8c4cd49dbc28e66350ffd3f0986efe908492673705f86fee1b2bab33eb8367"),
		},
		expected: decodeHexString(c, "9c9375f28d165461c830c35037f628d3fdc4d4aca668366c483a52c3f16e2dd15cb59272eb0f0a03d2cbb891c3e685053ff599db36d7aa06a5a8de166a85a91fe7b25ef7b1f84a5c55271526e479615aced128cc7563495c8531d319645368525a66313ce05312945d77a865644ba666a8c4a53b92d4667bcb69b8cbbd10d194"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_9(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "72121d404705b3d936598dc106525a44489db013c14359f4c9e5642669c40349"),
		nonce:                 decodeHexString(c, "91d17e7e48ee590338762593901ec549"),
		personalization:       decodeHexString(c, "6de0ceaa89257a1a4035991499b6ea79b82882ca0d94759c6b60ce6eadfc5126"),
		entropyInputReseed:    decodeHexString(c, "a6113f309fc71924a99d15d81822fb0ca09632e72138594df3a152e6016009b6"),
		additionalInputReseed: decodeHexString(c, "6875eac096d0f6aa5ed659464f5bda6a958a08935994c05d42887cb62b651da4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8da2e614fca90e66a2c92af2be17c31fdec908329a53b1043e1adf05326c81f2"),
			decodeHexString(c, "92f4084caf783dca3b75ddfe1b34df76a69e3486f01e8b72400b0c4cf2463308"),
		},
		expected: decodeHexString(c, "8c60cffefbbabc6b8d82d8bb0d13bf800c15539a1f8debb8f679e29209f379d4d2e7c4a02331f7298ab31eeb3a34e4fa8e7baa7ba6378829b3ef7318eb7fc15636f6d8800d4a05b8ed8cb5b5c4af2b6ae5e27ea8b8e67343ca8c1e5337a60f0657601383d1020d243b6714450db2154be53d2894b2e69ed146845344bf0d4b3c"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_10(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "d6e60433d7c756232245cfe3e2e0be0d0c1c9b77024e5feb16de3504bdec2db3"),
		nonce:                 decodeHexString(c, "81d4e4b3b0b1d3b84d48a48a41a6ce5e"),
		personalization:       decodeHexString(c, "6f0d19d592710ef5035a69fb9501b37715c4f11821643ebacc94313ff14ea432"),
		entropyInputReseed:    decodeHexString(c, "815f2666833243ba70519d2b8d3a70fd22303fffb521b4433c9f61eab638c09a"),
		additionalInputReseed: decodeHexString(c, "411fec7b1e521fcae98e1550c0720b3fd8d8cfcb82fbabf55aefc40f6bca5363"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1852d6e8bb38f0af3fdd15d8670a20e2b2adbc6698ba2597e2644cbefa203d09"),
			decodeHexString(c, "3d947fd8939c4047ce4e4e39ada924f76f876c3da2a2570e1e51b88ab17e2c27"),
		},
		expected: decodeHexString(c, "285fbe6b5b7783c0b70af8b32b8588d4f62e3d66349296b337a90fad352a7ef3e7c6763f32a3aed0f7cfadab459149e2c7a4ca71f340a62469f87190a072dbaff7c5832221c4d0b2cfb3d204c4a8dab20d3eef2babe41e67731d05d694270c4744bd2669b2f8ef3a6f41102f81dae16bf46945e41054c8ec25110eeb87898bfc"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_11(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "0153108165847188b22312832b25399890a623d2c972edf5483ce807b89412d3"),
		nonce:                 decodeHexString(c, "ca4e4a887baf1104cd2f83a000622541"),
		personalization:       decodeHexString(c, "e760b06f23f8b06e1877c649aa5893e2286ad02bb81bb327d030727df72f85c4"),
		entropyInputReseed:    decodeHexString(c, "926bbf28350af501c9e817884cf65f30e629efcd42127313d2ca68128d99697f"),
		additionalInputReseed: decodeHexString(c, "7c6fb58c46543b83a516472522f1cd7fa6456ae61cbf680abe6e74723ccac1d2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a055aa364a3bf6a08a093a49691be4d7bf5371dbd3113e07cc1c3cc7b4d6ed7f"),
			decodeHexString(c, "414becc0a8ec0d0f8a1624309321a30e086a6d3c52c56182bc84bebb8346b4c4"),
		},
		expected: decodeHexString(c, "4e5212b7fbb67b5e8914992ec9a69ebee1de6fb595444d00cb65f9fea63aecd5db5cc90e589af926fb808ef556ff494fd56325d677fbc1637f11788ad3106f4c12dc92fbc518673bb094edbf0eb57695f0bc4c0dec85696c916ea32eca75d21623730362ad4e32b90426cf576fa503c92a007d9f736ab6678f5840eb63e93644"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_12(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "5cecfbc0c6555497b94f8e5e1a6f4c9f38c9c2004604e4b51a658336277d4e57"),
		nonce:                 decodeHexString(c, "7804baceb85c547ee75f1490d44a22b2"),
		personalization:       decodeHexString(c, "10e74d03cdd538efd475c7e05c69b651b7d9d5846bd19d23b2d959c2d09d7397"),
		entropyInputReseed:    decodeHexString(c, "22ab15f640222ea7113d15fa2d01c5da049bdce9e19ea0b827ac210fdc05bdf2"),
		additionalInputReseed: decodeHexString(c, "bb64606cbbc66cc6310899bfe261229059063ea1a5fe2fe46cfee917b26b8ff8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ecad2dd422774b939f126cf7fde831acf131f6d5a8d937502b74c98cd4625085"),
			decodeHexString(c, "ddfac330176aeeef9210876f8e3bb69640bcd498fe2e702fb11434d2fd11f56e"),
		},
		expected: decodeHexString(c, "595de1aa34cd099e58417e50796ab5e8a70b2964fe1a3b5f7eb9c63704b8e01edf9b547cbef276ffb1bda5ed6dc6b992a68916273fe53adb1cf9701ec6efae0faebdcd21055908c7c39598b42d206954b8661631d12ca2b8910d8d54adaedfea901edac51b8e1fb6f445ee5ad1410eeb60ea8a851436302ab24e3962a31e2606"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_13(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "0dd8aa7ddfbcf8134b551baf5fc95f0193bc12f0f8722ad067a372de49d93b45"),
		nonce:                 decodeHexString(c, "ae8967b271163f28e0a4d66e6a9d507f"),
		personalization:       decodeHexString(c, "ca6e6f74628143865e284bdd10eb506ccf1424a7c2e19a6c2b81b733694ae7ce"),
		entropyInputReseed:    decodeHexString(c, "a3f00fe2156960ffbc2fb02f2b2fc9f2832cb4f2f7e86bef7ef192cd0ec2e9f0"),
		additionalInputReseed: decodeHexString(c, "b198a4632358b438aab70d9fadff315fabb8ff32eb99df27c7b682ff258aa4e3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1f11a83064c1d4a825a320640710b62dba1c4f49ae1bdc5e741d1c8a3ba068b3"),
			decodeHexString(c, "386000cb49c3ea68f2c8a958a57d69dc067d0a32ebde92157b57bdca592b6399"),
		},
		expected: decodeHexString(c, "84ba6f4252a5a0b3b149f0f20f8641338eec948518c402c6adddb007f92b00dd280a578ea96d0fbfd12ceeb6a92a9860a86ded919950686bb6e112015b19d34c8961b624ddbb8bbe5db1b4bd94e6c5ba30665ec8f431e10acb07c957395fcab04576097e904f9f12d57a073c8dba366dcc025ae4739c83d217ede96e02841c61"),
	})
}

func (s *drbgSuite) TestHMACGenerateAfterReseed111_SHA512_256_14(c *C) {
	s.testHMACGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "038f2d21481de9f2286168c80db559b037a36a0591e3c246a5e3a55d0e392b35"),
		nonce:                 decodeHexString(c, "8695634db6fc1c67299fd5553b19c54d"),
		personalization:       decodeHexString(c, "0135287efe2f40a9cf2adc97a55820bbb9f9498bc512707c5ac9c721893757bf"),
		entropyInputReseed:    decodeHexString(c, "7d20f5dd7eba0d2dd1882fd2dd987280f3d9502a624dff55267d596d4ab021c9"),
		additionalInputReseed: decodeHexString(c, "7e788d4fbab892a667c152f2906c4bd7c4a6295f115bb6f65d8088fdffc8b5e5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b75e3058848160fd30e7d04a72ba5b376fadf266db666a95edaaab5652511eb9"),
			decodeHexString(c, "6973e05ceab5310b9121e1de199484df58fc4b26429ddf4465cde7f7d6ea3554"),
		},
		expected: decodeHexString(c, "13445b39ab893b319cb0c422508d3f4d03264016f9f691b91697b637c4ea251c71ec4ca35570d10724a3f919e042dce35f50fc10866f7c9df88ab37ea3bc25d286fae1557fd930ed747cdf246bc7a3b2d6c95d1f7717bbe422d710356af8ab7df7cd724d022fe5f8f2d84d6f2b270d70b16af14b3ccb4d52fd587c598f00951e"),
	})
}
