aboutsummaryrefslogtreecommitdiff
path: root/libstb
diff options
context:
space:
mode:
Diffstat (limited to 'libstb')
-rw-r--r--libstb/create-container.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/libstb/create-container.c b/libstb/create-container.c
index 437a425..5cf80a0 100644
--- a/libstb/create-container.c
+++ b/libstb/create-container.c
@@ -88,6 +88,7 @@ void getSigRaw(ecc_signature_t *sigraw, char *inFile)
void *infile;
unsigned char outbuf[2*EC_COORDBYTES];
int r, rlen, roff, slen, soff;
+ const BIGNUM *sr, *ss;
fdin = open(inFile, O_RDONLY);
assert(fdin > 0);
@@ -101,13 +102,19 @@ void getSigRaw(ecc_signature_t *sigraw, char *inFile)
memset(&outbuf, 0, sizeof(outbuf));
- rlen = BN_num_bytes(signature->r);
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+ ECDSA_SIG_get0(signature, &sr, &ss);
+#else
+ sr = signature->r;
+ ss = signature->s;
+#endif
+ rlen = BN_num_bytes(sr);
roff = 66 - rlen;
- BN_bn2bin(signature->r, &outbuf[roff]);
+ BN_bn2bin(sr, &outbuf[roff]);
- slen = BN_num_bytes(signature->s);
+ slen = BN_num_bytes(ss);
soff = 66 + (66 - slen);
- BN_bn2bin(signature->s, &outbuf[soff]);
+ BN_bn2bin(sr, &outbuf[soff]);
if (debug)
printBytes((char *)"sig (RAW) = ", outbuf, sizeof(outbuf), 32);