Commit Graph

40 Commits

Author SHA1 Message Date
Jeffrey Altman
dba026b5ef Introduce and apply krb5_storage_from_socket
On Windows a file descriptor is an int value allocated by the
local module instance of the C Run Time Library.  A socket handle is a
SOCKET value allocated by a Winsock Provider for the requested family and
protocol.   These two values cannot be mixed and there is no mechanism for
converting between the two.   The _get_osfhandle() and _open_osfhandle()
functions can work with a standard HANDLE (file, pipe, etc) but cannot be
used for a SOCKET.

The Heimdal krb5_storage_from_fd() routine counted on the osf conversion
functions working on SOCKET values.  Since they do not any attempt to call
krb5_storage_from_fd() on a socket resulted in an assertion being thrown
by the C RTL.

Another problem is SOCKET value truncation when storing a 64-bit value
into a 32-bit int.

To address these problems a new krb5_storage_from_socket() routine is
introduced.  This routine setups a krb5_storage that stores a socket value
as a rk_socket_t and provides a set of helper routines that always use
network ready functions.

The krb5_storage_from_fd() routines no longer use net_read() and
net_write() but provide helpers that follow their logic so that pipes can
be processed.

All call sites that allocate a socket now store the socket as rk_socket_t
and call krb5_storage_from_socket().

All locations that previously called the bare close() on a socket value
now call rk_closesocket().

Change-Id: I045f775b2a5dbf5cf803751409490bc27fffe597
2014-02-04 23:20:08 -05:00
Jeffrey Altman
b845424a86 krb5: sync export lists
Sync the Windows and UNIX export lists for lib/krb5

Change-Id: I992921058c463335d0a3037ec035afd7f9d511b0
2013-09-10 22:31:39 -04:00
Nicolas Williams
f80cc553f8 Make build on Windows 2013-06-21 23:09:44 -05:00
Love Hornquist Astrand
060474df16 quel 64bit warnings, fixup implicit encoding for template, fix spelling 2013-06-03 21:46:20 -07:00
Viktor Dukhovni
2433496ea6 Simplify user_realm support by removing krb5_parse_name_flags_realm()
and setting the realm as necessary in the caller.
2013-05-16 23:15:00 -04:00
Viktor Dukhovni
a2127d091d New krb5_parse_name_flags_realm supports explicit default realm.
Set the realm argument to NULL to get the usual default realm.

The krb5_parse_name_flags() function is now a wrapper around
krb5_parse_name_flags_realm().
2013-05-16 00:32:08 -04:00
Nicolas Williams
b1e4766753 Fix Windows build (missing export) 2013-03-18 21:48:57 -05:00
Love Hornquist Astrand
c1423a8eea redo plugin interface 2013-02-10 22:50:49 -08:00
Jeffrey Altman
21b03df57a Remove krb5_425_xx and krb4 compat glue from exports
The lib/krb5 export lists contained the following functions
that are no longer in the tree:

  krb5_425_conv_principal
  krb5_425_conv_principal_ext2
  krb5_425_conv_principal_ext
  krb5_524_conv_principal
  _krb5_krb_tf_setup
  _krb5_krb_dest_tkt
  _krb5_krb_life_to_time
  _krb5_krb_decomp_ticket
  _krb5_krb_create_ticket
  _krb5_krb_create_ciph
  _krb5_krb_create_auth_reply
  _krb5_krb_rd_req
  _krb5_krb_free_auth_data
  _krb5_krb_time_to_life
  _krb5_krb_cr_err_reply

Change-Id: I1f73768de2f7e9243e4e7a623b54af282ec54641
2012-06-12 18:55:32 -04:00
Jeffrey Altman
aed7a3b948 Windows: missing exports on Windows
synchronize the export lists on Windows and UNIX.
When new functions are exported on UNIX or Windows,
the "test" build target on Windows will verify if
the export lists are in sync.

Change-Id: I9df3607983b03ee8dc6fa7cd22f85b07a6cee784
2012-06-12 18:48:37 -04:00
Jeffrey Altman
55e941f3f2 Windows: export krb5_storage_fsync
df42274d96 added krb5_storage_fsync
but failed to export it on Windows.

Change-Id: I325cef08cbbfd8e9d86a323ed0e03bb3282d4250
2012-06-12 18:48:35 -04:00
Nicolas Williams
6dd66df594 Make master build on Windows
Add strtoll()/strtoull() to lib/roken
    Add stdint.h to lib/roken (Windows only)
    Add logic to detect whether to use lib/roken's stdint.h based on
        Visual Studio version
    Add include of stdint.h in generated ASN.1 code
    Export missing symbols for 64-bit integers in lib/asn1
    Export missing symbols for FAST
    Add missing sources to kdc/NTMakefile
    Fix issue in kuserok
    Fix bsearch issues
