Skip to content

Commit

Permalink
Update OpenSSL to 3.1.0 (#2)
Browse files Browse the repository at this point in the history
  • Loading branch information
sigabrtz authored May 10, 2023
1 parent ba056ac commit c7fca4b
Show file tree
Hide file tree
Showing 8 changed files with 52 additions and 59 deletions.
2 changes: 1 addition & 1 deletion Config/ios-conf.patch
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
1686a1687,1710
1685a1686,1709
> "ios64sim-cross" => {
> inherit_from => [ "ios-common" ],
> cflags => add("-arch x86_64 -DOPENSSL_NO_ASM -mios-version-min=7.0.0 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fno-common"),
Expand Down
2 changes: 0 additions & 2 deletions OpenSSL-Swift.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
23DAAA992A04E91D0054E840 /* define_wrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 23DAAA942A04E91D0054E840 /* define_wrapper.h */; };
23DAAA9A2A04E91D0054E840 /* shim.h in Headers */ = {isa = PBXBuildFile; fileRef = 23DAAA952A04E91D0054E840 /* shim.h */; };
23DAAA9B2A04E91E0054E840 /* shim.h in Headers */ = {isa = PBXBuildFile; fileRef = 23DAAA952A04E91D0054E840 /* shim.h */; };
23DAAA9C2A04E9920054E840 /* define_wrapper.c in Headers */ = {isa = PBXBuildFile; fileRef = 23DAAA932A04E91D0054E840 /* define_wrapper.c */; settings = {ATTRIBUTES = (Public, ); }; };
2B15C0D566F9A5C3FB46E0AF /* Hash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07D761C86A6012F4608C229C /* Hash.swift */; };
2BA6A8EF5D2D347FBBB34064 /* BrainpoolP256r1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0A01DA7E3E8F1A1A85BA13 /* BrainpoolP256r1.swift */; };
34E35163B5A684A122AB9B20 /* BrainpoolP256r1KeyGenerationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C801E4919888D317525BE2A7 /* BrainpoolP256r1KeyGenerationTests.swift */; };
Expand Down Expand Up @@ -498,7 +497,6 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
23DAAA9C2A04E9920054E840 /* define_wrapper.c in Headers */,
23DAAA9A2A04E91D0054E840 /* shim.h in Headers */,
23DAAA982A04E91D0054E840 /* define_wrapper.h in Headers */,
);
Expand Down
3 changes: 3 additions & 0 deletions Sources/COpenSSL/define_wrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
static const int EVP_PKEY_KEYPAIR_W = EVP_PKEY_KEYPAIR;
static const int EVP_PKEY_PUBLIC_KEY_W = EVP_PKEY_PUBLIC_KEY;
static const char* OSSL_PKEY_PARAM_GROUP_NAME_W = OSSL_PKEY_PARAM_GROUP_NAME;
static const char* OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT_W = OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT;
static const char* OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED_W = OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED;
static const char* OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED_W = OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED;
static const char* OSSL_PKEY_PARAM_PUB_KEY_W = OSSL_PKEY_PARAM_PUB_KEY;
static const char* OSSL_PKEY_PARAM_PRIV_KEY_W = OSSL_PKEY_PARAM_PRIV_KEY;
static const char* EVP_PKEY_CTX_NAME_EC = "EC"; // no constant defined
Expand Down
39 changes: 9 additions & 30 deletions Sources/OpenSSL/EC/ECPrivateKey.swift
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,15 @@ final class ECPrivateKeyImpl<Curve: ECCurve>: ECPrivateKey {
throw OpenSSLError(name: "Could not generate key pair.")
}
self.pkey = pkey

var buffer: UnsafeMutablePointer<UInt8>?
let size = i2d_PublicKey(pkey, &buffer)
guard size > 0, let safeBuffer = buffer else {
throw OpenSSLError(name: "Unable to retrieve public key data")
}
let pubKeyData = Data(bytesNoCopy: safeBuffer, count: Int(size), deallocator: .free)

