[openssl-users] Openssl asynchronous operation in real network

Ananthu Unnikrishnan ananthuu741 at gmail.com
Mon Jan 7 12:55:29 UTC 2019


Hi all,

Adding more details to the previous mail. We have edited the OpenSSL code
for implementing the polling for changed fd's as in OpenSSL speed command.
Attached the code snippet of the same along with this mail.
Mentioned below some observations which found doubtful:

1) We have got prints in ASYNC_FINISH case, before getting print in
ASYNC_PAUSE case. Attaching the log also, so you can understand easily.
2) Shown below the code snippet which we have written to provide a write on
fd.

if ((waitctx = ASYNC_get_wait_ctx((ASYNC_JOB *)job)) == NULL) {
        printf("In dynamic engine | waitctx == NULL : %d\n", __LINE__);
        return ret;
    }

    printf("\n----- In dynamic engine | After pausing | job is %lx |
waitctx in resume job %lx |-----\n", job, waitctx);

        if ((ret = ASYNC_WAIT_CTX_get_fd(waitctx, engine_id, &efd,
                              &custom)) > 0) {
        if (write(efd, &buf, sizeof(uint64_t)) == -1) {
            printf("\nFailed to write\n");
        }
    }

Here waitctx is getting NULL when we tried to fetch waitctx using
ASYNC_get_wait_ctx(). We have printed data of sizeof(ASYNC_JOB) ie.1176
bytes contained in the job address from the engine,  we got correct data
before calling ASYNC_pause() and but got half data zero data when we tried
to access the same address after ASYNC_pause().

Attaching both job structure contents before and after calling
ASYNC_pause(). Also, we got the correct data in the same address when we
have printed from ssl_start_async_job() before polling starts, where we
have started the async_job
.
The prints starting with "In dynamic engine" are prints inside the engine,
rest prints are from ss/ssl_lib.c. Kindly check this and please point out
if anything is wrong somewhere. Thanks in advance.


On Sun, Jan 6, 2019 at 10:30 AM Ananthu Unnikrishnan <ananthuu741 at gmail.com>
wrote:

> Hi all,
>
>        We have implemented a dynamic engine and tested in the async mode
> using OpenSSL speed command. But in a real network scenario, we have seen
> only starting the async_job(in file ssl/ssl_lib.c, function:
> ssl_start_async_job) in the OpenSSL. We haven't seen polling async_fd's for
> resuming the job as in apps/speed.c(in speed command case).
>         So can anyone please suggest any solution for resuming the
> async_jobs in real network scenario? Thanks in advance.
>
>
>
>

-- 
With best Regards,

         Ananthu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20190107/189e5a07/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ASYNC_JOB_contents_after_pause
Type: application/octet-stream
Size: 3528 bytes
Desc: not available
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20190107/189e5a07/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ASYNC_JOB_contents_before_pause
Type: application/octet-stream
Size: 3528 bytes
Desc: not available
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20190107/189e5a07/attachment-0004.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: log_async_job
Type: application/octet-stream
Size: 543 bytes
Desc: not available
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20190107/189e5a07/attachment-0005.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: code_snippet_ssl_lib.c
Type: text/x-csrc
Size: 3628 bytes
Desc: not available
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20190107/189e5a07/attachment-0001.c>


More information about the openssl-users mailing list