Git Product home page Git Product logo

pki's Introduction

PKI

Public Key Infrastucture for R based on the X.509 standard

This package provides tools related to encryption, decryption, signing, management of keys, certificates and public key infrastructure. It also provides tools such as PKI.random to generate cryptographically safe random bytes.

For more information and notes on using various types keys, see the Wiki. The main RForge page is at RForge.net/PKI

CRAN RForge check

To install the CRAN version, use simply

install.packages("PKI")

For installation of the latest development version, use

install.packages("PKI", repo="https://rforge.net")

pki's People

Contributors

mbjones avatar s-u avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pki's Issues

compression detection can fail for XZ in tar signing

Reported by Debian builds under C.UTF-8 locale test can fail with:

 -- Tar ball signing
Error in eval(ei, envir) : 
  (converted from warning) input string '<fd>7zXZ' cannot be translated to UTF-8, is it valid in 'ANSI_X3.4-1968'?

There are few issues - the magic headers compared in PKI.sign.tar and PKI.verify.tar is too short and the use of strings for the magic contents can break when attempts to interpret it as UTF-8 are made.

PKI.encrypt(): missing padding block when last block is full

key <- "abcdef"
ser <- serialize(list(x = 1), connection = NULL)

enc <- PKI::PKI.encrypt(ser, key, "AES-256")
dec <- PKI::PKI.decrypt(enc, key, "AES-256")

all.equal(ser, dec)
#> [1] "Lengths (80, 64) differ (comparison on first 64 components)"
all.equal(ser[1:64], dec)
#> [1] TRUE

Debian failure in C.UTF-8

LC_ALL=C.UTF-8 R --no-save < tests/test.R

## on some systems using abs paths can break 100 byte limit
## so we must do this in the tempdir
wd <- getwd()
td <- tempdir()
setwd(td)
tar(fn, basename(tmpfn), "none")
PKI.sign.tar(fn, key)
   Error: (converted from warning) input string '�7zXZ' cannot be translated to UTF-8, is it valid in 'ANSI_X3.4-1968'?
   Execution halted

Compilation failure on Arch

Hi, compilation fails on my up-to-date Arch Linux installation, with OpenSSL 1.1.0f 25 May 2017. I am out of my depth investigating this, and would be grateful for any suggestions.

R version 3.4.1 (2017-06-30) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> install.packages("PKI")
Installing package into ‘/home/nacnudus/R/x86_64-pc-linux-gnu-library/3.4’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/src/contrib/PKI_0.1-3.tar.gz'
Content type 'application/x-gzip' length 31058 bytes (30 KB)
==================================================
downloaded 30 KB

* installing *source* package ‘PKI’ ...
** package ‘PKI’ successfully unpacked and MD5 sums checked
** libs
gcc -I/usr/include/R/ -DNDEBUG   -D_FORTIFY_SOURCE=2   -fpic  -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong  -c asn1.c -o asn1.o
gcc -I/usr/include/R/ -DNDEBUG   -D_FORTIFY_SOURCE=2   -fpic  -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong  -c init.c -o init.o
gcc -I/usr/include/R/ -DNDEBUG   -D_FORTIFY_SOURCE=2   -fpic  -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong  -c pki-x509.c -o pki-x509.o
pki-x509.c: In function ‘PKI_extract_key’:
pki-x509.c:136:26: error: dereferencing pointer to incomplete type ‘EVP_PKEY {aka struct evp_pkey_st}’
     if (EVP_PKEY_type(key->type) != EVP_PKEY_RSA)
                          ^~
pki-x509.c: In function ‘get_cipher’:
pki-x509.c:244:40: error: dereferencing pointer to incomplete type ‘EVP_CIPHER_CTX {aka struct evp_cipher_ctx_st}’
  ctx = (EVP_CIPHER_CTX*) malloc(sizeof(*ctx));
                                        ^~~~