2012-01-17 12:10:14 -06:00
Luke Howard
c18d1a804e add fast.c to Windows build 2011-11-29 12:51:07 +11:00
Love Hornquist Astrand
777b24fbb5 add krb5_is_enctype_weak 2011-09-26 08:47:37 +02:00
Love Hörnquist Åstrand
4a43975270 drop unused KRB4 bits 2011-07-30 14:14:52 -07:00
Jeffrey Altman
c13deafcce Synchronize Windows export list with Unix
Change-Id: Ic0ee3d1f4b49761fbd2676f4f9562f1bf906e382
2011-07-21 11:50:45 -04:00
Love Hörnquist Åstrand
0f489b7b28 unexport krb5_init_etype, remove duplicate code 2011-06-14 21:08:52 -07:00
Jeffrey Altman
13f63decb6 conditionally export kcm functions on windows
Change-Id: I3d11595e690467afccc4f82f4eafee1cb2736757
2011-05-17 13:40:58 -04:00
Jeffrey Altman
9bf311fc3c export krb5_kt_have_content() on windows
Change-Id: Iee6615e6e6d14d36546fadee5b3b374d750202cb
2011-05-17 12:02:13 -04:00
Luke Howard
d116a78297 add missing exports 2011-03-21 23:53:17 +11:00
Asanka C. Herath
6d662f71d7 Windows: Fix export lists 2010-11-29 10:53:49 -05:00
Asanka C. Herath
e851b85700 Windows: Fix export for krb5_enomem 2010-11-25 23:51:43 -05:00
Love Hornquist Astrand
ea2534a55f export krb5_enomem 2010-11-24 14:35:56 -08:00
Asanka C. Herath
6e4e28c7bb Windows: Catch up with libkrb5 changes 2010-11-24 15:33:30 -05:00
Asanka C. Herath
9d7227d1c1 Windows: Fix missing exports 2010-11-24 15:32:47 -05:00
Asanka C. Herath
ba6c36b0d7 Windows: Fix exports for libkrb5 2010-11-24 15:32:22 -05:00
Love Hornquist Astrand
6920fbbef1 remove krb5 support 2010-11-20 14:39:20 -08:00
Love Hornquist Astrand
8f2e0a7010 export internal functions so we dont need private headers 2010-11-20 14:05:54 -08:00
Asanka Herath
b3797f428b Add krb5_c_random_make_octets() to mit_glue.c 2010-09-14 08:04:19 -04:00
Asanka Herath
e447009d1b Add krb5_free_default_realm() to MIT glue 2010-09-14 08:04:18 -04:00
Asanka Herath
96dadaaeff Windows: Decorate krb5_cc_copy_creds export definition 2010-09-14 08:03:37 -04:00
Asanka Herath
8d40619564 Windows: Add krb5_cc_copy_creds to the exports list 2010-08-20 13:14:12 -04:00
Asanka Herath
f807cb8152 Windows: Update exports 2010-08-20 13:07:58 -04:00
Russ Allbery
811d9003c1 Remove remnants of srvtab support
Support for manipulating srvtabs was previously removed, but there
were still remnants in command documentation in the ktutil man page
and some declared and exported variables for the keytab ops
definitions for srvtab manipulation.  Remove these additional
remnants.

Signed-off-by: Love Hornquist Astrand <lha@h5l.org>
2010-08-03 09:09:32 -07:00
Russ Allbery
8a57d5cb08 Add krb5_allow_weak_crypto API to enable weak enctypes
Add krb5_allow_weak_crypto parallel to the API introduced in MIT
Kerberos 1.8.  Enables or disables all enctypes marked as weak.
Add a new enctype flag marking weak enctypes (all of the ones that
are disabled by default).

Signed-off-by: Love Hornquist Astrand <lha@h5l.org>
2010-01-27 21:50:58 -08:00
Asanka Herath
7f5b105fd6 Fix exports 2009-12-21 18:06:05 -05:00
Asanka Herath
a0ae9f5a0e Merge remote branch 'h-github/master' into win32-port2
* h-github/master: (64 commits)
  refix socket wrappers with rk_
  Patch from Secure Endpoints/Asanka Herath for windows support
  unset KRB5CCNAME
  its really just LIBADD more most of them
  correct quoting
  Use -lpthread for modern freebsd instead
  clean KRB5CCNAME and KRB5_CONFIG, require test to reset them
  more up ${env_setup}
  use PTHREADS_LIBADD for freebsd6 and newer
  add PTHREAD_LIBADD
  add PTHREAD_LIBADD
  add PTHREAD_LIBADD
  switch to PTHREADS_LIBADD
  log what the error string say too
  More debug logging
  sprinkle more 'echo "test failed"'
  sprinkle 'echo "test failed"'
  use calloc(), indent more prettier
  in sh, equal compare is really = for strings, not ==
  Check for duplicates, already loaded mechs
  ...

Conflicts (resolved):
	lib/krb5/auth_context.c
	lib/krb5/changepw.c
	lib/krb5/context.c
	lib/krb5/error_string.c
	lib/krb5/kuserok.c
	lib/krb5/libkrb5-exports.def.in
	lib/krb5/net_write.c
	lib/krb5/store_fd.c
	lib/krb5/test_cc.c
	lib/roken/strerror_r.c
2009-12-21 13:44:00 -05:00
Love Hornquist Astrand
687db64c56 Patch from Secure Endpoints/Asanka Herath for windows support 2009-12-21 08:45:28 +01:00
Asanka Herath
f065ca176f (lib/krb5) Update exports list 2009-11-26 01:55:48 -05:00
Asanka Herath
5dd6355e56 libkrb5 .def file 2009-11-24 10:16:49 -08:00