Skip to content

Commit eddb13c

Browse files
committed
Re-encode serial as DER
1 parent 393a625 commit eddb13c

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/lib/tls/pairs.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ USES_APPLE_DEPRECATED_API /* OpenSSL API has been deprecated by Apple */
3434
#include <freeradius-devel/server/pair.h>
3535

3636
#include "attrs.h"
37-
#include "base.h"
3837
#include "bio.h"
3938
#include "log.h"
4039
#include "session.h"
@@ -201,15 +200,19 @@ int fr_tls_session_pairs_from_x509_cert(fr_pair_list_t *pair_list, TALLOC_CTX *c
201200
*/
202201
{
203202
ASN1_INTEGER const *serial = NULL;
203+
unsigned char *der;
204+
int len;
204205

205206
serial = X509_get0_serialNumber(cert);
206207
if (!serial) {
207208
fr_tls_log(request, "Failed retrieving certificate serial");
208209
goto error;
209210
}
210211

212+
len = i2d_ASN1_INTEGER(serial, NULL); /* get length */
211213
MEM(fr_pair_append_by_da(ctx, &vp, pair_list, attr_tls_certificate_serial) == 0);
212-
MEM(fr_pair_value_memdup(vp, serial->data, serial->length, true) == 0);
214+
MEM(fr_pair_value_mem_alloc(vp, &der, len, false) == 0);
215+
i2d_ASN1_INTEGER(serial, &der);
213216
}
214217

215218
/*

0 commit comments

Comments
 (0)