# KeyShareClientHello (variant of KeyShare extension) consists of:
#     - Client Key Share Length (2 bytes)
#     - vector of KeyShareEntry:
#           - Group (2 bytes)
#           - Key Exchange Length (2 bytes)
#           - Key Exchange (vector of bytes[Key Exchange Length])
#
# Groups               - The list of groups to be supported
# Offered_Groups (opt) - The list of groups to be offered in key exchange
# Rng_Data             - Pool of random number generator output (for key generation)
# Expected_Content     - The expected serialized output of the Key_Share extension
#
# Note: secp256r1 should always come last! If it finds an RNG that is still seeded after key generation,
#       it will opportunistically pull additional data for some blinding mechanism. That would otherwise
#       screw up the test case.

[key_share_CH_offers]

# INDIVIDUAL GROUPS (supported and offered)

Groups           = x25519
Rng_Data         = 49af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea5005
Expected_Content = 0024001d002099381de560e4bd43d23d8e435a7dbafeb3c06e51c13cae4d5413691e529aaf2c

Groups           = secp256r1
Rng_Data         = 49af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea5005
Expected_Content = 0045001700410486E8631CECD233F133F6FC99156D8BB504DB91DEC753C31AEA8AEC3C874221653C986F7B1D00FD4EBFD3F48BCC2CDE3E9C94442B4F53BF2F906B3ECEE6EA12F0

Groups           = ffdhe/ietf/2048
Rng_Data         = 49af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea5005
Expected_Content = 010401000100534C002FD3A1C9B25B664DC8CCAEB34857CABDA5BDF1EB5B99EEB8FF689EC6761746B54AA35B3AEECDA7708E0C4B046EBE6E275B5C4E1C02351DA5F432AEEF93DF3E3727CEE4868041A1CF5E35DF73750AA62D9B91F4785A2F7DC4D5304BFFB339B1193BDE6D0EE6F7698BD4C2871192A209ED34594B2A46925F064FA25CC56B858A05C205171DD7C7119FB8D27AAEC0CFE301F2E7F3AC7B4EDA614164F05E5AF88DAE6F07DA0455EFF704A83E496E86625CBADBA8DA9AC22EE9337AC891AC2F9F46A73BB3CDFF21DC9C2F3B120ED792E9C12BFC08E27854FD5F657B8E9EFC65549F82FF5F64C718A6829026F1D027F24F7296BD22038230EBB2F629B6885267

# this test data has four \0 bytes at the start of the 'public value'
# RFC 8446 Ch. 4.2.8.1:
#   ... encoded as a big-endian integer and padded to
#   the left with zeros to the size of p in bytes
Groups           = ffdhe/ietf/2048
Rng_Data         = 317FEC44E299183D1A17F3F699E036620852EE1FA2C3B3E549900779B9CDC204
Expected_Content = 010401000100000046016B7B5EB1A64DE87235279C07D3C47686454A9D6089D460FB6C0DD2F3DB7D2EF252A00DD6F1D432B4BB63FD757C2A9DBBE6C497C78A7C765C3F49B711D9E1A58199AB5DE61C963AA522DB8313DD39115BCF207485EADB816CCC08070CB8B200C25D8ECC0BD36ADBE0AAF278A0CCFE48A9BA7098B53AF2C3EC55147CE7114FAF1084A21743A3DB29E05B5874CAE917D7E5449478A37066B0D2A9F00E29777962CC7C3C3CE15F8C3DB118F69628FF71565E242B476407F55DD0B0DD9003134992E24ED52B45DEC5C4AD98300B4C0767A78C4612C1B3D1430060E56280942FA77407B282CC21349030DFD654EAFB76B0B63FAAA1814D0C20248AE13B0D1E

# OFFER LESS GROUPS THAN SUPPORTED

Groups           = secp256r1 x25519
Offered_Groups   = secp256r1
Rng_Data         = 49af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea5005
Expected_Content = 0045001700410486E8631CECD233F133F6FC99156D8BB504DB91DEC753C31AEA8AEC3C874221653C986F7B1D00FD4EBFD3F48BCC2CDE3E9C94442B4F53BF2F906B3ECEE6EA12F0