pki-x509.c: In function ‘PKI_RSAkeygen’:
pki-x509.c:550:5: warning: ‘RSA_generate_key’ is deprecated [-Wdeprecated-declarations]
     rsa = RSA_generate_key(bits, 65537, 0, 0);
     ^~~
In file included from /usr/include/openssl/rsa.h:13:0,
                 from pki.h:13,
                 from pki-x509.c:1:
/usr/include/openssl/rsa.h:193:1: note: declared here
 DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void
 ^
make: *** [/usr/lib64/R/etc/Makeconf:159: pki-x509.o] Error 1
ERROR: compilation failed for package ‘PKI’
* removing ‘/home/nacnudus/R/x86_64-pc-linux-gnu-library/3.4/PKI’

The downloaded source packages are in
	‘/tmp/RtmpF2ZPIM/downloaded_packages’
Warning message:
In install.packages("PKI") :
  installation of package ‘PKI’ had non-zero exit status

Read private key protected by passphrase

This would be very useful, but I'm not sure how you'd implement it in a secure manner. Probably ok to just have passphrase argument and leave security consideration up to users?

Install: 'openssl/err.h' file not found

Hi,

I am trying to install PKI in R 3.3.1 under OS X El Capitan .

Unfortunately install is stoping with an error:

In file included from init.c:1:
./pki.h:11:10: fatal error: 'openssl/err.h' file not found
# include <openssl/err.h>
     ^
1 error generated.
make: **\* [init.o] Error 1
ERROR: compilation failed for package ‘PKI’

Even though openssl is installed through homebrew.

can't install on mac with R installed from homebrew

my R is installed from homebrew, and when I try to install PKI, I get the following error:

checking for openssl/ssl.h... no
configure: Missing OpenSSL headers on macOS,
configure: attempting to get headers from Apple...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   257  100   257    0     0   3681      0 --:--:-- --:--:-- --:--:--  3724
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 14.8M    0 14.8M    0     0  11.2M      0 --:--:--  0:00:01 --:--:-- 18.1M
configure: error: Failed to download OpenSSL sources from Apple. Please install OpenSSL headers before installing PKI.
ERROR: configuration failed for packagePKI* removing/opt/homebrew/lib/R/4.4/site-library/PKIThe downloaded source packages are in/private/var/folders/3x/50b8z9h1209g60qbwgj1jmjr0000gn/T/RtmpPkbbBu/downloaded_packagesWarning message:
In install.packages("PKI") :
  installation of packagePKIhad non-zero exit status

openssl is installed and available:

brew info openssl
==> openssl@3: stable 3.3.0 (bottled)
Cryptography and SSL/TLS Toolkit
https://openssl.org/
Installed
/opt/homebrew/Cellar/openssl@3/3.3.0 (6,976 files, 32.4MB) *
  Poured from bottle using the formulae.brew.sh API on 2024-04-21 at 16:08:56
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/o/[email protected]
License: Apache-2.0
==> Dependencies
Required: ca-certificates ✔
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /opt/homebrew/etc/openssl@3/certs

and run
  /opt/homebrew/opt/openssl@3/bin/c_rehash
==> Analytics
install: 440,074 (30 days), 1,076,092 (90 days), 4,589,651 (365 days)
install-on-request: 65,116 (30 days), 135,676 (90 days), 665,142 (365 days)
build-error: 2,141 (30 days)

This was reported years ago here: #17 Not sure if it was never fixed or if the problem has been reintroduced at some point

This is a problem so far only for PKI - other packages such as devtools that also require openssl install just fine and report checking for openssl/ssl.h... yes

Encrypt RSA private key

Is it possible to create an encrypted RSA private key with a passphrase using the PKI package? I would have expected a password argument to be in PKI.save.key() similar to PKI.load.key() so that it would look something like

PKI.save.key(key, format = c("PEM", "DER"), private, target, password)

Can PKI parse RSA PUBLIC KEYs?

e.g.

