Commit Graph

130 Commits

Author SHA1 Message Date
Christopher Dudley
c26b4563dc change error checking style to match existing code. 2018-01-05 16:06:15 -07:00
Christopher Dudley
7689615645 add shared secret derivation and test for ECDH. 2018-01-05 16:06:15 -07:00
Christopher Dudley
64a7b8acc3 add EC key generation. 2018-01-05 16:06:15 -07:00
Christopher Dudley
1647be123d allow pKey to support any key type supported by OpenSSL. 2018-01-05 16:06:15 -07:00
Jeff Wendling
4ea35d79e3 fix build on dev version of go on osx
cgo starts exiting when pkg-config doesn't work, so limit calling
pkg-config to linux and windows.

we also need to specify -lssl and -lcrypto in the linker flags
when we don't have pkg-config
2017-12-07 13:32:27 -07:00
Andrew Harding
8ef358132a convenient tag to support static linking 2017-09-28 15:57:55 -06:00
Alexander Pyhalov
b2898d133d Fix build on solarish platforms 2017-09-25 09:47:40 -06:00
Andrew Harding
d79d6bce81 remove unnecessary windows build cruft 2017-09-18 16:57:59 -06:00
Jeff
ad5fdecfce ignore linker warnings on os x
this way if you don't have openssl@1.1 installed, it doesn't complain at you
2017-07-07 14:49:22 -06:00
JT Olds
30b9d3d440 Update README.md 2017-06-29 17:57:46 -06:00
Andrew Harding
1ea168d098 move defines to shim header 2017-06-06 08:23:50 -06:00
Jeff Wendling
37dddbfb29 add AUTHORS and unify copyright info 2017-06-05 18:07:03 -06:00
Jeff Wendling
0d0212094c remove useless build tags 2017-06-05 18:07:03 -06:00
Andrew Harding
b90544c9b0 openssl 1.1.x support
- created a uniform shim layer for the Go code to invoke that does the
  right thing depending on the version of openssl. functions that have
  yet to be moved can be done so as needed.

- fixed the incorrect use of X509_STORE_CTX_get_app_data in verify_cb to
  pull out the SSL object from the x509 store context, which causes
  crashes when the SSL object index happens to not be zero.

- fix engine not being passed to HMAC_Init_ex

- fix HMAC tests not checking for failures with NewHMAC
2017-06-05 18:07:03 -06:00
Stephen Gallagher
28dd155517 Fix typo in LoadPrivateKeyFromPEMWidthPassword
Fixes #62
2017-04-14 09:50:34 -06:00
Scott Kidder
535a60be66 HMAC functions
Resolves #35

Author:    Scott Kidder <skidder@brightcove.com>
Date:      Fri May 22 10:41:35 2015 -0700

	First commit of HMAC functions
	Renamed HMAC Update function to Write
	Eliminate debug logging
	Compare the HMAC result
	Call Reset function in Final return statement
2017-03-03 12:35:14 -07:00
Jeff Wendling
2980c58b82 fix bug with hostname validation on newer openssl
the signature for the X509_check_host function takes
a char **peername, and our vendored hostname code does
not have this argument. hilarity ensues!!

so since we never use it, just have our vendored code
ignore it.

Change-Id: I4fdf0a4cd43738e4cc7261e4e2d16a9deef1ac82
2017-03-02 15:14:35 -07:00
Jeff Wendling
fd0849ed03 add flags to work with homebrew openssl by default
Change-Id: I1599b4585850d81d4bc43dc067321af15ad3fafd
2017-03-02 15:14:35 -07:00
Jeff Wendling
90498e17ed expose information about the *SSL on the *Conn
Change-Id: I844ecc4b82472e6d7a8476da2f5380f05f274b7c
2017-03-02 15:14:35 -07:00
JT Olds
d63025916b Merge pull request #67 from diffeo/master
FIPS Mode capability
2016-11-28 18:02:28 -07:00
kujenga
ddb2b54e96
lock OS thread when changing FIPS mode
Based on a PR comment here: https://github.com/spacemonkeygo/openssl/pull/42
2016-11-28 19:43:27 -05:00
kujenga
9257638928
comment FIPS method, docs link, fix darwin build flag 2016-11-28 17:42:34 -05:00
kujenga
6f143c2df6
add FIPS mode from fork
This introduces this file: https://github.com/10gen/openssl/blob/master/fips.go
Which was pointed to from this issue: https://github.com/spacemonkeygo/openssl/issues/37
2016-11-28 16:39:24 -05:00
Colin Misare
a0b9b65330 adding GenerateRSAKeyWithExponent 2016-08-09 18:51:09 -06:00
Colin Misare
2ffbf8f57a adding LoadPrivateKeyFromDER 2016-08-09 18:51:05 -06:00
Colin Misare
ef69faf59b adding SHA1 and SHA512 Methods 2016-05-17 17:38:34 -06:00
Jeff Wendling
fb0c387e74 fixes for go1.6
Change-Id: I35a41afbdfe2016f7b0967087deb7b418dca2bb2
2016-03-24 14:41:08 +00:00
JT Olds
71f9da2a48 Merge pull request #41 from rfjakob/master
Fix build with openssl 1.0.2d
2015-11-29 11:55:40 -07:00
JT Olds
e6f40e41ef fix a leak and compiler error 2015-11-29 11:45:32 -07:00
JT Olds
5230a35d68 Merge pull request #34 from norx85/master
Add of method to permit the load of private key with password
2015-11-29 11:42:00 -07:00
JT Olds
e54919e9db Merge pull request #31 from phuslu/serial_bigint
make CertificateInfo Serial type to *big.Int
2015-11-29 11:40:07 -07:00
Viacheslav Biriukov
149d3f13bd add SNI (RFC 6066) 2015-11-29 11:31:05 -07:00
Jakob Unterwurzacher
a262611e6f Fix build with openssl 1.0.2d
On Fedora 23, the build fails like this:

	go build
	# github.com/spacemonkeygo/openssl
	/usr/bin/ld: $WORK/github.com/spacemonkeygo/openssl/_obj/cert.cgo2.o: undefined reference to symbol 'EVP_dss1@@libcrypto.so.10'
	/usr/lib64/libcrypto.so.10: error adding symbols: DSO missing from command line
	collect2: error: ld returned 1 exit status

