projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Replace pointers to cipher_t/digest_t in connection_t with structs.
[tinc]
/
src
/
protocol_key.c
diff --git
a/src/protocol_key.c
b/src/protocol_key.c
index
a957780
..
f045009
100644
(file)
--- a/
src/protocol_key.c
+++ b/
src/protocol_key.c
@@
-340,13
+340,13
@@
bool send_ans_key(node_t *to) {
randomize(key, keylen);
randomize(key, keylen);
- cipher_
close(
to->incipher);
- digest_
close(
to->indigest);
+ cipher_
free(&
to->incipher);
+ digest_
free(&
to->indigest);
if(myself->incipher) {
if(myself->incipher) {
- to->incipher = cipher_
open_by_nid(cipher_get_nid(myself->incipher)
);
+ to->incipher = cipher_
alloc(
);
- if(!
to->incipher
) {
+ if(!
cipher_open_by_nid(to->incipher, cipher_get_nid(myself->incipher))
) {
abort();
}
abort();
}
@@
-356,10
+356,11
@@
bool send_ans_key(node_t *to) {
}
if(myself->indigest) {
}
if(myself->indigest) {
- to->indigest = digest_open_by_nid(digest_get_nid(myself->indigest),
- digest_length(myself->indigest));
+ to->indigest = digest_alloc();
- if(!to->indigest) {
+ if(!digest_open_by_nid(to->indigest,
+ digest_get_nid(myself->indigest),
+ digest_length(myself->indigest))) {
abort();
}
abort();
}
@@
-459,8
+460,8
@@
bool ans_key_h(connection_t *c, const char *request) {
#ifndef DISABLE_LEGACY
/* Don't use key material until every check has passed. */
#ifndef DISABLE_LEGACY
/* Don't use key material until every check has passed. */
- cipher_
close(
from->outcipher);
- digest_
close(
from->outdigest);
+ cipher_
free(&
from->outcipher);
+ digest_
free(&
from->outdigest);
#endif
if(!from->status.sptps) {
#endif
if(!from->status.sptps) {
@@
-555,7
+556,10
@@
bool ans_key_h(connection_t *c, const char *request) {
/* Check and lookup cipher and digest algorithms */
if(cipher) {
/* Check and lookup cipher and digest algorithms */
if(cipher) {
- if(!(from->outcipher = cipher_open_by_nid(cipher))) {
+ from->outcipher = cipher_alloc();
+
+ if(!cipher_open_by_nid(from->outcipher, cipher)) {
+ cipher_free(&from->outcipher);
logger(DEBUG_ALWAYS, LOG_ERR, "Node %s (%s) uses unknown cipher!", from->name, from->hostname);
return false;
}
logger(DEBUG_ALWAYS, LOG_ERR, "Node %s (%s) uses unknown cipher!", from->name, from->hostname);
return false;
}
@@
-564,7
+568,10
@@
bool ans_key_h(connection_t *c, const char *request) {
}
if(digest) {
}
if(digest) {
- if(!(from->outdigest = digest_open_by_nid(digest, maclength))) {
+ from->outdigest = digest_alloc();
+
+ if(!digest_open_by_nid(from->outdigest, digest, maclength)) {
+ digest_free(&from->outdigest);
logger(DEBUG_ALWAYS, LOG_ERR, "Node %s (%s) uses unknown digest!", from->name, from->hostname);
return false;
}
logger(DEBUG_ALWAYS, LOG_ERR, "Node %s (%s) uses unknown digest!", from->name, from->hostname);
return false;
}