key <- "-----BEGIN RSA PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCGfSqjlO0P4lJhDXL9gaH8QdK9\ng5NvtKMM9mAnuYf1TITFSqe2zNW0QUzsTQ0J+wcpogaHlusnax+fqzAQ9UalX0+t\nOChwpRMgRe6yYUqe0WUlqjeXUGHujNr7FQNVAnLr07Fe9Dsmg/k0IR5N1IXBxn3Q\nw9etym5mBvVmVyjXpQIDAQAB\n-----END RSA PUBLIC KEY-----\n"
PKI::PKI.load.key(textConnection(key))
#> Error in PKI::PKI.load.key(textConnection(key)) : 
#>   error:0D0680A8:lib(13):func(104):reason(168)

Does PKI.load.key support OpenSSH format?

The docs say: "The OpenSSH format is one line beginning with "ssh-rsa ". SSH2 PEM public keys (rfc4716) are supported in PKI.load.key and the binary payload is the same as the OpenSSH, only with different wrapping."

but:

public_key <- textConnection("ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAy/i7l7DZon6YFnZfXg/H+BnYDOG9CkHWtSxKXLiAlygl7kqF5tTeUHapMFCnkE1OLFOCGJCFT2PCi/Yipc2YAMghko/jcPT8Qa1hQaY+z4ErTqt6DllI7OZkakhphV96q9gUxcln2WXWU/6MD7H3yetn60b5xH53SSVDfu1mSwosiaxio8aeIv84cIrjg4yUeKsUYOjkr3bNmkx478LVq2y3aj//OpemfEVyp0BHpx8govAitKVU+p4z/4t/o4T0W8mAsqs9M1O6MYFthC+W6FuvR61cYo40qO4YZ3jcRgzGCWgXuZWG4RvwNM+BEY9BGvEWLcjtplntnfeSyOCAuQ== [email protected]")

PKI.load.key(public_key)
#> Error in PKI.load.key(public_key) : 
#>   cannot find either public or private RSA key in PEM format

Or maybe I'm supposed to do:

PKI.load.key(PKI.load.OpenSSH.pubkey(public_key))

?

checking for library containing RSA_generate_key_ex... no

Hi there,

I'm having some trouble getting PKI to install on macOS High Sierra. I've tried a few different approaches (including installing OpenSSL with Homebrew), but things always get stuck while checking for library containing RSA_generate_key_ex:

checking for gcc... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking for clang option to accept ISO C89... none needed
checking how to run the C preprocessor... clang -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... rm: conftest.dSYM: is a directory
rm: conftest.dSYM: is a directory
yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking openssl/ssl.h usability... no
checking openssl/ssl.h presence... no
checking for openssl/ssl.h... no
configure: Missing OpenSSL headers on macOS,
configure: attempting to get headers from Apple...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 10 14.100 14.6M  100 14.6M    0     0  6293k      0  0:00:02  0:00:01  
checking openssl/ssl.h usability... yes
checking openssl/ssl.h presence... yes
checking for openssl/ssl.h... yes
checking openssl/rsa.h usability... yes
checking openssl/rsa.h presence... yes
checking for openssl/rsa.h... yes
checking for library containing RSA_generate_key_ex... no
configure: error: Cannot find usable crypto library
ERROR: configuration failed for package ‘PKI’

Any suggestions? The trace above is without using brew's openssl, so PKI is downloading headers straight from Apple, but no luck.

PKI crashes

Here's a reproducible example:

# git clone https://github.com/hadley/secure.git
# R CMD install secure
# cd secure
# R
library(secure)
encrypt("test", x = 1)
decrypt("test")
encrypt("test", x = 1)
decrypt("test")
# Eventually, crashes R

(I added your github public key to the users for this repo, so you should be able to encrypt and decrypt files without any additional intervention, assuming my heuristics for finding your private key are ok)

openssl 3.x removed Blowfish

OpneSSL 3.0.0 and higher removed Blowfish (BF) from the provided ciphers. This leads to our tests failing, because we use BF as an example for a symmetric cipher. It can still be used, but "legacy" provider has to be loaded for it to work. Given that existing applications rely of BF we should still support it.

