![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/local/lib/node_modules/mediasoup/worker/deps/openssl/openssl/util/ |
Upload File : |
#! /usr/bin/env perl # Copyright 2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy # in the file LICENSE in the source distribution or at # https://www.openssl.org/source/license.html #Convert CCM CAVS test vectors to a format suitable for evp_test use strict; use warnings; my $alg; my $mode; my $keylen; my $key = ""; my $iv = ""; my $aad = ""; my $ct = ""; my $pt = ""; my $tag = ""; my $aadlen = 0; my $ptlen = 0; my $taglen = 0; my $res = ""; my $intest = 0; my $fixediv = 0; while (<STDIN>) { chomp; # Pull out the cipher mode from the comment at the beginning of the file if(/^#\s*"([^-]+)-\w+" information/) { $mode = lc($1); # Pull out the key length from the comment at the beginning of the file } elsif(/^#\s*(\w+) Keylen: (\d+)/) { $alg = lc($1); $keylen = $2; # Some parameters common to many tests appear as a list in square brackets # so parse these } elsif(/\[(.*)\]/) { my @pairs = split(/, /, $1); foreach my $pair (@pairs) { $pair =~ /(\w+)\s*=\s*(\d+)/; # AAD Length if ($1 eq "Alen") { $aadlen = $2; # Plaintext length } elsif ($1 eq "Plen") { $ptlen = $2; # Tag length } elsif ($1 eq "Tlen") { $taglen = $2; } } # Key/Value pair } elsif (/^\s*(\w+)\s*=\s*(\S.*)\r/) { if ($1 eq "Key") { $key = $2; } elsif ($1 eq "Nonce") { $iv = $2; if ($intest == 0) { $fixediv = 1; } else { $fixediv = 0; } } elsif ($1 eq "Adata") { $aad = $2; } elsif ($1 eq "CT") { $ct = substr($2, 0, length($2) - ($taglen * 2)); $tag = substr($2, $taglen * -2); } elsif ($1 eq "Payload") { $pt = $2; } elsif ($1 eq "Result") { if ($2 =~ /Fail/) { $res = "CIPHERUPDATE_ERROR"; } } elsif ($1 eq "Count") { $intest = 1; } elsif ($1 eq "Plen") { $ptlen = $2; } elsif ($1 eq "Tlen") { $taglen = $2; } elsif ($1 eq "Alen") { $aadlen = $2; } # Something else - probably just a blank line } elsif ($intest) { print "Cipher = $alg-$keylen-$mode\n"; print "Key = $key\n"; print "IV = $iv\n"; print "AAD ="; if ($aadlen > 0) { print " $aad"; } print "\nTag ="; if ($taglen > 0) { print " $tag"; } print "\nPlaintext ="; if ($ptlen > 0) { print " $pt"; } print "\nCiphertext = $ct\n"; if ($res ne "") { print "Operation = DECRYPT\n"; print "Result = $res\n"; } print "\n"; $res = ""; if ($fixediv == 0) { $iv = ""; } $aad = ""; $tag = ""; $pt = ""; $intest = 0; } }