Re: [openssl-users] openssl-users Digest, Vol 28, Issue 21

2017-03-23 Thread Matt Caswell


On 23/03/17 03:47, Kane Huang wrote:
> Hi guys,
> 
> I want to use "multiblock" introduced from 1.0.2 to improve performance
> of ipsec packet process, which use aes_cbc_hmac_sha as main algorithm.
> 
> I have try openssl speed test with  ‘-mb’ and I observe that the test
> code use big  buffer size from 8192 to 131072, that show dramatic
> performance improvement  
> 
> My questions are:
> 
> 1)   Can i get so much improvement  when use multiblock on single
> stream with small data ,like date with size 512 or 1024 bytes.

Multiblock works by sending multiple TLS records to be encrypted in one
go - either 4 or 8 records depending on how much data you send in one
go. Basically it looks at the amount of data you passed to SSL_write()
and sees how many records it needs to divide it up into (with a record
being max_send_fragment bytes long; by default max_send_fragment is 16k
although you can change that value). If there are at least 4 records
worth of data then multiblock will be used (assuming the negotiated
ciphersuite supports it).

A stream of small records like you describe would not satisfy the above
criteria, so multi-block would not kick in.


> 
> 2)   How to use the multiblock APIs? From speed.c , I saw some APIs
> call like  EVP_CIPHER_CTX_ctrl() with type
> EVP_CTRL_TLS1_1_MULTIBLOCK_AAD and EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT,
> is there any document regarding these?

Unfortunately not, no. However it depends on what you are trying to
achieve. If you just want to use the built-in ciphersuites that support
this then you need to:
1) Make sure you are on a platform that supports it (IIRC AESNI support
is required for these to work - Andy Polyakov can probably clarify)
2) Ensure TLS negotiates a multiblock capable ciphersuite
3) Ensure your application sends sufficient data in one go for
multi-block to kick in

If you satisfy all of the above then no API is required. It should just
work.

If, on the other hand, you want to implement a new cipher that supports
multiblock then you will probably want to do it as an engine and use the
implementations of e_aes_cbc_hmac_sha1.c and e_aes_cbc_hmac_sha256.c as
a guide. Ciphers that implement multiblock need to be TLS "aware", in
that they must output the appropriate record headers too. If you're
going down this route then I'd like to point out the similar facility
that we have in OpenSSL 1.1.0 known as pipelining:

https://www.openssl.org/docs/man1.1.0/ssl/SSL_set_max_pipelines.html

This gives you a bit more control over how the data is split up into
records and the ciphers do not need to be TLS aware. Also both
encryption and decryption is supported. However there are no built-in
ciphersuites that use this as yet.

Matt
-- 
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users


Re: [openssl-users] openssl-users Digest, Vol 28, Issue 21

2017-03-22 Thread Kane Huang
Hi guys,
I want to use "multiblock" introduced from 1.0.2 to improve performance of 
ipsec packet process, which use aes_cbc_hmac_sha as main algorithm.
I have try openssl speed test with  ‘-mb’ and I observe that the test code use 
big  buffer size from 8192 to 131072, that show dramatic performance improvement
My questions are:

1)   Can i get so much improvement  when use multiblock on single stream 
with small data ,like date with size 512 or 1024 bytes.

2)   How to use the multiblock APIs? From speed.c , I saw some APIs call 
like  EVP_CIPHER_CTX_ctrl() with type EVP_CTRL_TLS1_1_MULTIBLOCK_AAD and 
EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT, is there any document regarding these?

Many thanks in advance for any advice here!


Thanks,
kane
Software developer, Ericsson
-- 
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users


Re: [openssl-users] openssl-users Digest, Vol 28, Issue 21

2017-03-22 Thread Christian Adja via openssl-users
Ok, thanks but the key is not in DER but COER, there are ways to transform it 
in DER.
Thanks
Best regards
Christian Adja
 

Il Mercoledì 22 Marzo 2017 20:08, Richard Levitte  ha 
scritto:
 

 In message <787239451.2530096.1490206287...@mail.yahoo.com> on Wed, 22 Mar 
2017 18:11:27 + (UTC), Christian Adja  said:

christian_adja> Thanks for the response, but haven't the evp_pkey struct of the 
public
christian_adja> key. I' ve only the an bytes string that i retrieved from IEEE 
cert
christian_adja> with "PEM_bytes_read_bio()". Now in want to form the ec_key 
struct and
christian_adja> then the evp_pkey struct.

I'm not sure how IEEE certs differ from X.509 certs...  if they don't,
you're better off reading the cert with PEM_read_bio_X509() and
extracting the public key with X509_get0_pubkey() or X509_get0_pubkey().

If IEEE certs differ in format, you must first know the exact byte
content, where the public key is in there, make sure it's encoded in
DER, and use d2i_EC_PUBKEY() to make a EC_KEY from those bytes.

Cheers,
Richard

-- 
Richard Levitte        levi...@openssl.org
OpenSSL Project        http://www.openssl.org/~levitte/


   -- 
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users


Re: [openssl-users] openssl-users Digest, Vol 28, Issue 21

2017-03-22 Thread Richard Levitte
In message <787239451.2530096.1490206287...@mail.yahoo.com> on Wed, 22 Mar 2017 
18:11:27 + (UTC), Christian Adja  said:

christian_adja> Thanks for the response, but haven't the evp_pkey struct of the 
public
christian_adja> key. I' ve only the an bytes string that i retrieved from IEEE 
cert
christian_adja> with "PEM_bytes_read_bio()". Now in want to form the ec_key 
struct and
christian_adja> then the evp_pkey struct.

I'm not sure how IEEE certs differ from X.509 certs...  if they don't,
you're better off reading the cert with PEM_read_bio_X509() and
extracting the public key with X509_get0_pubkey() or X509_get0_pubkey().

If IEEE certs differ in format, you must first know the exact byte
content, where the public key is in there, make sure it's encoded in
DER, and use d2i_EC_PUBKEY() to make a EC_KEY from those bytes.

Cheers,
Richard

-- 
Richard Levitte levi...@openssl.org
OpenSSL Project http://www.openssl.org/~levitte/
-- 
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users


Re: [openssl-users] openssl-users Digest, Vol 28, Issue 21

2017-03-22 Thread Christian Adja via openssl-users
cheers,
Thanks for the response, but haven't the evp_pkey struct of the public key. I' 
ve only the an bytes string that i retrieved from IEEE cert with 
"PEM_bytes_read_bio()". Now in want to form the ec_key struct and then the  
evp_pkey struct.
Thanks
Best regards
Christian Adja
 

Il Mercoledì 22 Marzo 2017 19:01, Ethan Rahn  ha 
scritto:
 

 Couldn't you just use EVP_PKEY_get1_EC_KEY?
https://www.openssl.org/docs/man1.0.2/crypto/EVP_PKEY_get1_EC_KEY.html

Cheers,
Ethan
On Wed, Mar 22, 2017 at 10:48 AM, Christian Adja via openssl-users 
 wrote:

Good evening everybody,I need help about to transform public key (unsigned char 
*) retrieved from IEEE cert in EVP_PKEY o EC_KEY. The public key is an 
ecdsaNistP256 in compressed form (compressedy1). 
The public key form in hex = 
|00|80|83|x point (32 bytes)|
Thanks,
Best Regards
 

Il Mercoledì 15 Marzo 2017 22:23, "openssl-users-request@ openssl.org" 
 ha scritto:
 

 Send openssl-users mailing list submissions to
    openssl-users@openssl.org

To subscribe or unsubscribe via the World Wide Web, visit
    https://mta.openssl.org/ mailman/listinfo/openssl-users
or, via email, send a message with subject or body 'help' to
    openssl-users-request@openssl. org

You can reach the person managing the list at
    openssl-users-owner@openssl. org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of openssl-users digest..."


Today's Topics:

  1. Request for adding new ciphers (Christian Adja)
  2. Re: Request for adding new ciphers (Matt Caswell)
  3. Generating dh parameters multithreaded? (Joseph Southwell)
  4. Re: Generating dh parameters multithreaded? (Salz, Rich)
  5. OpenSSL Certificate Cross Signing (Moritz Wirth)
  6. Re: PKCS#7 (val?ry)
  7. Re: Generating dh parameters multithreaded? (Joseph Southwell)
  8. Re: Generating dh parameters multithreaded? (Salz, Rich)