Friendly Debian people have noticed and created a patch: PR which loads the provides and enables the BF mappings.

PKI.encrypt gives different results each time I call it

key <- secure::travis_key("hadley/secure")
string <- "abc"
PKI::PKI.encrypt(charToRaw(string), key)[1:10]
#> [1] 38 67 b2 02 39 f5 76 aa 02 2f
PKI::PKI.encrypt(charToRaw(string), key)[1:10]
#> [1] 78 a5 c2 af 04 d6 e9 07 94 3a

PKI fails to install using OpenSSL 1.1.0 or higher

We are attempting to install a Shiny-server using R version 3.3.2 When I install the PKI via RSconnect package, I am getting the following error:

** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (htmltools)
* installing *source* package ‘PKI’ ...
** package ‘PKI’ successfully unpacked and MD5 sums checked
** libs
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG      -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-hctDwb/r-base-3.3.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c asn1.c -o asn1.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG      -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-hctDwb/r-base-3.3.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c init.c -o init.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG      -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-hctDwb/r-base-3.3.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c pki-x509.c -o pki-x509.o
pki-x509.c: In function ‘PKI_extract_key’:
pki-x509.c:136:26: error: dereferencing pointer to incomplete type ‘EVP_PKEY {aka struct evp_pkey_st}’
     if (EVP_PKEY_type(key->type) != EVP_PKEY_RSA)
                          ^~
pki-x509.c: In function ‘get_cipher’:
pki-x509.c:244:40: error: dereferencing pointer to incomplete type ‘EVP_CIPHER_CTX {aka struct evp_cipher_ctx_st}’
  ctx = (EVP_CIPHER_CTX*) malloc(sizeof(*ctx));
                                        ^~~~
pki-x509.c: In function ‘PKI_RSAkeygen’:
pki-x509.c:550:5: warning: ‘RSA_generate_key’ is deprecated [-Wdeprecated-declarations]
     rsa = RSA_generate_key(bits, 65537, 0, 0);
     ^~~
In file included from /usr/include/openssl/rsa.h:13:0,
                 from pki.h:13,
                 from pki-x509.c:1:
/usr/include/openssl/rsa.h:193:1: note: declared here
 DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void
 ^
/usr/lib/R/etc/Makeconf:132: recipe for target 'pki-x509.o' failed
make: *** [pki-x509.o] Error 1
ERROR: compilation failed for package ‘PKI’
* removing ‘/usr/local/lib/R/site-library/PKI’

The Openssl version is 1.0.2

Encrypted connections

Maybe this is out of scope for PKI, but it would be cool to have connections that transparently encrypt/decrypt their contents. Would only be needed for symmetric keys. e.g.

write.csv(mtcars, encrpyted("mtcars.csv.enc", key = "abcdef"))
mtcars2 <- read.csv(encrpyted("mtcars.csv.enc", key = "abcdef"))

package doesn't load google apps credentials (rsa private key)

i'm trying to use this version of PKI to support the httr package's oauth_service_token function, on hadley wickham's advice (r-lib/httr#247). (the base package can't seem to read google's rsa keys.)

the package installs fine:

> devtools::install_github("s-u/pki")
Downloading github repo s-u/pki@master
Installing PKI
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore CMD INSTALL '/tmp/RtmpitNezm/devtoolsa815ae767cd/s-u-PKI-e58876e'  \
  --library='/home/xxx/R/x86_64-pc-linux-gnu-library/3.1' --install-tests 

* installing *source* package ‘PKI’ ...
** libs
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG      -fpic  -O2 -pipe -g  -c asn1.c -o asn1.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG      -fpic  -O2 -pipe -g  -c init.c -o init.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG      -fpic  -O2 -pipe -g  -c pki-x509.c -o pki-x509.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG      -fpic  -O2 -pipe -g  -c tools.c -o tools.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-z,relro -o PKI.so asn1.o init.o pki-x509.o tools.o -lssl -L/usr/lib/R/lib -lR
installing to /home/xxx/R/x86_64-pc-linux-gnu-library/3.1/PKI/libs
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (PKI)