// create the associated public key from (generated) pkey w/o the private key data portion
let dup = EVP_PKEY_dup(pkey)
defer { EVP_PKEY_free(dup) }
let pubKeyCompactData = try publicKeyCompactDataFromEvpPkey(dup)
associatedPublicKey = try ECPublicKeyImpl(compact: pubKeyCompactData)
associatedPublicKey = try ECPublicKeyImpl(x962: pubKeyData)
}

/// Initialize a private key (key pair) from data.
Expand Down Expand Up @@ -152,7 +155,7 @@ final class ECPrivateKeyImpl<Curve: ECCurve>: ECPrivateKey {
EVP_PKEY_private_check(validationContext) > 0,
EVP_PKEY_pairwise_check(validationContext) > 0
else {
throw OpenSSLError(name: "Error when validating the components of the key (bad data?)")
throw OpenSSLError(name: "Error when validating the components of the ECPrivateKey (bad data?)")
}

self.pkey = pkey
Expand Down Expand Up @@ -284,27 +287,3 @@ extension ECPrivateKeyImpl: DiffieHellman {
}

extension ECPrivateKeyImpl: DigestSigner {}

func publicKeyCompactDataFromEvpPkey(_ pkey: OpaquePointer?) throws -> Data {
// - NOTE: Unexpectedly, the output format of EVP_PKEY_todata() is POINT_CONVERSION_COMPRESSED(!) for the pub key
// and the following implementation for now relies on that fact (that might be subject to change soon).
// see: https://github.com/openssl/openssl/issues/16595 and
// https://github.com/openssl/openssl/pull/16624
var osslParamsToData: UnsafeMutablePointer<OSSL_PARAM>?
defer { OSSL_PARAM_free(osslParamsToData) }
guard EVP_PKEY_todata(pkey, EVP_PKEY_PUBLIC_KEY_W, &osslParamsToData) == 1 else {
throw OpenSSLError(name: "Unable to retrieve public key data")
}

let pubParam = OSSL_PARAM_locate(osslParamsToData, OSSL_PKEY_PARAM_PUB_KEY_W)
var pubBuffer: UnsafeRawPointer?
var size = 0
guard
OSSL_PARAM_get_octet_string_ptr(pubParam, &pubBuffer, &size) == 1,
size > 0,
let safeBuffer = pubBuffer
else {
throw OpenSSLError(name: "Unable to retrieve public key data")
}
return Data(bytes: safeBuffer, count: size)
}
51 changes: 33 additions & 18 deletions Sources/OpenSSL/EC/ECPublicKey.swift
Original file line number Diff line number Diff line change
Expand Up @@ -58,27 +58,48 @@ final class ECPublicKeyImpl<Curve: ECCurve>: ECPublicKey {
///
/// - Parameter data: Data encoding the public key
/// - Throws: OpenSSLError
init(data: Data) throws {
convenience init(data: Data) throws {
try self.init(data: data, pointFormatUncompressed: true)
}

// swiftlint:disable:next function_body_length
private init(data: Data, pointFormatUncompressed: Bool = true) throws {
var pkey = EVP_PKEY_new()

// set up OSSL_PARAMs
let osslParamBuilder = OSSL_PARAM_BLD_new()
defer { OSSL_PARAM_BLD_free(osslParamBuilder) }
guard
OSSL_PARAM_BLD_push_utf8_string(osslParamBuilder, OSSL_PKEY_PARAM_GROUP_NAME_W, Curve.name.asCChar, 0) == 1
guard OSSL_PARAM_BLD_push_utf8_string(
osslParamBuilder,
OSSL_PKEY_PARAM_GROUP_NAME_W,
Curve.name.asCChar,
0
) == 1
else {
throw OpenSSLError(name: "Error setting up OSSL_PARAM")
}

let pointFormat = pointFormatUncompressed ?
OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED_W : OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED_W

guard OSSL_PARAM_BLD_push_utf8_string(
osslParamBuilder,
OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT_W,
pointFormat,
0
) == 1
else {
throw OpenSSLError(name: "Error setting up OSSL_PARAM")
}

try data.withUnsafeBytes { buffer in
guard
let bufferPointer = buffer.bindMemory(to: UInt8.self).baseAddress,
OSSL_PARAM_BLD_push_octet_string(
osslParamBuilder,
OSSL_PKEY_PARAM_PUB_KEY_W,
bufferPointer,
buffer.count
) == 1
guard let bufferPointer = buffer.bindMemory(to: UInt8.self).baseAddress,
OSSL_PARAM_BLD_push_octet_string(
osslParamBuilder,
OSSL_PKEY_PARAM_PUB_KEY_W,
bufferPointer,
buffer.count
) == 1
else {
throw OpenSSLError(name: "Error setting up OSSL_PARAM")
}
Expand Down Expand Up @@ -136,10 +157,6 @@ final class ECPublicKeyImpl<Curve: ECCurve>: ECPublicKey {
EVP_PKEY_free(pkey)
}

// - NOTE: Unexpectedly, the output format of EVP_PKEY_todata() is POINT_CONVERSION_COMPRESSED(!) for the pub key
// and therefore cannot be used here. Work around for now is the usage of i2d_PublicKey().
// see: https://github.com/openssl/openssl/issues/16595 and
// https://github.com/openssl/openssl/pull/16624
func rawValue() throws -> Data {
var buffer: UnsafeMutablePointer<UInt8>?
let size = i2d_PublicKey(pkey, &buffer)
Expand All @@ -154,9 +171,7 @@ final class ECPublicKeyImpl<Curve: ECCurve>: ECPublicKey {
}

func compactValue() throws -> Data {
let dup = EVP_PKEY_dup(pkey)
defer { EVP_PKEY_free(dup) }
return try publicKeyCompactDataFromEvpPkey(dup)
try Self(data: rawValue(), pointFormatUncompressed: false).rawValue()
}
}

Expand Down
2 changes: 0 additions & 2 deletions Tests/OpenSSLTests/EC/ECPublicKeyTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ final class ECPublicKeyTests: XCTestCase {
// then
XCTAssertNotNil(sut)
XCTAssertEqual(try sut.rawValue(), pubKeyX962)
XCTAssertEqual(try sut.rawValue(), pubKeyX962)

let expectedCompactKey = try Data(hex: "038634212830DAD457CA05305E6687134166B9C21A65FFEBF555F4E75DFB048888")
XCTAssertEqual(try sut.compactValue(), expectedCompactKey)
Expand All @@ -55,7 +54,6 @@ final class ECPublicKeyTests: XCTestCase {
hex: "048634212830DAD457CA05305E6687134166B9C21A65FFEBF555F4E75DFB04888866E4B6843624CBDA43C97EA89968BC41FD53576F82C03EFA7D601B9FACAC2B29" // swiftlint:disable:this line_length
)
XCTAssertEqual(try sut.rawValue(), expectedPubKeyX962)
XCTAssertEqual(try sut.rawValue(), expectedPubKeyX962)
}

func testBrainpoolP256r1_ThrowsInitEmpty() throws {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ import Foundation
import XCTest

final class BrainpoolP256r1ExtECDSATests: XCTestCase {
func testVerifyBP256r1Signature() {
func testVerifyBP256r1Signature() throws {
// swiftlint:disable line_length
let pubkeyraw =
try! Data(
hex: "049650ac6d4d5b1201de4cffe99db3a2396426a377bc95d9dc466727a2574d7c39643159e578f05a6b607e89afdd5395eeacc8e72714489cac3160c4bb79aa45c6"
)
let pubKey = try! BrainpoolP256r1.Verify.PublicKey(x962: pubkeyraw)
let pubKey = try BrainpoolP256r1.Verify.PublicKey(x962: pubkeyraw)
let message =
"eyJhbGciOiJCUDI1NlIxIiwieDVjIjpbIk1JSUNzVENDQWxpZ0F3SUJBZ0lIQTYxSTVBQ1VqVEFLQmdncWhrak9QUVFEQWpDQmhERUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhNakF3QmdOVkJBc01LVXR2YlhCdmJtVnVkR1Z1TFVOQklHUmxjaUJVWld4bGJXRjBhV3RwYm1aeVlYTjBjblZyZEhWeU1TQXdIZ1lEVlFRRERCZEhSVTB1UzA5TlVDMURRVEV3SUZSRlUxUXRUMDVNV1RBZUZ3MHlNREE0TURRd01EQXdNREJhRncweU5UQTRNRFF5TXpVNU5UbGFNRWt4Q3pBSkJnTlZCQVlUQWtSRk1TWXdKQVlEVlFRS0RCMW5aVzFoZEdscklGUkZVMVF0VDA1TVdTQXRJRTVQVkMxV1FVeEpSREVTTUJBR0ExVUVBd3dKU1VSUUlGTnBaeUF4TUZvd0ZBWUhLb1pJemowQ0FRWUpLeVFEQXdJSUFRRUhBMElBQkpaUXJHMU5XeElCM2t6LzZaMnpvamxrSnFOM3ZKWFozRVpuSjZKWFRYdzVaREZaNVhqd1dtdGdmb212M1ZPVjdxekk1eWNVU0p5c01XREV1M21xUmNhamdlMHdnZW93SFFZRFZSME9CQllFRko4RFZMQVpXVCtCbG9qVEQ0TVQvTmErRVM4WU1EZ0dDQ3NHQVFVRkJ3RUJCQ3d3S2pBb0JnZ3JCZ0VGQlFjd0FZWWNhSFIwY0RvdkwyVm9ZMkV1WjJWdFlYUnBheTVrWlM5dlkzTndMekFNQmdOVkhSTUJBZjhFQWpBQU1DRUdBMVVkSUFRYU1CZ3dDZ1lJS29JVUFFd0VnVXN3Q2dZSUtvSVVBRXdFZ1NNd0h3WURWUjBqQkJnd0ZvQVVLUEQ0NXFuSWQ4eERSZHVhcnRjNmc2d09ENmd3TFFZRkt5UUlBd01FSkRBaU1DQXdIakFjTUJvd0RBd0tTVVJRTFVScFpXNXpkREFLQmdncWdoUUFUQVNDQkRBT0JnTlZIUThCQWY4RUJBTUNCNEF3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnVkJQaEF3eVg4SEFWSDBPMGIzK1ZhenBCQVdrUU5qa0VWUmt2K0VZWDFlOENJRmRuNE8rbml2TStYVmk5eGlLSzRkVzFSN01EMzM0T3BPUFRGamVFaElWViJdfQ.eyJhdXRob3JpemF0aW9uX2VuZHBvaW50IjoiaHR0cDovL2dzdG9wZGgyLnRvcC5sb2NhbDo4NTgwL2F1dGhvcml6YXRpb24iLCJ0b2tlbl9lbmRwb2ludCI6Imh0dHA6Ly9nc3RvcGRoMi50b3AubG9jYWw6ODU4MC90b2tlbiIsImlzc3VlciI6Imh0dHA6Ly9nc3RvcGRoMi50b3AubG9jYWw6ODU4MC9hdXRoL3JlYWxtcy9pZHAiLCJqd2tzX3VyaSI6Imh0dHA6Ly9nc3RvcGRoMi50b3AubG9jYWw6ODU4MC9qd2tzIiwicHVrX3VyaV9hdXRoIjoiaHR0cDovL2dzdG9wZGgyLnRvcC5sb2NhbDo4NTgwL2F1dGhLZXkvandrcy5qc29uIiwicHVrX3VyaV90b2tlbiI6Imh0dHA6Ly9nc3RvcGRoMi50b3AubG9jYWw6ODU4MC90b2tlbktleS9qd2tzLmpzb24iLCJwdWtfdXJpX2Rpc2MiOiJodHRwOi8vZ3N0b3BkaDIudG9wLmxvY2FsOjg1ODAvZGlzY0tleS9qd2tzLmpzb24iLCJzdWJqZWN0X3R5cGVzX3N1cHBvcnRlZCI6WyJwYWlyd2lzZSJdLCJpZF90b2tlbl9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIjpbIkJQMjU2UjEiXSwicmVzcG9uc2VfdHlwZXNfc3VwcG9ydGVkIjpbImNvZGUiXSwic2NvcGVzX3N1cHBvcnRlZCI6WyJvcGVuaWQiLCJlLXJlemVwdCJdLCJyZXNwb25zZV9tb2Rlc19zdXBwb3J0ZWQiOlsicXVlcnkiXSwiZ3JhbnRfdHlwZXNfc3VwcG9ydGVkIjpbImF1dGhvcml6YXRpb25fY29kZSJdLCJhY3JfdmFsdWVzX3N1cHBvcnRlZCI6WyJ1cm46ZWlkYXM6bG9hOmhpZ2giXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9tZXRob2RzX3N1cHBvcnRlZCI6WyJub25lIl19"

Expand Down Expand Up @@ -62,8 +62,8 @@ final class BrainpoolP256r1ExtECDSATests: XCTestCase {
XCTAssertFalse(try pubKey.verify(signature: signature, message: "wrong message".data(using: .utf8)!))
}

func testSignBP256r1() {
let key = try! BrainpoolP256r1.Verify.PrivateKey.generateKey()
func testSignBP256r1() throws {
let key = try BrainpoolP256r1.Verify.PrivateKey.generateKey()
let message =
"eyJhbGciOiJCUDI1NlIxIiwieDVjIjpbIk1JSUNzVENDQWxpZ0F3SUJBZ0lIQTYxSTVBQ1VqVEFLQmdncWhrak9QUVFEQWpDQmhERUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhNakF3QmdOVkJBc01LVXR2YlhCdmJtVnVkR1Z1TFVOQklHUmxjaUJVWld4bGJXRjBhV3RwYm1aeVlYTjBjblZyZEhWeU1TQXdIZ1lEVlFRRERCZEhSVTB1UzA5TlVDMURRVEV3SUZSRlUxUXRUMDVNV1RBZUZ3MHlNREE0TURRd01EQXdNREJhRncweU5UQTRNRFF5TXpVNU5UbGFNRWt4Q3pBSkJnTlZCQVlUQWtSRk1TWXdKQVlEVlFRS0RCMW5aVzFoZEdscklGUkZVMVF0VDA1TVdTQXRJRTVQVkMxV1FVeEpSREVTTUJBR0ExVUVBd3dKU1VSUUlGTnBaeUF4TUZvd0ZBWUhLb1pJemowQ0FRWUpLeVFEQXdJSUFRRUhBMElBQkpaUXJHMU5XeElCM2t6LzZaMnpvamxrSnFOM3ZKWFozRVpuSjZKWFRYdzVaREZaNVhqd1dtdGdmb212M1ZPVjdxekk1eWNVU0p5c01XREV1M21xUmNhamdlMHdnZW93SFFZRFZSME9CQllFRko4RFZMQVpXVCtCbG9qVEQ0TVQvTmErRVM4WU1EZ0dDQ3NHQVFVRkJ3RUJCQ3d3S2pBb0JnZ3JCZ0VGQlFjd0FZWWNhSFIwY0RvdkwyVm9ZMkV1WjJWdFlYUnBheTVrWlM5dlkzTndMekFNQmdOVkhSTUJBZjhFQWpBQU1DRUdBMVVkSUFRYU1CZ3dDZ1lJS29JVUFFd0VnVXN3Q2dZSUtvSVVBRXdFZ1NNd0h3WURWUjBqQkJnd0ZvQVVLUEQ0NXFuSWQ4eERSZHVhcnRjNmc2d09ENmd3TFFZRkt5UUlBd01FSkRBaU1DQXdIakFjTUJvd0RBd0tTVVJRTFVScFpXNXpkREFLQmdncWdoUUFUQVNDQkRBT0JnTlZIUThCQWY4RUJBTUNCNEF3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnVkJQaEF3eVg4SEFWSDBPMGIzK1ZhenBCQVdrUU5qa0VWUmt2K0VZWDFlOENJRmRuNE8rbml2TStYVmk5eGlLSzRkVzFSN01EMzM0T3BPUFRGamVFaElWViJdfQ.eyJhdXRob3JpemF0aW9uX2VuZHBvaW50IjoiaHR0cDovL2dzdG9wZGgyLnRvcC5sb2NhbDo4NTgwL2F1dGhvcml6YXRpb24iLCJ0b2tlbl9lbmRwb2ludCI6Imh0dHA6Ly9nc3RvcGRoMi50b3AubG9jYWw6ODU4MC90b2tlbiIsImlzc3VlciI6Imh0dHA6Ly9nc3RvcGRoMi50b3AubG9jYWw6ODU4MC9hdXRoL3JlYWxtcy9pZHAiLCJqd2tzX3VyaSI6Imh0dHA6Ly9nc3RvcGRoMi50b3AubG9jYWw6ODU4MC9qd2tzIiwicHVrX3VyaV9hdXRoIjoiaHR0cDovL2dzdG9wZGgyLnRvcC5sb2NhbDo4NTgwL2F1dGhLZXkvandrcy5qc29uIiwicHVrX3VyaV90b2tlbiI6Imh0dHA6Ly9nc3RvcGRoMi50b3AubG9jYWw6ODU4MC90b2tlbktleS9qd2tzLmpzb24iLCJwdWtfdXJpX2Rpc2MiOiJodHRwOi8vZ3N0b3BkaDIudG9wLmxvY2FsOjg1ODAvZGlzY0tleS9qd2tzLmpzb24iLCJzdWJqZWN0X3R5cGVzX3N1cHBvcnRlZCI6WyJwYWlyd2lzZSJdLCJpZF90b2tlbl9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIjpbIkJQMjU2UjEiXSwicmVzcG9uc2VfdHlwZXNfc3VwcG9ydGVkIjpbImNvZGUiXSwic2NvcGVzX3N1cHBvcnRlZCI6WyJvcGVuaWQiLCJlLXJlemVwdCJdLCJyZXNwb25zZV9tb2Rlc19zdXBwb3J0ZWQiOlsicXVlcnkiXSwiZ3JhbnRfdHlwZXNfc3VwcG9ydGVkIjpbImF1dGhvcml6YXRpb25fY29kZSJdLCJhY3JfdmFsdWVzX3N1cHBvcnRlZCI6WyJ1cm46ZWlkYXM6bG9hOmhpZ2giXSwidG9rZW5fZW5kcG9pbnRfYXV0aF9tZXRob2RzX3N1cHBvcnRlZCI6WyJub25lIl19" // swiftlint:disable:this line_length
.data(using: .ascii)!
Expand Down
4 changes: 2 additions & 2 deletions scripts/install_openssl
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ echo "ARCHS: $ARCHS"
cd "$(dirname $0)/.."
DIRNAME=$(pwd)

VERSION=${1-"3.0.7"}
VERSION_SHA256_CHECKSUM=${2-"83049d042a260e696f62406ac5c08bf706fd84383f945cf21bd61e9ed95c396e"}
VERSION=${1-"3.1.0"}
VERSION_SHA256_CHECKSUM=${2-"aaa925ad9828745c4cad9d9efeb273deca820f2cdcf2c3ac7d7c1212b7c497b4"}

####################################
OPENSSL_IMAGE="${DIRNAME}/openssl-${VERSION}.tar.gz"
Expand Down

0 comments on commit c7fca4b

Please sign in to comment.