annotate src/core/ngx_sha1.h @ 7687:69345a26ba69 quic

Split transport and crypto parts into separate files. New files: src/event/ngx_event_quic_protection.h src/event/ngx_event_quic_protection.c The protection.h header provides interface to the crypto part of the QUIC: 2 functions to initialize corresponding secrets: ngx_quic_set_initial_secret() ngx_quic_set_encryption_secret() and 2 functions to deal with packet processing: ngx_quic_encrypt() ngx_quic_decrypt() Also, structures representing secrets are defined there. All functions require SSL connection and a pool, only crypto operations inside, no access to nginx connections or events. Currently pool->log is used for the logging (instead of original c->log).
author Vladimir Homutov <vl@nginx.com>
date Mon, 16 Mar 2020 19:00:47 +0300
parents 9eefb38f0005
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1573
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
2 /*
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
3 * Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 1598
diff changeset
4 * Copyright (C) Nginx, Inc.
1573
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5 */
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
6
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #ifndef _NGX_SHA1_H_INCLUDED_
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 #define _NGX_SHA1_H_INCLUDED_
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 #include <ngx_config.h>
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13 #include <ngx_core.h>
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15
6586
1064ea81ed3a An internal SHA1 implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
16 typedef struct {
1064ea81ed3a An internal SHA1 implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
17 uint64_t bytes;
1064ea81ed3a An internal SHA1 implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
18 uint32_t a, b, c, d, e, f;
1064ea81ed3a An internal SHA1 implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
19 u_char buffer[64];
1064ea81ed3a An internal SHA1 implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
20 } ngx_sha1_t;
1064ea81ed3a An internal SHA1 implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
21
1064ea81ed3a An internal SHA1 implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
22
1064ea81ed3a An internal SHA1 implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
23 void ngx_sha1_init(ngx_sha1_t *ctx);
1064ea81ed3a An internal SHA1 implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
24 void ngx_sha1_update(ngx_sha1_t *ctx, const void *data, size_t size);
1064ea81ed3a An internal SHA1 implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
25 void ngx_sha1_final(u_char result[20], ngx_sha1_t *ctx);
1064ea81ed3a An internal SHA1 implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
26
1064ea81ed3a An internal SHA1 implementation.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
27
1573
8f911d6d0d70 ngx_sha1.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
28 #endif /* _NGX_SHA1_H_INCLUDED_ */