diff options
author | André Klitzing <aklitzing@gmail.com> | 2014-11-18 10:18:18 +0100 |
---|---|---|
committer | André Klitzing <aklitzing@gmail.com> | 2015-01-18 10:18:43 +0100 |
commit | 962ea5690cb9351822c30da534ecae7aeeba667d (patch) | |
tree | c3fef960ae04c61bd55426cc05c7a910b8b48f52 /tests/auto/network/ssl/qsslkey/keys | |
parent | a6a865e24999bf878f6f80341b7fc14f2b67a05e (diff) |
Add elliptic curve support to QSsl
Add possibility to get length and other information of EC based
certificates. Also it is possible to parse those public/private
keys from PEM and DER encoded files.
Based on patch by Remco Bloemen
[ChangeLog][QtNetwork][SSL/TLS support] It is now possible to
parse elliptic curve certificates.
Change-Id: I4b11f726296aecda89c3cbd195d7c817ae6fc47b
Task-number: QTBUG-18972
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/network/ssl/qsslkey/keys')
13 files changed, 51 insertions, 0 deletions
diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1.der Binary files differnew file mode 100644 index 0000000000..96bd7e5802 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1.der diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1.pem new file mode 100644 index 0000000000..9719604a5b --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-224-secp224r1.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MGgCAQEEHO64tAcs1VO7jI5uxJWVZ4Vl2Ich+pv8ctBzuaigBwYFK4EEACGhPAM6 +AATCe752GB/gfLn631dS6JYBBL+YcYeSakOWm/LnAuzyvtNlMDXWxmGpJScDcqYT +okUBHW8YZbhj2A== +-----END EC PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-256-prime256v1.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-256-prime256v1.der Binary files differnew file mode 100644 index 0000000000..410ad8e950 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-256-prime256v1.der diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-256-prime256v1.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-256-prime256v1.pem new file mode 100644 index 0000000000..6a8af58066 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-256-prime256v1.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIPgxX3TR74wCm/Ivz0uEtk0cumCVxmKbd5Vf0p+fV84toAoGCCqGSM49 +AwEHoUQDQgAEVtbEzyqqHhBSH7Dsx8YVaC0YcvhvBA06fcva1vHZV4hJj7GL6yaO +qjSIot2QW79M4ZoVFCu9GmOW+w+mjwMqNQ== +-----END EC PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-384-secp384r1.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-384-secp384r1.der Binary files differnew file mode 100644 index 0000000000..f9663cbf43 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-384-secp384r1.der diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-384-secp384r1.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-384-secp384r1.pem new file mode 100644 index 0000000000..53be8dfb52 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-384-secp384r1.pem @@ -0,0 +1,6 @@ +-----BEGIN EC PRIVATE KEY----- +MIGkAgEBBDDRnUOmMxV2R44q5RoM4ldm9A+5T4Xxzp6hWdRWOdhkIozo5GtNnYX8 +ZI5P3zTywD+gBwYFK4EEACKhZANiAAS/u72YC+dGs8D8bH+zRnneVMNPfGKeQrdt +avEiVfKO7nmGdPu7KK9HDQPiKbWc4Yxtn4n7tsKMKo4adnThakcjZxuCIVjmdHIP +9Wy7ZWeOaHi32MLHWQqh0z2elC92SmM= +-----END EC PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pub-224-secp224r1.der b/tests/auto/network/ssl/qsslkey/keys/ec-pub-224-secp224r1.der Binary files differnew file mode 100644 index 0000000000..006a99437b --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pub-224-secp224r1.der diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pub-224-secp224r1.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pub-224-secp224r1.pem new file mode 100644 index 0000000000..901d69d424 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pub-224-secp224r1.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAEwnu+dhgf4Hy5+t9XUuiWAQS/mHGHkmpD +lpvy5wLs8r7TZTA11sZhqSUnA3KmE6JFAR1vGGW4Y9g= +-----END PUBLIC KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pub-256-prime256v1.der b/tests/auto/network/ssl/qsslkey/keys/ec-pub-256-prime256v1.der Binary files differnew file mode 100644 index 0000000000..82d3d462d9 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pub-256-prime256v1.der diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pub-256-prime256v1.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pub-256-prime256v1.pem new file mode 100644 index 0000000000..76ec2d4b0a --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pub-256-prime256v1.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVtbEzyqqHhBSH7Dsx8YVaC0Ycvhv +BA06fcva1vHZV4hJj7GL6yaOqjSIot2QW79M4ZoVFCu9GmOW+w+mjwMqNQ== +-----END PUBLIC KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pub-384-secp384r1.der b/tests/auto/network/ssl/qsslkey/keys/ec-pub-384-secp384r1.der Binary files differnew file mode 100644 index 0000000000..aee76614f2 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pub-384-secp384r1.der diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pub-384-secp384r1.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pub-384-secp384r1.pem new file mode 100644 index 0000000000..ec69ee21a6 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pub-384-secp384r1.pem @@ -0,0 +1,5 @@ +-----BEGIN PUBLIC KEY----- +MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEv7u9mAvnRrPA/Gx/s0Z53lTDT3xinkK3 +bWrxIlXyju55hnT7uyivRw0D4im1nOGMbZ+J+7bCjCqOGnZ04WpHI2cbgiFY5nRy +D/Vsu2Vnjmh4t9jCx1kKodM9npQvdkpj +-----END PUBLIC KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/genkeys.sh b/tests/auto/network/ssl/qsslkey/keys/genkeys.sh index c9f2406cad..279e71e561 100755 --- a/tests/auto/network/ssl/qsslkey/keys/genkeys.sh +++ b/tests/auto/network/ssl/qsslkey/keys/genkeys.sh @@ -72,3 +72,25 @@ do echo -e "\ngenerating DSA public key to DER file ..." openssl dsa -in dsa-pri-$size.pem -pubout -out dsa-pub-$size.der -outform DER done + +#--- EC ---------------------------------------------------------------------------- +# Note: EC will be generated with pre-defined curves. You can check supported curves +# with openssl ecparam -list_curves. +# If OpenSSL 1.0.2 is available brainpool should be added! +# brainpoolP256r1 brainpoolP384r1 brainpoolP512r1 +for curve in secp224r1 prime256v1 secp384r1 +do + size=`tr -cd 0-9 <<< $curve` + size=${size::-1} # remove last number of curve name as we need bit size only + echo -e "\ngenerating EC private key to PEM file ..." + openssl ecparam -name $curve -genkey -noout -out ec-pri-$size-$curve.pem + + echo -e "\ngenerating EC private key to DER file ..." + openssl ec -in ec-pri-$size-$curve.pem -out ec-pri-$size-$curve.der -outform DER + + echo -e "\ngenerating EC public key to PEM file ..." + openssl ec -in ec-pri-$size-$curve.pem -pubout -out ec-pub-$size-$curve.pem + + echo -e "\ngenerating EC public key to DER file ..." + openssl ec -in ec-pri-$size-$curve.pem -pubout -out ec-pub-$size-$curve.der -outform DER +done |