projects
/
freeradius.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
452379b
)
hex for nulls and lulz
author
Sam Hartman
<hartmans@debian.org>
Thu, 4 Apr 2013 09:42:58 +0000
(
05:42
-0400)
committer
Sam Hartman
<hartmans@debian.org>
Tue, 13 Aug 2013 15:45:47 +0000
(11:45 -0400)
src/main/tls.c
patch
|
blob
|
history
diff --git
a/src/main/tls.c
b/src/main/tls.c
index
2be5208
..
4b09393
100644
(file)
--- a/
src/main/tls.c
+++ b/
src/main/tls.c
@@
-95,15
+95,20
@@
static unsigned int psk_server_callback(SSL *ssl, const char *identity,
FR_TLS_EX_INDEX_REQUEST);
if (request) {
VALUE_PAIR *vp;
FR_TLS_EX_INDEX_REQUEST);
if (request) {
VALUE_PAIR *vp;
+ char psk_buffer[PSK_MAX_PSK_LEN];
+ size_t hex_len = 0;
+ rad_assert(psk_len <= PSK_MAX_PSK_LEN);
vp = radius_pairmake(request, &request->config_items,
"tls-psk-identity",
identity, T_OP_SET);
if (vp) {
if (identity_is_safe(identity))
vp = radius_pairmake(request, &request->config_items,
"tls-psk-identity",
identity, T_OP_SET);
if (vp) {
if (identity_is_safe(identity))
- psk_len = radius_xlat((char *) psk, max_psk_len,
- "%{psksql:select key from psk_keys where keyid = '%{control:tls-psk-identity}';}",
+ hex_len = radius_xlat((char *) psk_buffer,
+ 2*max_psk_len,
+ "%{psksql:select hex(key) from psk_keys where keyid = '%{control:tls-psk-identity}';}",
request, NULL, NULL);
request, NULL, NULL);
- if (psk_len > 0) return psk_len;
+ if (hex_len >0)
+ return rad_hex2bin(psk_buffer, hex_len);
}
}
if (strcmp(identity, conf->psk_identity) != 0) {
}
}
if (strcmp(identity, conf->psk_identity) != 0) {