Groups           = secp256r1 x25519
Offered_Groups   = x25519
Rng_Data         = 49af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea5005
Expected_Content = 0024001d002099381de560e4bd43d23d8e435a7dbafeb3c06e51c13cae4d5413691e529aaf2c

# OFFER MULTIPLE GROUPS (implicitly supported)

Groups           = x25519 secp256r1
Rng_Data         = 49af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea500549af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea5005
Expected_Content = 0069001d002099381de560e4bd43d23d8e435a7dbafeb3c06e51c13cae4d5413691e529aaf2c001700410486E8631CECD233F133F6FC99156D8BB504DB91DEC753C31AEA8AEC3C874221653C986F7B1D00FD4EBFD3F48BCC2CDE3E9C94442B4F53BF2F906B3ECEE6EA12F0

Groups           = x25519 ffdhe/ietf/2048 secp256r1
Rng_Data         = 49af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea500549af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea500549af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea5005
Expected_Content = 016d001d002099381de560e4bd43d23d8e435a7dbafeb3c06e51c13cae4d5413691e529aaf2c01000100534C002FD3A1C9B25B664DC8CCAEB34857CABDA5BDF1EB5B99EEB8FF689EC6761746B54AA35B3AEECDA7708E0C4B046EBE6E275B5C4E1C02351DA5F432AEEF93DF3E3727CEE4868041A1CF5E35DF73750AA62D9B91F4785A2F7DC4D5304BFFB339B1193BDE6D0EE6F7698BD4C2871192A209ED34594B2A46925F064FA25CC56B858A05C205171DD7C7119FB8D27AAEC0CFE301F2E7F3AC7B4EDA614164F05E5AF88DAE6F07DA0455EFF704A83E496E86625CBADBA8DA9AC22EE9337AC891AC2F9F46A73BB3CDFF21DC9C2F3B120ED792E9C12BFC08E27854FD5F657B8E9EFC65549F82FF5F64C718A6829026F1D027F24F7296BD22038230EBB2F629B6885267001700410486E8631CECD233F133F6FC99156D8BB504DB91DEC753C31AEA8AEC3C874221653C986F7B1D00FD4EBFD3F48BCC2CDE3E9C94442B4F53BF2F906B3ECEE6EA12F0

Groups           = x25519 ffdhe/ietf/2048 secp256r1
Offered_Groups   = x25519 secp256r1 ffdhe/ietf/2048
Rng_Data         = 49af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea500549af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea500549af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea5005
Expected_Content = 016d001d002099381de560e4bd43d23d8e435a7dbafeb3c06e51c13cae4d5413691e529aaf2c01000100534C002FD3A1C9B25B664DC8CCAEB34857CABDA5BDF1EB5B99EEB8FF689EC6761746B54AA35B3AEECDA7708E0C4B046EBE6E275B5C4E1C02351DA5F432AEEF93DF3E3727CEE4868041A1CF5E35DF73750AA62D9B91F4785A2F7DC4D5304BFFB339B1193BDE6D0EE6F7698BD4C2871192A209ED34594B2A46925F064FA25CC56B858A05C205171DD7C7119FB8D27AAEC0CFE301F2E7F3AC7B4EDA614164F05E5AF88DAE6F07DA0455EFF704A83E496E86625CBADBA8DA9AC22EE9337AC891AC2F9F46A73BB3CDFF21DC9C2F3B120ED792E9C12BFC08E27854FD5F657B8E9EFC65549F82FF5F64C718A6829026F1D027F24F7296BD22038230EBB2F629B6885267001700410486E8631CECD233F133F6FC99156D8BB504DB91DEC753C31AEA8AEC3C874221653C986F7B1D00FD4EBFD3F48BCC2CDE3E9C94442B4F53BF2F906B3ECEE6EA12F0

# OFFER GROUPS THAT ARE NOT SUPPORTED
# expected: unsupported groups are silently ignored 

Groups           = secp256r1 x25519
Offered_Groups   = x25519 secp384r1
Rng_Data         = 49af42ba7f7994852d713ef2784bcbcaa7911de26adc5642cb634540e7ea5005
Expected_Content = 0024001d002099381de560e4bd43d23d8e435a7dbafeb3c06e51c13cae4d5413691e529aaf2c

# MAKE NO OFFERS

Groups           = x25519 secp256r1
Offered_Groups   = none
Rng_Data         = 
Expected_Content = 0000
