interface ntp_signd
{
+ const int NTP_SIGND_PROTOCOL_VERSION_0 = 0;
+
typedef [v1_enum] enum {
SIGN_TO_CLIENT = 0,
ASK_SERVER_TO_SIGN = 1,
} ntp_signd_op;
typedef [flag(NDR_BIG_ENDIAN),public] struct {
- uint32 version;
+ [value(NTP_SIGND_PROTOCOL_VERSION_0)] uint32 version;
ntp_signd_op op;
uint16 packet_id;
[flag(NDR_LITTLE_ENDIAN)] uint32 key_id;
} sign_request;
typedef [flag(NDR_BIG_ENDIAN),public] struct samba_key_out {
- uint32 version;
+ [value(NTP_SIGND_PROTOCOL_VERSION_0)] uint32 version;
ntp_signd_op op;
uint32 packet_id;
[flag(NDR_REMAINING)] DATA_BLOB signed_packet;
NT_STATUS_HAVE_NO_MEMORY(tmp_ctx);
- signed_reply.version = 1;
signed_reply.op = SIGNING_FAILURE;
signed_reply.packet_id = packet_id;
signed_reply.signed_packet = data_blob(NULL, 0);
/* We need to implement 'check signature' and 'request server
* to sign' operations at some point */
- if (sign_request.version != 1) {
+ if (sign_request.version != NTP_SIGND_PROTOCOL_VERSION_0) {
talloc_free(tmp_ctx);
return signing_failure(ntp_signdconn, sign_request.packet_id);
}
}
/* Generate the reply packet */
- signed_reply.version = 1;
signed_reply.packet_id = sign_request.packet_id;
signed_reply.op = SIGNING_SUCCESS;
signed_reply.signed_packet = data_blob_talloc(tmp_ctx,
torture_assert_ntstatus_ok(tctx, status, "ServerAuthenticate3");
torture_assert(tctx, netlogon_creds_client_check(creds, &credentials3), "Credential chaining failed");
- sign_req.version = 1;
sign_req.op = SIGN_TO_CLIENT;
sign_req.packet_id = 1;
sign_req.key_id = rid;
torture_assert(tctx, NDR_ERR_CODE_IS_SUCCESS(ndr_err), ndr_map_error2string(ndr_err));
torture_assert_u64_equal(tctx, signed_reply.version,
- sign_req.version, "Invalid Version");
+ NTP_SIGND_PROTOCOL_VERSION_0, "Invalid Version");
torture_assert_u64_equal(tctx, signed_reply.packet_id,
sign_req.packet_id, "Invalid Packet ID");
torture_assert_u64_equal(tctx, signed_reply.op,