EVP_SignUpdate(&ctx, (u_char *)vp, 12);
EVP_SignUpdate(&ctx, vp->ptr, sizeof(struct autokey));
if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey)) {
+ NTP_INSIST(len <= sign_siglen);
vp->siglen = htonl(len);
peer->flags |= FLAG_ASSOC;
}
EVP_SignInit(&ctx, sign_digest);
EVP_SignUpdate(&ctx, (u_char *)&vp->tstamp, 12);
EVP_SignUpdate(&ctx, vp->ptr, vallen);
- if (EVP_SignFinal(&ctx, vp->sig, &vallen, sign_pkey))
+ if (EVP_SignFinal(&ctx, vp->sig, &vallen, sign_pkey)) {
+ NTP_INSIST(vallen <= sign_siglen);
vp->siglen = htonl(vallen);
+ }
return (XEVNT_OK);
}
EVP_SignInit(&ctx, sign_digest);
EVP_SignUpdate(&ctx, (u_char *)&pubkey, 12);
EVP_SignUpdate(&ctx, pubkey.ptr, ntohl(pubkey.vallen));
- if (EVP_SignFinal(&ctx, pubkey.sig, &len, sign_pkey))
+ if (EVP_SignFinal(&ctx, pubkey.sig, &len, sign_pkey)) {
+ NTP_INSIST(len <= sign_siglen);
pubkey.siglen = htonl(len);
+ }
}
/*
EVP_SignUpdate(&ctx, (u_char *)&cp->cert, 12);
EVP_SignUpdate(&ctx, cp->cert.ptr,
ntohl(cp->cert.vallen));
- if (EVP_SignFinal(&ctx, cp->cert.sig, &len, sign_pkey))
+ if (EVP_SignFinal(&ctx, cp->cert.sig, &len, sign_pkey)) {
+ NTP_INSIST(len <= sign_siglen);
cp->cert.siglen = htonl(len);
+ }
}
/*
EVP_SignInit(&ctx, sign_digest);
EVP_SignUpdate(&ctx, (u_char *)&tai_leap, 12);
EVP_SignUpdate(&ctx, tai_leap.ptr, len);
- if (EVP_SignFinal(&ctx, tai_leap.sig, &len, sign_pkey))
+ if (EVP_SignFinal(&ctx, tai_leap.sig, &len, sign_pkey)) {
+ NTP_INSIST(len <= sign_siglen);
tai_leap.siglen = htonl(len);
+ }
crypto_flags |= CRYPTO_FLAG_TAI;
snprintf(statstr, sizeof(statstr), "signature update ts %u",
EVP_SignInit(&ctx, sign_digest);
EVP_SignUpdate(&ctx, (u_char *)&vp->tstamp, 12);
EVP_SignUpdate(&ctx, vp->ptr, len);
- if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey))
+ if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey)) {
+ NTP_INSIST(len <= sign_siglen);
vp->siglen = htonl(len);
+ }
return (XEVNT_OK);
}
EVP_SignInit(&ctx, sign_digest);
EVP_SignUpdate(&ctx, (u_char *)&vp->tstamp, 12);
EVP_SignUpdate(&ctx, vp->ptr, vallen);
- if (EVP_SignFinal(&ctx, vp->sig, &vallen, sign_pkey))
+ if (EVP_SignFinal(&ctx, vp->sig, &vallen, sign_pkey)) {
+ NTP_INSIST(vallen <= sign_siglen);
vp->siglen = htonl(vallen);
+ }
return (XEVNT_OK);
}
EVP_SignInit(&ctx, sign_digest);
EVP_SignUpdate(&ctx, (u_char *)&vp->tstamp, 12);
EVP_SignUpdate(&ctx, vp->ptr, len);
- if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey))
+ if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey)) {
+ NTP_INSIST(len <= sign_siglen);
vp->siglen = htonl(len);
+ }
return (XEVNT_OK);
}
EVP_SignInit(&ctx, sign_digest);
EVP_SignUpdate(&ctx, (u_char *)&vp->tstamp, 12);
EVP_SignUpdate(&ctx, vp->ptr, len);
- if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey))
+ if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey)) {
+ NTP_INSIST(len <= sign_siglen);
vp->siglen = htonl(len);
+ }
return (XEVNT_OK);
}
EVP_SignInit(&ctx, sign_digest);
EVP_SignUpdate(&ctx, (u_char *)&vp->tstamp, 12);
EVP_SignUpdate(&ctx, vp->ptr, len);
- if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey))
+ if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey)) {
+ NTP_INSIST(len <= sign_siglen);
vp->siglen = htonl(len);
+ }
return (XEVNT_OK);
}
EVP_SignInit(&ctx, sign_digest);
EVP_SignUpdate(&ctx, (u_char *)&vp->tstamp, 12);
EVP_SignUpdate(&ctx, vp->ptr, len);
- if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey))
+ if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey)) {
+ NTP_INSIST(len <= sign_siglen);
vp->siglen = htonl(len);
+ }
return (XEVNT_OK);
}
EVP_SignInit(&ctx, sign_digest);
EVP_SignUpdate(&ctx, (u_char *)vp, 12);
EVP_SignUpdate(&ctx, vp->ptr, len);
- if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey))
+ if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey)) {
+ NTP_INSIST(len <= sign_siglen);
vp->siglen = htonl(len);
+ }
}
#ifdef DEBUG
if (debug > 1)