Commit 5165e5b112c4fb3a9258d5f6246cbbd44108c181

Authored by Jarod Wilson
Committed by Herbert Xu
1 parent c3e73e76a9

crypto: testmgr - add xts-aes-256 self-test

FIPS compliance requires a known-answer self-test for all approved
cipher and mode combinations, for all valid key sizes. Presently,
there are only self-tests for xts-aes-128. This adds a 256-bit one,
pulled from the same reference document, which should satisfy the
requirement.

Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Showing 1 changed file with 291 additions and 2 deletions Side-by-side Diff

... ... @@ -2976,8 +2976,8 @@
2976 2976 #define AES_CBC_DEC_TEST_VECTORS 4
2977 2977 #define AES_LRW_ENC_TEST_VECTORS 8
2978 2978 #define AES_LRW_DEC_TEST_VECTORS 8
2979   -#define AES_XTS_ENC_TEST_VECTORS 4
2980   -#define AES_XTS_DEC_TEST_VECTORS 4
  2979 +#define AES_XTS_ENC_TEST_VECTORS 5
  2980 +#define AES_XTS_DEC_TEST_VECTORS 5
2981 2981 #define AES_CTR_ENC_TEST_VECTORS 3
2982 2982 #define AES_CTR_DEC_TEST_VECTORS 3
2983 2983 #define AES_OFB_ENC_TEST_VECTORS 1
... ... @@ -3926,6 +3926,150 @@
3926 3926 "\x0a\x28\x2d\xf9\x20\x14\x7b\xea"
3927 3927 "\xbe\x42\x1e\xe5\x31\x9d\x05\x68",
3928 3928 .rlen = 512,
  3929 + }, { /* XTS-AES 10, XTS-AES-256, data unit 512 bytes */
  3930 + .key = "\x27\x18\x28\x18\x28\x45\x90\x45"
  3931 + "\x23\x53\x60\x28\x74\x71\x35\x26"
  3932 + "\x62\x49\x77\x57\x24\x70\x93\x69"
  3933 + "\x99\x59\x57\x49\x66\x96\x76\x27"
  3934 + "\x31\x41\x59\x26\x53\x58\x97\x93"
  3935 + "\x23\x84\x62\x64\x33\x83\x27\x95"
  3936 + "\x02\x88\x41\x97\x16\x93\x99\x37"
  3937 + "\x51\x05\x82\x09\x74\x94\x45\x92",
  3938 + .klen = 64,
  3939 + .iv = "\xff\x00\x00\x00\x00\x00\x00\x00"
  3940 + "\x00\x00\x00\x00\x00\x00\x00\x00",
  3941 + "\x00\x00\x00\x00\x00\x00\x00\x00",
  3942 + "\x00\x00\x00\x00\x00\x00\x00\x00",
  3943 + .input = "\x00\x01\x02\x03\x04\x05\x06\x07"
  3944 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
  3945 + "\x10\x11\x12\x13\x14\x15\x16\x17"
  3946 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
  3947 + "\x20\x21\x22\x23\x24\x25\x26\x27"
  3948 + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
  3949 + "\x30\x31\x32\x33\x34\x35\x36\x37"
  3950 + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
  3951 + "\x40\x41\x42\x43\x44\x45\x46\x47"
  3952 + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
  3953 + "\x50\x51\x52\x53\x54\x55\x56\x57"
  3954 + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
  3955 + "\x60\x61\x62\x63\x64\x65\x66\x67"
  3956 + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
  3957 + "\x70\x71\x72\x73\x74\x75\x76\x77"
  3958 + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
  3959 + "\x80\x81\x82\x83\x84\x85\x86\x87"
  3960 + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
  3961 + "\x90\x91\x92\x93\x94\x95\x96\x97"
  3962 + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
  3963 + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
  3964 + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
  3965 + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
  3966 + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
  3967 + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
  3968 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
  3969 + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
  3970 + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
  3971 + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
  3972 + "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
  3973 + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
  3974 + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"
  3975 + "\x00\x01\x02\x03\x04\x05\x06\x07"
  3976 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
  3977 + "\x10\x11\x12\x13\x14\x15\x16\x17"
  3978 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
  3979 + "\x20\x21\x22\x23\x24\x25\x26\x27"
  3980 + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
  3981 + "\x30\x31\x32\x33\x34\x35\x36\x37"
  3982 + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
  3983 + "\x40\x41\x42\x43\x44\x45\x46\x47"
  3984 + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
  3985 + "\x50\x51\x52\x53\x54\x55\x56\x57"
  3986 + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
  3987 + "\x60\x61\x62\x63\x64\x65\x66\x67"
  3988 + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
  3989 + "\x70\x71\x72\x73\x74\x75\x76\x77"
  3990 + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
  3991 + "\x80\x81\x82\x83\x84\x85\x86\x87"
  3992 + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
  3993 + "\x90\x91\x92\x93\x94\x95\x96\x97"
  3994 + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
  3995 + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
  3996 + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
  3997 + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
  3998 + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
  3999 + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
  4000 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
  4001 + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
  4002 + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
  4003 + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
  4004 + "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
  4005 + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
  4006 + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
  4007 + .ilen = 512,
  4008 + .result = "\x1c\x3b\x3a\x10\x2f\x77\x03\x86"
  4009 + "\xe4\x83\x6c\x99\xe3\x70\xcf\x9b"
  4010 + "\xea\x00\x80\x3f\x5e\x48\x23\x57"
  4011 + "\xa4\xae\x12\xd4\x14\xa3\xe6\x3b"
  4012 + "\x5d\x31\xe2\x76\xf8\xfe\x4a\x8d"
  4013 + "\x66\xb3\x17\xf9\xac\x68\x3f\x44"
  4014 + "\x68\x0a\x86\xac\x35\xad\xfc\x33"
  4015 + "\x45\xbe\xfe\xcb\x4b\xb1\x88\xfd"
  4016 + "\x57\x76\x92\x6c\x49\xa3\x09\x5e"
  4017 + "\xb1\x08\xfd\x10\x98\xba\xec\x70"
  4018 + "\xaa\xa6\x69\x99\xa7\x2a\x82\xf2"
  4019 + "\x7d\x84\x8b\x21\xd4\xa7\x41\xb0"
  4020 + "\xc5\xcd\x4d\x5f\xff\x9d\xac\x89"
  4021 + "\xae\xba\x12\x29\x61\xd0\x3a\x75"
  4022 + "\x71\x23\xe9\x87\x0f\x8a\xcf\x10"
  4023 + "\x00\x02\x08\x87\x89\x14\x29\xca"
  4024 + "\x2a\x3e\x7a\x7d\x7d\xf7\xb1\x03"
  4025 + "\x55\x16\x5c\x8b\x9a\x6d\x0a\x7d"
  4026 + "\xe8\xb0\x62\xc4\x50\x0d\xc4\xcd"
  4027 + "\x12\x0c\x0f\x74\x18\xda\xe3\xd0"
  4028 + "\xb5\x78\x1c\x34\x80\x3f\xa7\x54"
  4029 + "\x21\xc7\x90\xdf\xe1\xde\x18\x34"
  4030 + "\xf2\x80\xd7\x66\x7b\x32\x7f\x6c"
  4031 + "\x8c\xd7\x55\x7e\x12\xac\x3a\x0f"
  4032 + "\x93\xec\x05\xc5\x2e\x04\x93\xef"
  4033 + "\x31\xa1\x2d\x3d\x92\x60\xf7\x9a"
  4034 + "\x28\x9d\x6a\x37\x9b\xc7\x0c\x50"
  4035 + "\x84\x14\x73\xd1\xa8\xcc\x81\xec"
  4036 + "\x58\x3e\x96\x45\xe0\x7b\x8d\x96"
  4037 + "\x70\x65\x5b\xa5\xbb\xcf\xec\xc6"
  4038 + "\xdc\x39\x66\x38\x0a\xd8\xfe\xcb"
  4039 + "\x17\xb6\xba\x02\x46\x9a\x02\x0a"
  4040 + "\x84\xe1\x8e\x8f\x84\x25\x20\x70"
  4041 + "\xc1\x3e\x9f\x1f\x28\x9b\xe5\x4f"
  4042 + "\xbc\x48\x14\x57\x77\x8f\x61\x60"
  4043 + "\x15\xe1\x32\x7a\x02\xb1\x40\xf1"
  4044 + "\x50\x5e\xb3\x09\x32\x6d\x68\x37"
  4045 + "\x8f\x83\x74\x59\x5c\x84\x9d\x84"
  4046 + "\xf4\xc3\x33\xec\x44\x23\x88\x51"
  4047 + "\x43\xcb\x47\xbd\x71\xc5\xed\xae"
  4048 + "\x9b\xe6\x9a\x2f\xfe\xce\xb1\xbe"
  4049 + "\xc9\xde\x24\x4f\xbe\x15\x99\x2b"
  4050 + "\x11\xb7\x7c\x04\x0f\x12\xbd\x8f"
  4051 + "\x6a\x97\x5a\x44\xa0\xf9\x0c\x29"
  4052 + "\xa9\xab\xc3\xd4\xd8\x93\x92\x72"
  4053 + "\x84\xc5\x87\x54\xcc\xe2\x94\x52"
  4054 + "\x9f\x86\x14\xdc\xd2\xab\xa9\x91"
  4055 + "\x92\x5f\xed\xc4\xae\x74\xff\xac"
  4056 + "\x6e\x33\x3b\x93\xeb\x4a\xff\x04"
  4057 + "\x79\xda\x9a\x41\x0e\x44\x50\xe0"
  4058 + "\xdd\x7a\xe4\xc6\xe2\x91\x09\x00"
  4059 + "\x57\x5d\xa4\x01\xfc\x07\x05\x9f"
  4060 + "\x64\x5e\x8b\x7e\x9b\xfd\xef\x33"
  4061 + "\x94\x30\x54\xff\x84\x01\x14\x93"
  4062 + "\xc2\x7b\x34\x29\xea\xed\xb4\xed"
  4063 + "\x53\x76\x44\x1a\x77\xed\x43\x85"
  4064 + "\x1a\xd7\x7f\x16\xf5\x41\xdf\xd2"
  4065 + "\x69\xd5\x0d\x6a\x5f\x14\xfb\x0a"
  4066 + "\xab\x1c\xbb\x4c\x15\x50\xbe\x97"
  4067 + "\xf7\xab\x40\x66\x19\x3c\x4c\xaa"
  4068 + "\x77\x3d\xad\x38\x01\x4b\xd2\x09"
  4069 + "\x2f\xa7\x55\xc8\x24\xbb\x5e\x54"
  4070 + "\xc4\xf3\x6f\xfd\xa9\xfc\xea\x70"
  4071 + "\xb9\xc6\xe6\x93\xe1\x48\xc1\x51",
  4072 + .rlen = 512,
3929 4073 }
3930 4074 };
3931 4075  
... ... @@ -4123,6 +4267,151 @@
4123 4267 "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
4124 4268 "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
4125 4269 .rlen = 512,
  4270 + }, { /* XTS-AES 10, XTS-AES-256, data unit 512 bytes */
  4271 + .key = "\x27\x18\x28\x18\x28\x45\x90\x45"
  4272 + "\x23\x53\x60\x28\x74\x71\x35\x26"
  4273 + "\x62\x49\x77\x57\x24\x70\x93\x69"
  4274 + "\x99\x59\x57\x49\x66\x96\x76\x27"
  4275 + "\x31\x41\x59\x26\x53\x58\x97\x93"
  4276 + "\x23\x84\x62\x64\x33\x83\x27\x95"
  4277 + "\x02\x88\x41\x97\x16\x93\x99\x37"
  4278 + "\x51\x05\x82\x09\x74\x94\x45\x92",
  4279 + .klen = 64,
  4280 + .iv = "\xff\x00\x00\x00\x00\x00\x00\x00"
  4281 + "\x00\x00\x00\x00\x00\x00\x00\x00",
  4282 + "\x00\x00\x00\x00\x00\x00\x00\x00",
  4283 + "\x00\x00\x00\x00\x00\x00\x00\x00",
  4284 + .input = "\x1c\x3b\x3a\x10\x2f\x77\x03\x86"
  4285 + "\xe4\x83\x6c\x99\xe3\x70\xcf\x9b"
  4286 + "\xea\x00\x80\x3f\x5e\x48\x23\x57"
  4287 + "\xa4\xae\x12\xd4\x14\xa3\xe6\x3b"
  4288 + "\x5d\x31\xe2\x76\xf8\xfe\x4a\x8d"
  4289 + "\x66\xb3\x17\xf9\xac\x68\x3f\x44"
  4290 + "\x68\x0a\x86\xac\x35\xad\xfc\x33"
  4291 + "\x45\xbe\xfe\xcb\x4b\xb1\x88\xfd"
  4292 + "\x57\x76\x92\x6c\x49\xa3\x09\x5e"
  4293 + "\xb1\x08\xfd\x10\x98\xba\xec\x70"
  4294 + "\xaa\xa6\x69\x99\xa7\x2a\x82\xf2"
  4295 + "\x7d\x84\x8b\x21\xd4\xa7\x41\xb0"
  4296 + "\xc5\xcd\x4d\x5f\xff\x9d\xac\x89"
  4297 + "\xae\xba\x12\x29\x61\xd0\x3a\x75"
  4298 + "\x71\x23\xe9\x87\x0f\x8a\xcf\x10"
  4299 + "\x00\x02\x08\x87\x89\x14\x29\xca"
  4300 + "\x2a\x3e\x7a\x7d\x7d\xf7\xb1\x03"
  4301 + "\x55\x16\x5c\x8b\x9a\x6d\x0a\x7d"
  4302 + "\xe8\xb0\x62\xc4\x50\x0d\xc4\xcd"
  4303 + "\x12\x0c\x0f\x74\x18\xda\xe3\xd0"
  4304 + "\xb5\x78\x1c\x34\x80\x3f\xa7\x54"
  4305 + "\x21\xc7\x90\xdf\xe1\xde\x18\x34"
  4306 + "\xf2\x80\xd7\x66\x7b\x32\x7f\x6c"
  4307 + "\x8c\xd7\x55\x7e\x12\xac\x3a\x0f"
  4308 + "\x93\xec\x05\xc5\x2e\x04\x93\xef"
  4309 + "\x31\xa1\x2d\x3d\x92\x60\xf7\x9a"
  4310 + "\x28\x9d\x6a\x37\x9b\xc7\x0c\x50"
  4311 + "\x84\x14\x73\xd1\xa8\xcc\x81\xec"
  4312 + "\x58\x3e\x96\x45\xe0\x7b\x8d\x96"
  4313 + "\x70\x65\x5b\xa5\xbb\xcf\xec\xc6"
  4314 + "\xdc\x39\x66\x38\x0a\xd8\xfe\xcb"
  4315 + "\x17\xb6\xba\x02\x46\x9a\x02\x0a"
  4316 + "\x84\xe1\x8e\x8f\x84\x25\x20\x70"
  4317 + "\xc1\x3e\x9f\x1f\x28\x9b\xe5\x4f"
  4318 + "\xbc\x48\x14\x57\x77\x8f\x61\x60"
  4319 + "\x15\xe1\x32\x7a\x02\xb1\x40\xf1"
  4320 + "\x50\x5e\xb3\x09\x32\x6d\x68\x37"
  4321 + "\x8f\x83\x74\x59\x5c\x84\x9d\x84"
  4322 + "\xf4\xc3\x33\xec\x44\x23\x88\x51"
  4323 + "\x43\xcb\x47\xbd\x71\xc5\xed\xae"
  4324 + "\x9b\xe6\x9a\x2f\xfe\xce\xb1\xbe"
  4325 + "\xc9\xde\x24\x4f\xbe\x15\x99\x2b"
  4326 + "\x11\xb7\x7c\x04\x0f\x12\xbd\x8f"
  4327 + "\x6a\x97\x5a\x44\xa0\xf9\x0c\x29"
  4328 + "\xa9\xab\xc3\xd4\xd8\x93\x92\x72"
  4329 + "\x84\xc5\x87\x54\xcc\xe2\x94\x52"
  4330 + "\x9f\x86\x14\xdc\xd2\xab\xa9\x91"
  4331 + "\x92\x5f\xed\xc4\xae\x74\xff\xac"
  4332 + "\x6e\x33\x3b\x93\xeb\x4a\xff\x04"
  4333 + "\x79\xda\x9a\x41\x0e\x44\x50\xe0"
  4334 + "\xdd\x7a\xe4\xc6\xe2\x91\x09\x00"
  4335 + "\x57\x5d\xa4\x01\xfc\x07\x05\x9f"
  4336 + "\x64\x5e\x8b\x7e\x9b\xfd\xef\x33"
  4337 + "\x94\x30\x54\xff\x84\x01\x14\x93"
  4338 + "\xc2\x7b\x34\x29\xea\xed\xb4\xed"
  4339 + "\x53\x76\x44\x1a\x77\xed\x43\x85"
  4340 + "\x1a\xd7\x7f\x16\xf5\x41\xdf\xd2"
  4341 + "\x69\xd5\x0d\x6a\x5f\x14\xfb\x0a"
  4342 + "\xab\x1c\xbb\x4c\x15\x50\xbe\x97"
  4343 + "\xf7\xab\x40\x66\x19\x3c\x4c\xaa"
  4344 + "\x77\x3d\xad\x38\x01\x4b\xd2\x09"
  4345 + "\x2f\xa7\x55\xc8\x24\xbb\x5e\x54"
  4346 + "\xc4\xf3\x6f\xfd\xa9\xfc\xea\x70"
  4347 + "\xb9\xc6\xe6\x93\xe1\x48\xc1\x51",
  4348 + .ilen = 512,
  4349 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07"
  4350 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
  4351 + "\x10\x11\x12\x13\x14\x15\x16\x17"
  4352 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
  4353 + "\x20\x21\x22\x23\x24\x25\x26\x27"
  4354 + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
  4355 + "\x30\x31\x32\x33\x34\x35\x36\x37"
  4356 + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
  4357 + "\x40\x41\x42\x43\x44\x45\x46\x47"
  4358 + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
  4359 + "\x50\x51\x52\x53\x54\x55\x56\x57"
  4360 + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
  4361 + "\x60\x61\x62\x63\x64\x65\x66\x67"
  4362 + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
  4363 + "\x70\x71\x72\x73\x74\x75\x76\x77"
  4364 + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
  4365 + "\x80\x81\x82\x83\x84\x85\x86\x87"
  4366 + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
  4367 + "\x90\x91\x92\x93\x94\x95\x96\x97"
  4368 + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
  4369 + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
  4370 + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
  4371 + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
  4372 + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
  4373 + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
  4374 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
  4375 + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
  4376 + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
  4377 + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
  4378 + "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
  4379 + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
  4380 + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"
  4381 + "\x00\x01\x02\x03\x04\x05\x06\x07"
  4382 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
  4383 + "\x10\x11\x12\x13\x14\x15\x16\x17"
  4384 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
  4385 + "\x20\x21\x22\x23\x24\x25\x26\x27"
  4386 + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
  4387 + "\x30\x31\x32\x33\x34\x35\x36\x37"
  4388 + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
  4389 + "\x40\x41\x42\x43\x44\x45\x46\x47"
  4390 + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
  4391 + "\x50\x51\x52\x53\x54\x55\x56\x57"
  4392 + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
  4393 + "\x60\x61\x62\x63\x64\x65\x66\x67"
  4394 + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
  4395 + "\x70\x71\x72\x73\x74\x75\x76\x77"
  4396 + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
  4397 + "\x80\x81\x82\x83\x84\x85\x86\x87"
  4398 + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
  4399 + "\x90\x91\x92\x93\x94\x95\x96\x97"
  4400 + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
  4401 + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
  4402 + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
  4403 + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
  4404 + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
  4405 + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
  4406 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
  4407 + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
  4408 + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
  4409 + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
  4410 + "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
  4411 + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
  4412 + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
  4413 + .rlen = 512,
  4414 +
4126 4415 }
4127 4416 };
4128 4417