| # Based on NIST gcmEncryptIntIVxxx.rsp validation files |
| # Only first 3 of every set used for compile time saving |
| open(TEST_DATA, "$file") or die "Opening test cases '$file': $!"; |
| while(my $line = <TEST_DATA>) |
| next if ($line !~ /^\[/); |
| ($val) = ($line =~ /\[$name\s\=\s(\w+)\]/); |
| while($line = <TEST_DATA>) |
| ($val) = ($line =~ /^$name = (\w+)/); |
| while (my $line = <TEST_DATA>) |
| my $key_len = get_suite_val("Keylen"); |
| next if ($key_len !~ /\d+/); |
| my $iv_len = get_suite_val("IVlen"); |
| my $pt_len = get_suite_val("PTlen"); |
| my $add_len = get_suite_val("AADlen"); |
| my $tag_len = get_suite_val("Taglen"); |
| for ($cnt = 0; $cnt < 3; $cnt++) |
| my $Count = get_val("Count"); |
| my $key = get_val("Key"); |
| my $add = get_val("AAD"); |
| my $tag = get_val("Tag"); |
| print("GCM NIST Validation (AES-$key_len,$iv_len,$pt_len,$add_len,$tag_len) #$Count\n"); |
| print("gcm_encrypt_and_tag"); |
| print("gcm_selftest:\n\n"); |