-- -- --

Message: 1
Date: Wed, 15 Mar 2017 18:03:44 + (UTC)
From: Christian Adja 
To: "openssl-users@openssl.org" 
Subject: [openssl-users] Request for adding new ciphers
Message-ID: <1576557894.1332584. 1489601024...@mail.yahoo.com>
Content-Type: text/plain; charset="utf-8"

Hi everyone,
Someone can help for adding the ciphersuite " ECDHE_ECDSA_WITH_AES_128_CCM " 
and "ECDHE_ECDSA_WITH_AES_256_CCM " in openssl? 
I tried adding in the file tls1.h??? # define TLS1_CK_ECDHE_ECDSA_WITH_AES_ 
128_CCM??? 0x0300C0AC
??? # define TLS1_CK_ECDHE_ECDSA_WITH_AES_ 256_CCM??? 0x0300C0AD
And modifing the file? ssl_ciph.c the functions??? ssl_load_ciphers() ... And 
modifing the file evp_cipher.c and sssl_locl.cand finaly ssl_algs.c.
There are no way to make it works. It continue to give me? error: 
ssl3_get_client_hello:no shared cipher:s3_srvr.c:1420
thanks.


-- next part --
An HTML attachment was scrubbed...
URL: 

--

Message: 2
Date: Wed, 15 Mar 2017 18:18:52 +
From: Matt Caswell 
To: openssl-users@openssl.org
Subject: Re: [openssl-users] Request for adding new ciphers
Message-ID: 
Content-Type: text/plain; charset=windows-1252



On 15/03/17 18:03, Christian Adja via openssl-users wrote:
> Hi everyone,
> 
> Someone can help for adding the ciphersuite "
> ECDHE_ECDSA_WITH_AES_128_CCM " and "ECDHE_ECDSA_WITH_AES_256_CCM " in
> openssl?
> I tried adding in the file tls1.h
>    # define TLS1_CK_ECDHE_ECDSA_WITH_AES_ 128_CCM            0x0300C0AC
>    # define TLS1_CK_ECDHE_ECDSA_WITH_AES_ 256_CCM            0x0300C0AD
> 
> And modifing the file  ssl_ciph.c the functions
>    ssl_load_ciphers() ...
> And modifing the file evp_cipher.c and sssl_locl.c
> and finaly ssl_algs.c.
> 
> There are no way to make it works. It continue to give me  error:
> ssl3_get_client_hello:no shared cipher:s3_srvr.c:1420


These ciphersuites already exist in OpenSSL (from version 1.1.0).

Matt



--

Message: 3
Date: Wed, 15 Mar 2017 14:18:38 -0400
From: Joseph Southwell 
To: openssl-users@openssl.org
Subject: [openssl-users] Generating dh parameters multithreaded?
Message-ID: <56015584-6EDC-4BD6-AA21- f27835281...@serengeti.com>
Content-Type: text/plain; charset="utf-8"

On any new install of our software we generate new dh parameters as follows?

DH *dh = DH_new();
!DH_generate_parameters_ex(dh, 2048, 2, NULL);
int codes = 0;
DH_check(dh, );
DH_generate_key(dh);

It takes a long time. Is there some way to have it use all available cores 
instead of just the one?
-- next part --
An HTML attachment was scrubbed...
URL: 

Re: [openssl-users] openssl-users Digest, Vol 28, Issue 21

2017-03-22 Thread Christian Adja via openssl-users
Good evening everybody,I need help about to transform public key (unsigned char 
*) retrieved from IEEE cert in EVP_PKEY o EC_KEY. The public key is an 
ecdsaNistP256 in compressed form (compressedy1). 
The public key form in hex = 
|00|80|83|x point (32 bytes)|
Thanks,
Best Regards
 

Il Mercoledì 15 Marzo 2017 22:23, "openssl-users-requ...@openssl.org" 
 ha scritto:
 

 Send openssl-users mailing list submissions to
    openssl-users@openssl.org

To subscribe or unsubscribe via the World Wide Web, visit
    https://mta.openssl.org/mailman/listinfo/openssl-users
or, via email, send a message with subject or body 'help' to
    openssl-users-requ...@openssl.org

