003 File Manager
Current Path:
/usr/src/crypto/openssl/apps
usr
/
src
/
crypto
/
openssl
/
apps
/
📁
..
📄
CA.pl.in
(7.4 KB)
📄
app_rand.c
(2.18 KB)
📄
apps.c
(72.85 KB)
📄
apps.h
(24.69 KB)
📄
asn1pars.c
(10.31 KB)
📄
bf_prefix.c
(4.77 KB)
📄
build.info
(2.32 KB)
📄
ca-cert.srl
(3 B)
📄
ca-key.pem
(916 B)
📄
ca-req.pem
(635 B)
📄
ca.c
(83.78 KB)
📄
cert.pem
(623 B)
📄
ciphers.c
(7.19 KB)
📄
client.pem
(3.21 KB)
📄
cms.c
(44.05 KB)
📄
crl.c
(10.79 KB)
📄
crl2p7.c
(6.18 KB)
📄
ct_log_list.cnf
(412 B)
📄
dgst.c
(18.17 KB)
📄
dh1024.pem
(446 B)
📄
dh2048.pem
(662 B)
📄
dh4096.pem
(1007 B)
📄
dhparam.c
(11.15 KB)
📄
dsa-ca.pem
(2.66 KB)
📄
dsa-pca.pem
(2.67 KB)
📄
dsa.c
(7.53 KB)
📄
dsa1024.pem
(455 B)
📄
dsa512.pem
(280 B)
📄
dsap.pem
(276 B)
📄
dsaparam.c
(7.8 KB)
📄
ec.c
(8.13 KB)
📄
ecparam.c
(14.65 KB)
📄
enc.c
(20.74 KB)
📄
engine.c
(15.56 KB)
📄
errstr.c
(1.83 KB)
📄
gendsa.c
(3.92 KB)
📄
genpkey.c
(8.64 KB)
📄
genrsa.c
(5.36 KB)
📄
nseq.c
(3 KB)
📄
ocsp.c
(49.51 KB)
📄
openssl.c
(21.23 KB)
📄
openssl.cnf
(10.67 KB)
📄
opt.c
(23.61 KB)
📄
passwd.c
(26.43 KB)
📄
pca-cert.srl
(3 B)
📄
pca-key.pem
(916 B)
📄
pca-req.pem
(635 B)
📄
pkcs12.c
(30.81 KB)
📄
pkcs7.c
(5.38 KB)
📄
pkcs8.c
(11.26 KB)
📄
pkey.c
(7.24 KB)
📄
pkeyparam.c
(3.66 KB)
📄
pkeyutl.c
(15.58 KB)
📄
prime.c
(3.56 KB)
📄
privkey.pem
(916 B)
📄
progs.h
(16.05 KB)
📄
progs.pl
(5.43 KB)
📄
rand.c
(3.35 KB)
📄
rehash.c
(15.3 KB)
📄
req.c
(51.46 KB)
📄
req.pem
(627 B)
📄
rsa.c
(9.3 KB)
📄
rsa8192.pem
(6.21 KB)
📄
rsautl.c
(7.81 KB)
📄
s1024key.pem
(891 B)
📄
s1024req.pem
(643 B)
📄
s512-key.pem
(497 B)
📄
s512-req.pem
(460 B)
📄
s_apps.h
(3.3 KB)
📄
s_cb.c
(47.04 KB)
📄
s_client.c
(115.39 KB)
📄
s_server.c
(116.36 KB)
📄
s_socket.c
(13.43 KB)
📄
s_time.c
(11.92 KB)
📄
server.pem
(2.79 KB)
📄
server.srl
(3 B)
📄
server2.pem
(3.21 KB)
📄
sess_id.c
(5.4 KB)
📄
smime.c
(20.95 KB)
📄
speed.c
(120.17 KB)
📄
spkac.c
(5.73 KB)
📄
srp.c
(20.09 KB)
📄
storeutl.c
(16.13 KB)
📄
testCA.pem
(432 B)
📄
testdsa.h
(11.77 KB)
📄
testrsa.h
(121.12 KB)
📄
timeouts.h
(560 B)
📄
ts.c
(30.19 KB)
📄
tsget.in
(6.45 KB)
📄
verify.c
(10.52 KB)
📄
version.c
(5.07 KB)
📄
x509.c
(39.25 KB)
Editing: tsget.in
#!{- $config{HASHBANGPERL} -} # Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. # Copyright (c) 2002 The OpenTSA Project. All rights reserved. # # Licensed under the OpenSSL license (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 use strict; use IO::Handle; use Getopt::Std; use File::Basename; use WWW::Curl::Easy; use vars qw(%options); # Callback for reading the body. sub read_body { my ($maxlength, $state) = @_; my $return_data = ""; my $data_len = length ${$state->{data}}; if ($state->{bytes} < $data_len) { $data_len = $data_len - $state->{bytes}; $data_len = $maxlength if $data_len > $maxlength; $return_data = substr ${$state->{data}}, $state->{bytes}, $data_len; $state->{bytes} += $data_len; } return $return_data; } # Callback for writing the body into a variable. sub write_body { my ($data, $pointer) = @_; ${$pointer} .= $data; return length($data); } # Initialise a new Curl object. sub create_curl { my $url = shift; # Create Curl object. my $curl = WWW::Curl::Easy::new(); # Error-handling related options. $curl->setopt(CURLOPT_VERBOSE, 1) if $options{d}; $curl->setopt(CURLOPT_FAILONERROR, 1); $curl->setopt(CURLOPT_USERAGENT, "OpenTSA tsget.pl/openssl-{- $config{version} -}"); # Options for POST method. $curl->setopt(CURLOPT_UPLOAD, 1); $curl->setopt(CURLOPT_CUSTOMREQUEST, "POST"); $curl->setopt(CURLOPT_HTTPHEADER, ["Content-Type: application/timestamp-query", "Accept: application/timestamp-reply,application/timestamp-response"]); $curl->setopt(CURLOPT_READFUNCTION, \&read_body); $curl->setopt(CURLOPT_HEADERFUNCTION, sub { return length($_[0]); }); # Options for getting the result. $curl->setopt(CURLOPT_WRITEFUNCTION, \&write_body); # SSL related options. $curl->setopt(CURLOPT_SSLKEYTYPE, "PEM"); $curl->setopt(CURLOPT_SSL_VERIFYPEER, 1); # Verify server's certificate. $curl->setopt(CURLOPT_SSL_VERIFYHOST, 2); # Check server's CN. $curl->setopt(CURLOPT_SSLKEY, $options{k}) if defined($options{k}); $curl->setopt(CURLOPT_SSLKEYPASSWD, $options{p}) if defined($options{p}); $curl->setopt(CURLOPT_SSLCERT, $options{c}) if defined($options{c}); $curl->setopt(CURLOPT_CAINFO, $options{C}) if defined($options{C}); $curl->setopt(CURLOPT_CAPATH, $options{P}) if defined($options{P}); $curl->setopt(CURLOPT_RANDOM_FILE, $options{r}) if defined($options{r}); $curl->setopt(CURLOPT_EGDSOCKET, $options{g}) if defined($options{g}); # Setting destination. $curl->setopt(CURLOPT_URL, $url); return $curl; } # Send a request and returns the body back. sub get_timestamp { my $curl = shift; my $body = shift; my $ts_body; local $::error_buf; # Error-handling related options. $curl->setopt(CURLOPT_ERRORBUFFER, "::error_buf"); # Options for POST method. $curl->setopt(CURLOPT_INFILE, {data => $body, bytes => 0}); $curl->setopt(CURLOPT_INFILESIZE, length(${$body})); # Options for getting the result. $curl->setopt(CURLOPT_FILE, \$ts_body); # Send the request... my $error_code = $curl->perform(); my $error_string; if ($error_code != 0) { my $http_code = $curl->getinfo(CURLINFO_HTTP_CODE); $error_string = "could not get timestamp"; $error_string .= ", http code: $http_code" unless $http_code == 0; $error_string .= ", curl code: $error_code"; $error_string .= " ($::error_buf)" if defined($::error_buf); } else { my $ct = $curl->getinfo(CURLINFO_CONTENT_TYPE); if (lc($ct) ne "application/timestamp-reply" && lc($ct) ne "application/timestamp-response") { $error_string = "unexpected content type returned: $ct"; } } return ($ts_body, $error_string); } # Print usage information and exists. sub usage { print STDERR "usage: $0 -h <server_url> [-e <extension>] [-o <output>] "; print STDERR "[-v] [-d] [-k <private_key.pem>] [-p <key_password>] "; print STDERR "[-c <client_cert.pem>] [-C <CA_certs.pem>] [-P <CA_path>] "; print STDERR "[-r <file:file...>] [-g <EGD_socket>] [<request>]...\n"; exit 1; } # ---------------------------------------------------------------------- # Main program # ---------------------------------------------------------------------- # Getting command-line options (default comes from TSGET environment variable). my $getopt_arg = "h:e:o:vdk:p:c:C:P:r:g:"; if (exists $ENV{TSGET}) { my @old_argv = @ARGV; @ARGV = split /\s+/, $ENV{TSGET}; getopts($getopt_arg, \%options) or usage; @ARGV = @old_argv; } getopts($getopt_arg, \%options) or usage; # Checking argument consistency. if (!exists($options{h}) || (@ARGV == 0 && !exists($options{o})) || (@ARGV > 1 && exists($options{o}))) { print STDERR "Inconsistent command line options.\n"; usage; } # Setting defaults. @ARGV = ("-") unless @ARGV != 0; $options{e} = ".tsr" unless defined($options{e}); # Processing requests. my $curl = create_curl $options{h}; undef $/; # For reading whole files. REQUEST: foreach (@ARGV) { my $input = $_; my ($base, $path) = fileparse($input, '\.[^.]*'); my $output_base = $base . $options{e}; my $output = defined($options{o}) ? $options{o} : $path . $output_base; STDERR->printflush("$input: ") if $options{v}; # Read request. my $body; if ($input eq "-") { # Read the request from STDIN; $body = <STDIN>; } else { # Read the request from file. open INPUT, "<" . $input or warn("$input: could not open input file: $!\n"), next REQUEST; $body = <INPUT>; close INPUT or warn("$input: could not close input file: $!\n"), next REQUEST; } # Send request. STDERR->printflush("sending request") if $options{v}; my ($ts_body, $error) = get_timestamp $curl, \$body; if (defined($error)) { die "$input: fatal error: $error\n"; } STDERR->printflush(", reply received") if $options{v}; # Write response. if ($output eq "-") { # Write to STDOUT. print $ts_body; } else { # Write to file. open OUTPUT, ">", $output or warn("$output: could not open output file: $!\n"), next REQUEST; print OUTPUT $ts_body; close OUTPUT or warn("$output: could not close output file: $!\n"), next REQUEST; } STDERR->printflush(", $output written.\n") if $options{v}; } $curl->cleanup();
Upload File
Create Folder