summaryrefslogtreecommitdiff
path: root/curve.h
blob: 1b3a9195dddb867f1170c781f469dfbb8377e73f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef CURVE_H
#define CURVE_H

#include "locking.h"
#include "built_in.h"
#include "ioops.h"
#include "rnd.h"
#include "taia.h"
#include "crypto.h"

struct curve25519_proto {
	unsigned char enonce[crypto_box_noncebytes] __aligned_16;
	unsigned char dnonce[crypto_box_noncebytes] __aligned_16;
	unsigned char key[crypto_box_beforenmbytes] __aligned_16;
};

struct curve25519_struct {
	unsigned char *enc, *dec;
	size_t enc_size, dec_size;
	struct spinlock enc_lock, dec_lock;
};

extern void curve25519_selftest(void);

extern struct curve25519_struct *curve25519_tfm_alloc(void);
extern void curve25519_tfm_free(struct curve25519_struct *tfm);
extern void curve25519_tfm_free_void(void *tfm);

extern void curve25519_proto_init(struct curve25519_proto *proto,
				  unsigned char *pubkey_remote, size_t len);
extern int curve25519_pubkey_hexparse_32(unsigned char *bin, size_t blen,
					 const char *ascii, size_t alen);

extern ssize_t curve25519_encode(struct curve25519_struct *curve,
				 struct curve25519_proto *proto,
				 unsigned char *plaintext, size_t size,
				 unsigned char **ciphertext);
extern ssize_t curve25519_decode(struct curve25519_struct *curve,
				 struct curve25519_proto *proto,
				 unsigned char *ciphertext, size_t size,
				 unsigned char **plaintext,
				 struct taia *arrival_taia);

#endif /* CURVE_H */
i/linux/net-next.git/commit/sound/usb/misc/Makefile?id=3e4f7a4956e54143f7fc15c636158ad4166d219d'>3e4f7a4956e54143f7fc15c636158ad4166d219d (diff)
Merge branch 'rcu-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull RCU fixes from Ingo Molnar: "This fixes sporadic ACPI related hangs in synchronize_rcu() that were caused by the ACPI code mistakenly relying on an aspect of RCU that was neither promised to work nor reliable but which happened to work - until in v4.9 we changed the RCU implementation, which made the hangs more prominent. Since the mis-use of the RCU facility wasn't properly detected and prevented either, these fixes make the RCU side work reliably instead of working around the problem in the ACPI code. Hence the slightly larger diffstat that goes beyond the normal scope of RCU fixes in -rc kernels" * 'rcu-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: rcu: Narrow early boot window of illegal synchronous grace periods rcu: Remove cond_resched() from Tiny synchronize_sched()
Diffstat (limited to 'sound/usb/misc/Makefile')