You can reach the person managing the list at
    openssl-users-ow...@openssl.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of openssl-users digest..."


Today's Topics:

  1. Request for adding new ciphers (Christian Adja)
  2. Re: Request for adding new ciphers (Matt Caswell)
  3. Generating dh parameters multithreaded? (Joseph Southwell)
  4. Re: Generating dh parameters multithreaded? (Salz, Rich)
  5. OpenSSL Certificate Cross Signing (Moritz Wirth)
  6. Re: PKCS#7 (val?ry)
  7. Re: Generating dh parameters multithreaded? (Joseph Southwell)
  8. Re: Generating dh parameters multithreaded? (Salz, Rich)


--

Message: 1
Date: Wed, 15 Mar 2017 18:03:44 + (UTC)
From: Christian Adja 
To: "openssl-users@openssl.org" 
Subject: [openssl-users] Request for adding new ciphers
Message-ID: <1576557894.1332584.1489601024...@mail.yahoo.com>
Content-Type: text/plain; charset="utf-8"

Hi everyone,
Someone can help for adding the ciphersuite " ECDHE_ECDSA_WITH_AES_128_CCM " 
and "ECDHE_ECDSA_WITH_AES_256_CCM " in openssl? 
I tried adding in the file tls1.h??? # define 
TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM??? 0x0300C0AC
??? # define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM??? 0x0300C0AD
And modifing the file? ssl_ciph.c the functions??? ssl_load_ciphers() ... And 
modifing the file evp_cipher.c and sssl_locl.cand finaly ssl_algs.c.
There are no way to make it works. It continue to give me? error: 
ssl3_get_client_hello:no shared cipher:s3_srvr.c:1420
thanks.


-- next part --
An HTML attachment was scrubbed...
URL: 


--

Message: 2
Date: Wed, 15 Mar 2017 18:18:52 +
From: Matt Caswell 
To: openssl-users@openssl.org
Subject: Re: [openssl-users] Request for adding new ciphers
Message-ID: 
Content-Type: text/plain; charset=windows-1252



On 15/03/17 18:03, Christian Adja via openssl-users wrote:
> Hi everyone,
> 
> Someone can help for adding the ciphersuite "
> ECDHE_ECDSA_WITH_AES_128_CCM " and "ECDHE_ECDSA_WITH_AES_256_CCM " in
> openssl?
> I tried adding in the file tls1.h
>    # define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM            0x0300C0AC
>    # define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM            0x0300C0AD
> 
> And modifing the file  ssl_ciph.c the functions
>    ssl_load_ciphers() ...
> And modifing the file evp_cipher.c and sssl_locl.c
> and finaly ssl_algs.c.
> 
> There are no way to make it works. It continue to give me  error:
> ssl3_get_client_hello:no shared cipher:s3_srvr.c:1420


These ciphersuites already exist in OpenSSL (from version 1.1.0).

Matt



--

Message: 3
Date: Wed, 15 Mar 2017 14:18:38 -0400
From: Joseph Southwell 
To: openssl-users@openssl.org
Subject: [openssl-users] Generating dh parameters multithreaded?
Message-ID: <56015584-6edc-4bd6-aa21-f27835281...@serengeti.com>
Content-Type: text/plain; charset="utf-8"

On any new install of our software we generate new dh parameters as follows?

DH *dh = DH_new();
!DH_generate_parameters_ex(dh, 2048, 2, NULL);
int codes = 0;
DH_check(dh, );
DH_generate_key(dh);

It takes a long time. Is there some way to have it use all available cores 
instead of just the one?
-- next part --
An HTML attachment was scrubbed...
URL: 


--

Message: 4
Date: Wed, 15 Mar 2017 18:21:05 +
From: "Salz, Rich" 
To: "openssl-users@openssl.org" 
Subject: Re: [openssl-users] Generating dh parameters multithreaded?
Message-ID:
    <9ff829cd17f74e4a910ca067196f7...@usma1ex-dag1mb1.msg.corp.akamai.com>
Content-Type: text/plain; charset="utf-8"

> It takes a long time. Is there some way to have it use all available cores 
> instead of just the one?

You'll have to write the code to do that parallelism yourself.