Skip to contentSkip to conversation

Question about async operations

DISCUSSION Dimitrios Siganos 2 participants 2 messages Mar 4, 2010 – Mar 5, 2010 Crypto API

lore
Share & tools
lore
#0 lore raw

Hi,

I have a question about the asynchronous characteristics of the crypto api.

1) crypto_alloc_hash("sha1", 0, CRYPTO_ALG_ASYNC), does this code create an asynchronous sha1 transform?

2) crypto_alloc_hash("sha1", 0, 0), does this code create a synchronous sha1 transform?

3) Is synchronous taken to mean the follwoing? When the function returns (and is successful) the result is already computed and placed at the destination.

4) Is asynchronous taken to mean the following? "When the function returns (and is successful) we know that a request has been posted for the operation to take place but we have no guarantees that the operation has completed.

5) If the answer to the above is yes then how can the following style of code work? I see such code in many places:
crypto_alloc_hash("sha1", 0, CRYPTO_ALG_ASYNC);
crypto_hash_init(&desc);
rc = crypto_hash_update(&desc, &sg, len);
rc = crypto_hash_final(&desc, dst);
now_use_dst(dst);
How can we know that the dst has the right contents when we call "now_use_dst(dst)"? Is there something that I am missing?

Regards,
Dimitris

maintainer
#1 lore raw
Quoted 6 lines · Dimitrios Siganos

Hi,

I have a question about the asynchronous characteristics of the crypto api.

1) crypto_alloc_hash("sha1", 0, CRYPTO_ALG_ASYNC), does this code create an asynchronous sha1 transform?

crypto_alloc_hash is obsolete. New code should either use shash or ahash. Only the latter supports async operations.

You can look at crypto/authenc.c for an example of how it's used.

Cheers,

Signature · 4 lines
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt