Skip to content

Commit b365934

Browse files
committed
fix(kerberos): provide default gss flags
1 parent 1b4144e commit b365934

File tree

4 files changed

+10
-5
lines changed

4 files changed

+10
-5
lines changed

src/kerberos.cc

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class InitializeClientWorker : public Nan::AsyncWorker {
3030
virtual void Execute() {
3131
std::unique_ptr<gss_client_state, FreeDeleter> state(gss_client_state_new());
3232
std::unique_ptr<gss_result, FreeDeleter> result(
33-
authenticate_gss_client_init(_service.c_str(), _principal.c_str(), _gss_flags, _mech_oid, state.get()));
33+
authenticate_gss_client_init(_service.c_str(), _principal.c_str(), _gss_flags, NULL, _mech_oid, state.get()));
3434

3535
if (result->code == AUTH_GSS_ERROR) {
3636
SetErrorMessage(result->message);
@@ -62,7 +62,7 @@ NAN_METHOD(InitializeClient) {
6262
Nan::Callback* callback = new Nan::Callback(Nan::To<v8::Function>(info[2]).ToLocalChecked());
6363

6464
std::string principal = StringOptionValue(options, "principal");
65-
uint32_t gss_flags = UInt32OptionValue(options, "gssFlags", 0);
65+
uint32_t gss_flags = UInt32OptionValue(options, "gssFlags", GSS_C_MUTUAL_FLAG | GSS_C_SEQUENCE_FLAG);
6666
uint32_t mech_oid_int = UInt32OptionValue(options, "mechOID", 0);
6767
gss_OID mech_oid = GSS_C_NO_OID;
6868
if (mech_oid_int == GSS_MECH_OID_KRB5) {

src/kerberos_gss.cc

+1-2
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,6 @@ gss_result* authenticate_gss_client_init(
202202

203203
int authenticate_gss_client_clean(gss_client_state *state)
204204
{
205-
OM_uint32 maj_stat;
206205
OM_uint32 min_stat;
207206
int ret = AUTH_GSS_COMPLETE;
208207

@@ -268,7 +267,7 @@ gss_result* authenticate_gss_client_step(gss_client_state* state, const char* ch
268267
&input_token,
269268
NULL,
270269
&output_token,
271-
NULL
270+
NULL,
272271
NULL);
273272

274273
if ((maj_stat != GSS_S_COMPLETE) && (maj_stat != GSS_S_CONTINUE_NEEDED))

src/kerberos_gss.h

+5-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,11 @@ gss_server_state* gss_server_state_new();
6161

6262
gss_result* server_principal_details(const char* service, const char* hostname);
6363

64-
gss_result* authenticate_gss_client_init(const char* service, const char* principal, long int gss_flags, gss_OID mech_oid, gss_client_state* state);
64+
gss_result* authenticate_gss_client_init(
65+
const char* service, const char* principal, long int gss_flags,
66+
gss_server_state* delegatestate, gss_OID mech_oid, gss_client_state* state
67+
);
68+
6569
int authenticate_gss_client_clean(gss_client_state* state);
6670
gss_result* authenticate_gss_client_step(gss_client_state* state, const char* challenge, struct gss_channel_bindings_struct* channel_bindings);
6771
gss_result* authenticate_gss_client_unwrap(gss_client_state* state, const char* challenge);

test/gssapi_tests.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
'use strict';
22
const kerberos = require('..');
33
const expect = require('chai').expect;
4+
const SegfaultHandler = require('segfault-handler');
5+
SegfaultHandler.registerHandler();
46

57
const username = process.env.KERBEROS_USERNAME || 'administrator';
68
// const password = process.env.KERBEROS_PASSWORD || 'Password01';

0 commit comments

Comments
 (0)