Adding "libcrypto" to the linker flags fixes the issue.
2015-11-29 18:42:51 +01:00
Andrew Harding
e16f9ab26d added method to get verify code from cert store ctx
Change-Id: I0a842d144b85756a2ad96df15c6cd25ce4761f62
2015-10-13 12:50:46 -06:00
Andrew Harding
327ffad934 fix double-free when adding cert to chain
Change-Id: I8d6fd56642ac5f87dd9fb4f78df64bb1f39494b7
2015-10-12 14:55:54 -06:00
Jeff Wendling
4d3c3b16ef support session resumption and hooking into the ticket callback
Change-Id: I8e12e4c1f0a8b350853a41636035baf1cfb0c952
2015-06-09 20:31:03 +00:00
Andrew Harding
0c8dfef3f6 get x509 name entry
Change-Id: I75b097b206888cfe066d5470b9cdaec9da950244
2015-06-01 13:46:25 -06:00
Giulio
730bda13bd added LoadPrivateKeyFromPEMWidthPassword method to permit the load of private key with password 2015-05-20 12:03:47 +02:00
JT Olds
c598d1a3f3 Merge pull request #32 from bak1an/session_cache_opts
Session cache opts
2015-05-14 02:18:21 -06:00
Anton Baklanov
1d354f480d use time.Duration instead of int to specify session timeout 2015-05-14 09:17:34 +03:00
Anton Baklanov
c96ed22afd add basic test for Ctx session cache timeout/size options 2015-05-13 12:25:03 +03:00
Anton Baklanov
8d2efad227 add a few session cache options getters and setters 2015-05-12 22:18:27 +03:00
Phus Lu
175e155dd4 make CertificateInfo Serial type to *big.Int 2015-04-04 20:22:19 +08:00
JT Olds
84b5df4774 Merge pull request #29 from gabrielrussell/openssl-1.0.2_check
Only compile X509_check_* functions when building against openssl < 1.0.2
2015-03-09 14:47:02 -06:00
Gabriel Russell
9814818d06 Only compile X509_check_* functions when building against openssl < 1.0.2 2015-03-09 15:12:11 -04:00
Jeff
8feeee5748 Merge pull request #26 from scottjg/openssl-1.0.0-fix
fix compilation for later openssl
2015-03-04 12:56:00 -07:00
Scott J. Goldman
dfb921e960 fix compilation for later openssl
in later openssl, the key param in EVP_PKEY_assign changed from char* to
void*. causes this error:
../github.com/spacemonkeygo/openssl/key.go:324: cannot use
(*C.char)(unsafe.Pointer(rsa)) (type *C.char) as type unsafe.Pointer in
argument to _Cfunc_EVP_PKEY_assign
2015-02-24 05:33:55 -05:00
JT Olds
2c9a3f31d1 Merge pull request #23 from carlosmn/osx
OSX fixes
2015-01-22 17:16:51 -07:00
paul cannon
d0177cb6a7 Fix init'ing non-authenticated decryption contexts
As pointed out by ishbir in issue 24, the applyKeyAndIV function was
incorrectly always using EVP_EncryptInit_ex(), even when the underlying
context being initialized was for a decryption.

This change causes it to select the right initializer based on the
"encrypt" field in the EVP_CIPHER_CTX. A test is also added which
verifies a fix.

Closes #24.
2014-12-19 02:32:36 -06:00
Carlos Martín Nieto
20fdb1c664 Work with versions pickier about C types
Newer versions of Go (at least 1.4) do not like mixing C pointer
types. Cast an unsafe.Pointer to *C.char to make the compiler see
matching types.
2014-12-12 09:15:49 +01:00