but it won't load. there appear to be some missing hooks in the shared object.

> library(PKI)
Loading required package: base64enc
Error in FUN(structure(c("PKI_load_DER_X509", "PKI_verify_cert", "PKI_cert_public_key",  : 
  no such symbol PKI_load_DER_X509 in package /home/xxx/R/x86_64-pc-linux-gnu-library/3.1/PKI/libs/PKI.so
Error: package or namespace load failed for ‘PKI’

any ideas?

PKI "configure: error: Cannot find usable crypto library"

Was facing the same issue as the last off-topic comment on issue #19

Thankfully I found the solution in:
vernemq/vernemq#206

Now my ~/.R/Makevars looks like:

CFLAGS = -g -O3 -Wall -pedantic -mtune=native -L/usr/local/opt/openssl/lib -I/usr/local/opt/openssl/include -I/usr/local/opt/gettext/include
CXXFLAGS = -g -O3 -Wall -pedantic -mtune=native -L/usr/local/opt/openssl/lib -I/usr/local/opt/openssl/include -I/usr/local/opt/gettext/include

LDFLAGS = -L/usr/local/opt/openssl/lib -I/usr/local/opt/openssl/include -L/usr/local/opt/gettext/lib
CPPFLAGS = -I/usr/local/opt/openssl/include

Note the importance of specifying both -L and -I (capital i).
For hours I only found posts giving on the latter.

Default print method

Would you consider something like this?

print.public.key <- function(x, ...) {
  cat("<public_key> ", PKI::raw2hex(fingerprint(x), ":"), "\n", sep = "")
}

fingerprint <- function(x) {
  der <- PKI::PKI.save.key(x, "DER")

  PKI::PKI.digest(unlist(lapply(c(list(charToRaw("ssh-rsa")), PKI::ASN1.decode(PKI::ASN1.decode(der)[[2]])[2:1]), function(o) c(writeBin(length(o), raw(), endian="big"), o))), "MD5")
}

(displaying public fingerprint for private keys would also be useful)

Generate random keys?

It would be nice to have some way to generate a random key with specified number of bits.

More informative error messages

I'm getting:

PKI::PKI.decrypt(base64enc::base64decode(me[[1]]$key), private_key)
# Error in PKI::PKI.decrypt(base64enc::base64decode(me[[1]]$key), private_key) : 
#  error:0407106B:lib(4):func(113):reason(107)

This SO post suggests that more informative errors are available:

OpenSSL 1.1 problem

Arch linux now has openSSL 1.0 and 1.1 series installed simultaneously.

When compiling PKI, I see the following error:

* installing *source* package ‘PKI’ ...
** package ‘PKI’ successfully unpacked and MD5 sums checked
** libs
gcc -I/usr/include/R/ -DNDEBUG   -D_FORTIFY_SOURCE=2   -fpic  -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong  -c pki-x509.c -o pki-x509.o
pki-x509.c: In function ‘PKI_extract_key’:
pki-x509.c:136:26: error: dereferencing pointer to incomplete type ‘EVP_PKEY {aka struct evp_pkey_st}’
     if (EVP_PKEY_type(key->type) != EVP_PKEY_RSA)
                          ^~
pki-x509.c: In function ‘get_cipher’:
pki-x509.c:244:40: error: dereferencing pointer to incomplete type ‘EVP_CIPHER_CTX {aka struct evp_cipher_ctx_st}’
  ctx = (EVP_CIPHER_CTX*) malloc(sizeof(*ctx));
                                        ^~~~
pki-x509.c: In function ‘PKI_RSAkeygen’:
pki-x509.c:550:5: warning: ‘RSA_generate_key’ is deprecated [-Wdeprecated-declarations]
     rsa = RSA_generate_key(bits, 65537, 0, 0);
     ^~~
In file included from /usr/include/openssl/rsa.h:13:0,
                 from pki.h:13,
                 from pki-x509.c:1:
/usr/include/openssl/rsa.h:193:1: note: declared here
 DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void
 ^
make: *** [/usr/lib64/R/etc/Makeconf:159: pki-x509.o] Error 1
ERROR: compilation failed for package ‘PKI’
* removing ‘/home/hwkiller/R/x86_64-pc-linux-gnu-library/3.4/PKI’

How can I build this package using openSSL 1.0, which I assume is the version expected by PKI?

The openSSL 1.0 package contenst are as follows:

openssl-1.0 /usr/
openssl-1.0 /usr/bin/
openssl-1.0 /usr/bin/openssl-1.0
openssl-1.0 /usr/include/
openssl-1.0 /usr/include/openssl-1.0/
openssl-1.0 /usr/include/openssl-1.0/openssl/
openssl-1.0 /usr/include/openssl-1.0/openssl/aes.h
openssl-1.0 /usr/include/openssl-1.0/openssl/asn1.h
openssl-1.0 /usr/include/openssl-1.0/openssl/asn1_mac.h
openssl-1.0 /usr/include/openssl-1.0/openssl/asn1t.h
openssl-1.0 /usr/include/openssl-1.0/openssl/bio.h
openssl-1.0 /usr/include/openssl-1.0/openssl/blowfish.h
openssl-1.0 /usr/include/openssl-1.0/openssl/bn.h
openssl-1.0 /usr/include/openssl-1.0/openssl/buffer.h
openssl-1.0 /usr/include/openssl-1.0/openssl/camellia.h
openssl-1.0 /usr/include/openssl-1.0/openssl/cast.h
openssl-1.0 /usr/include/openssl-1.0/openssl/cmac.h
openssl-1.0 /usr/include/openssl-1.0/openssl/cms.h
openssl-1.0 /usr/include/openssl-1.0/openssl/comp.h
openssl-1.0 /usr/include/openssl-1.0/openssl/conf.h
openssl-1.0 /usr/include/openssl-1.0/openssl/conf_api.h
openssl-1.0 /usr/include/openssl-1.0/openssl/crypto.h
openssl-1.0 /usr/include/openssl-1.0/openssl/des.h
openssl-1.0 /usr/include/openssl-1.0/openssl/des_old.h
openssl-1.0 /usr/include/openssl-1.0/openssl/dh.h
openssl-1.0 /usr/include/openssl-1.0/openssl/dsa.h
openssl-1.0 /usr/include/openssl-1.0/openssl/dso.h
openssl-1.0 /usr/include/openssl-1.0/openssl/dtls1.h
openssl-1.0 /usr/include/openssl-1.0/openssl/e_os2.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ebcdic.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ec.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ecdh.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ecdsa.h
openssl-1.0 /usr/include/openssl-1.0/openssl/engine.h
openssl-1.0 /usr/include/openssl-1.0/openssl/err.h
openssl-1.0 /usr/include/openssl-1.0/openssl/evp.h
openssl-1.0 /usr/include/openssl-1.0/openssl/hmac.h
openssl-1.0 /usr/include/openssl-1.0/openssl/idea.h
openssl-1.0 /usr/include/openssl-1.0/openssl/krb5_asn.h
openssl-1.0 /usr/include/openssl-1.0/openssl/kssl.h
openssl-1.0 /usr/include/openssl-1.0/openssl/lhash.h
openssl-1.0 /usr/include/openssl-1.0/openssl/md4.h
openssl-1.0 /usr/include/openssl-1.0/openssl/md5.h
openssl-1.0 /usr/include/openssl-1.0/openssl/mdc2.h
openssl-1.0 /usr/include/openssl-1.0/openssl/modes.h
openssl-1.0 /usr/include/openssl-1.0/openssl/obj_mac.h
openssl-1.0 /usr/include/openssl-1.0/openssl/objects.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ocsp.h
openssl-1.0 /usr/include/openssl-1.0/openssl/opensslconf.h
openssl-1.0 /usr/include/openssl-1.0/openssl/opensslv.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ossl_typ.h
openssl-1.0 /usr/include/openssl-1.0/openssl/pem.h
openssl-1.0 /usr/include/openssl-1.0/openssl/pem2.h
openssl-1.0 /usr/include/openssl-1.0/openssl/pkcs12.h
openssl-1.0 /usr/include/openssl-1.0/openssl/pkcs7.h
openssl-1.0 /usr/include/openssl-1.0/openssl/pqueue.h
openssl-1.0 /usr/include/openssl-1.0/openssl/rand.h
openssl-1.0 /usr/include/openssl-1.0/openssl/rc2.h
openssl-1.0 /usr/include/openssl-1.0/openssl/rc4.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ripemd.h
openssl-1.0 /usr/include/openssl-1.0/openssl/rsa.h
openssl-1.0 /usr/include/openssl-1.0/openssl/safestack.h
openssl-1.0 /usr/include/openssl-1.0/openssl/seed.h
openssl-1.0 /usr/include/openssl-1.0/openssl/sha.h
openssl-1.0 /usr/include/openssl-1.0/openssl/srp.h
openssl-1.0 /usr/include/openssl-1.0/openssl/srtp.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ssl.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ssl2.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ssl23.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ssl3.h
openssl-1.0 /usr/include/openssl-1.0/openssl/stack.h
openssl-1.0 /usr/include/openssl-1.0/openssl/symhacks.h
openssl-1.0 /usr/include/openssl-1.0/openssl/tls1.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ts.h
openssl-1.0 /usr/include/openssl-1.0/openssl/txt_db.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ui.h
openssl-1.0 /usr/include/openssl-1.0/openssl/ui_compat.h
openssl-1.0 /usr/include/openssl-1.0/openssl/whrlpool.h
openssl-1.0 /usr/include/openssl-1.0/openssl/x509.h
openssl-1.0 /usr/include/openssl-1.0/openssl/x509_vfy.h
openssl-1.0 /usr/include/openssl-1.0/openssl/x509v3.h
openssl-1.0 /usr/lib/
openssl-1.0 /usr/lib/libcrypto.so.1.0.0
openssl-1.0 /usr/lib/libssl.so.1.0.0
openssl-1.0 /usr/lib/openssl-1.0/
openssl-1.0 /usr/lib/openssl-1.0/engines/
openssl-1.0 /usr/lib/openssl-1.0/engines/lib4758cca.so
openssl-1.0 /usr/lib/openssl-1.0/engines/libaep.so
openssl-1.0 /usr/lib/openssl-1.0/engines/libatalla.so
openssl-1.0 /usr/lib/openssl-1.0/engines/libcapi.so
openssl-1.0 /usr/lib/openssl-1.0/engines/libchil.so
openssl-1.0 /usr/lib/openssl-1.0/engines/libcswift.so
openssl-1.0 /usr/lib/openssl-1.0/engines/libgmp.so
openssl-1.0 /usr/lib/openssl-1.0/engines/libgost.so
openssl-1.0 /usr/lib/openssl-1.0/engines/libnuron.so
openssl-1.0 /usr/lib/openssl-1.0/engines/libpadlock.so
openssl-1.0 /usr/lib/openssl-1.0/engines/libsureware.so
openssl-1.0 /usr/lib/openssl-1.0/engines/libubsec.so
openssl-1.0 /usr/lib/openssl-1.0/libcrypto.so
openssl-1.0 /usr/lib/openssl-1.0/libssl.so
openssl-1.0 /usr/lib/openssl-1.0/pkgconfig/
openssl-1.0 /usr/lib/openssl-1.0/pkgconfig/libcrypto.pc
openssl-1.0 /usr/lib/openssl-1.0/pkgconfig/libssl.pc
openssl-1.0 /usr/lib/openssl-1.0/pkgconfig/openssl.pc
openssl-1.0 /usr/share/
openssl-1.0 /usr/share/licenses/
openssl-1.0 /usr/share/licenses/openssl-1.0/
openssl-1.0 /usr/share/licenses/openssl-1.0/LICENSE

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.