krb5.git
12 years agoMake sure that
Zhanna Tsitkov [Mon, 5 Mar 2012 23:40:01 +0000 (23:40 +0000)]
Make sure that
1.  a new-line " ::"  is preceded by not more then one line of text;
2.  a new line does not start with a whitespace(s) and a dot

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25734 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoConsolidate application server docs into one file
Greg Hudson [Mon, 5 Mar 2012 19:27:49 +0000 (19:27 +0000)]
Consolidate application server docs into one file

Combine the contents of the krb_admins/appl_server directory into one
file appl_server.rst.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25733 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoConsolidate DB admin docs into one file
Greg Hudson [Mon, 5 Mar 2012 19:19:33 +0000 (19:19 +0000)]
Consolidate DB admin docs into one file

Combine the contents of the krb_admins/database directory into one
file database.rst.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25732 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoRemove eDirectory references in RST docs
Greg Hudson [Mon, 5 Mar 2012 18:32:12 +0000 (18:32 +0000)]
Remove eDirectory references in RST docs

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25731 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix spurious password expiry warning
Greg Hudson [Mon, 5 Mar 2012 17:35:14 +0000 (17:35 +0000)]
Fix spurious password expiry warning

r24241 (#6755) introduced a bug where if the KDC sends a LastReq entry
containing an account expiry time, we send a prompter warning for
password expiry even if there was no entry containing a password
expiry time.  Typically, this results in the message "Warning: Your
password will expire in less than one hour on Thu Jan  1 12:00:00
1970".

Fix this by explicitly checking for pw_exp == 0 in warn_pw_expiry()
after we've gotten past the conditional for invoking the callback.

ticket: 7098
target_version: 1.9.4
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25730 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoRemove admin_keytab references in code and docs
Greg Hudson [Sun, 4 Mar 2012 00:38:48 +0000 (00:38 +0000)]
Remove admin_keytab references in code and docs

The admin keytab hasn't been needed or used by kadmind since 1.4
(except possibly by legacy admin daemons which we no longer ship).
Eliminate remaining references to it in code, test cases, and
documentation.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25729 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoConsolidate realm config docs into one file
Greg Hudson [Sat, 3 Mar 2012 06:17:51 +0000 (06:17 +0000)]
Consolidate realm config docs into one file

Move the contents of the realm_config directory into one file
realm_config.rst.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25728 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix the problem when the text of the examples and alike's was not properly indented...
Zhanna Tsitkov [Sat, 3 Mar 2012 03:30:36 +0000 (03:30 +0000)]
Fix the problem when the text of the examples and alike's was not properly indented in the man pages.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25727 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix the reference to the non-existing label
Zhanna Tsitkov [Fri, 2 Mar 2012 22:43:34 +0000 (22:43 +0000)]
Fix the reference to the non-existing label

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25726 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAdd test cases for Windows RODC kvno compatibility
Tom Yu [Fri, 2 Mar 2012 22:24:38 +0000 (22:24 +0000)]
Add test cases for Windows RODC kvno compatibility

ticket: 7092

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25725 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoConsolidate RST install docs into larger files
Greg Hudson [Fri, 2 Mar 2012 19:18:33 +0000 (19:18 +0000)]
Consolidate RST install docs into larger files

Create two larger files (install_kdc.rst and install_clients.rst) and
remove the install_kdc and install_clients directories.  No
significant changes to content.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25724 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix KDB iteration when callback does write calls
Greg Hudson [Thu, 1 Mar 2012 20:49:17 +0000 (20:49 +0000)]
Fix KDB iteration when callback does write calls

kdb_db2's ctx_iterate makes an convenience alias to dbc->db in order
to call more invoke call the DB's seq method.  This alias may become
invalidated if the callback writes to the DB, since ctx_lock() may
re-open the DB in order to acquire a write lock.  Fix the bug by
getting rid of the convenience alias.

Most KDB iteration operations in the code base do not write to the DB,
but kdb5_util update_princ_encryption does.

Bug discovered and diagnosed by will.fiveash@oracle.com.

ticket: 7096
target_version: 1.10.1
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25723 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAdd GSSAPI acceptor names documentation
Greg Hudson [Wed, 29 Feb 2012 18:49:04 +0000 (18:49 +0000)]
Add GSSAPI acceptor names documentation

In the application developer documentation, create a little bit of
framing for documentation about krb5 GSS mechanism behavior and
extensions, and create an initial section about how host-based service
names affect keytab principal selection.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25722 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoRemove unused RST files
Zhanna Tsitkov [Tue, 28 Feb 2012 17:06:12 +0000 (17:06 +0000)]
Remove unused RST files

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25721 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoCorrect some references
Zhanna Tsitkov [Tue, 28 Feb 2012 16:28:21 +0000 (16:28 +0000)]
Correct some references

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25720 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoRequire IPv6 support
Ken Raeburn [Tue, 28 Feb 2012 16:15:56 +0000 (16:15 +0000)]
Require IPv6 support

The configure-time options to enable and disable IPv6 support have
been deprecated for some time, but the checks for OS support were
kept.  This removes those checks, and unconditionally compiles in the
IPv6 support.

There was a configure-time test to see if the macro INET6 needed to be
defined in order to enable (visibility of) OS support for IPv6, which
was needed on an IRIX system we tested with.  That check is retained,
but the revised code is untested on IRIX.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25719 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix the label
Zhanna Tsitkov [Tue, 28 Feb 2012 15:21:10 +0000 (15:21 +0000)]
Fix the label

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25718 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoEdit RST install guide for clarity and accuracy
Greg Hudson [Mon, 27 Feb 2012 23:29:09 +0000 (23:29 +0000)]
Edit RST install guide for clarity and accuracy

Notable changes include:

* In the example config files, configure logging in kdc.conf rather
  than krb5.conf.

* It is no longer necessary to create a dummy database on slaves
  before propagating the master DB with kprop; remove that step from
  the instructions.

* The admin keytab file is no longer required or used.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25717 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoPatch from Richard Basch to work around Solaris 8 lacking isblank()
Tom Yu [Mon, 27 Feb 2012 18:31:50 +0000 (18:31 +0000)]
Patch from Richard Basch to work around Solaris 8 lacking isblank()

ticket: 7074
target_version: 1.10.1
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25716 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoClean up labels in RST docs
Greg Hudson [Mon, 27 Feb 2012 18:17:19 +0000 (18:17 +0000)]
Clean up labels in RST docs

In various labels, correct typos, remove the redundant "_label"
suffix, and avoid overabbreviating.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25715 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoImprove man page references in RST documentation
Greg Hudson [Mon, 27 Feb 2012 04:48:54 +0000 (04:48 +0000)]
Improve man page references in RST documentation

Give each command and config file a reference label, and change many
uses of command names and config file names to be references.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25714 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoUpdated versions and feature list; fixed some typos
Zhanna Tsitkov [Sun, 26 Feb 2012 22:42:39 +0000 (22:42 +0000)]
Updated versions and feature list; fixed some typos

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25713 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFormat pass over RST documentation
Greg Hudson [Sun, 26 Feb 2012 16:45:09 +0000 (16:45 +0000)]
Format pass over RST documentation

Without substantially changing the content, reformat RST
documentation sources, normalizing:

* Whitespace: four-space indentation where indentation is arbitrary;
  no trailing whitespace or tabs.  Two spaces after sentence periods.
* 70-column fill where lines can be wrapped (outside tables, mostly)
* Section header underlines: = for page titles, - for sections, ~ and
  then # for subsections.  Underlines exactly as long as titles.  No
  trailing punctuation in titles.
* Bullet lists: * for top-level bullets, - for sub-bullets.  No
  indentation of the list bullets relative to the surrounding content.
* Inline markup: italics for words representing variable text,
  boldface for config keywords and command option names, monospaced
  text for examples, pathnames.  No adornment for command names and
  filenames.
* Man page subcommands: subsection header for the subcommand, indented
  command synposis, then non-indented description and option list.
* Man page command synopses: newline in source before each option.  All
  parts of synopsis at same indentation level.  (Ideally we'd want a
  hanging indent to the length of the command name, but RST doesn't
  seem to support that.)
* Feedback links: in a separate section at the end.  (This will need
  to be revisited as it affects some multi-level tables of contents.)

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25712 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFail during configure if unable to find ar
Tom Yu [Wed, 22 Feb 2012 19:27:56 +0000 (19:27 +0000)]
Fail during configure if unable to find ar

Fail during configure time if the configure script can't locate the
"ar" program, instead of producing a delayed failure during build time
by running the "false" command.  Some Solaris releases have ar in
/usr/ccs/bin, which is not in the default path for some users.

ticket: 7094

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25711 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoDocument the following kadmin commands and/or the related privieleges:
Zhanna Tsitkov [Wed, 22 Feb 2012 15:52:17 +0000 (15:52 +0000)]
Document the following kadmin commands and/or the related privieleges:
- set_string, get_strings, del_string
- rename_principal
- get_privs
- purgekeys
- lock/unlock
- list_requests
- quit

Also, some minor formatting fixes.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25710 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoCorrect fix for #7092
Greg Hudson [Wed, 22 Feb 2012 04:00:10 +0000 (04:00 +0000)]
Correct fix for #7092

ticket: 7092

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25706 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoRevert broken #7092 fix
Greg Hudson [Wed, 22 Feb 2012 03:34:57 +0000 (03:34 +0000)]
Revert broken #7092 fix

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25705 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAccess controls for string RPCs [CVE-2012-1012]
Greg Hudson [Tue, 21 Feb 2012 19:14:47 +0000 (19:14 +0000)]
Access controls for string RPCs [CVE-2012-1012]

In the kadmin protocol, make the access controls for
get_strings/set_string mirror those of get_principal/modify_principal.
Previously, anyone with global list privileges could get or modify
string attributes on any principal.  The impact of this depends on how
generous the kadmind acl is with list permission and whether string
attributes are used in a deployment (nothing in the core code uses
them yet).

CVSSv2 vector: AV:N/AC:M/Au:S/C:P/I:P/A:N/E:H/RL:O/RC:C

ticket: 7093
target_version: 1.10.1
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25704 dc483132-0cff-0310-8789-dd5450dbe970

12 years agokvno ASN.1 encoding interop with Windows RODCs
Greg Hudson [Tue, 21 Feb 2012 18:57:44 +0000 (18:57 +0000)]
kvno ASN.1 encoding interop with Windows RODCs

RFC 4120 defines the EncryptedData kvno field as an integer in the
range of unsigned 32-bit numbers.  Windows encodes and decodes the
field as a signed 32-bit integer.  Historically we do the same in our
encoder in 1.6 and prior, and in our decoder through 1.10.  (Actually,
our decoder through 1.10 decoded the value as a long and then cast the
result to unsigned int, so it would accept positive values >= 2^31 on
64-bit platforms but not on 32-bit platforms.)

kvno values that large (or negative) are only likely to appear in the
context of Windows read-only domain controllers.  So do what Windows
does instead of what RFC 4120 says.

ticket: 7092

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25703 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoIn kadmin_getprivs replace the non-existing "GET" privilege by "INQUIRE".
Zhanna Tsitkov [Wed, 15 Feb 2012 18:55:16 +0000 (18:55 +0000)]
In kadmin_getprivs replace the non-existing "GET" privilege by "INQUIRE".

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25702 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix void pointer arithmetic in ASN.1 decoder
Greg Hudson [Tue, 14 Feb 2012 22:14:54 +0000 (22:14 +0000)]
Fix void pointer arithmetic in ASN.1 decoder

An expression in decode_sequence_of was incorrectly parenthesized,
resulting in addition to a void pointer.  Also avoid repeating the
expression.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25701 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoInitialize gss_get_name_attribute output buffers
Greg Hudson [Tue, 14 Feb 2012 18:26:50 +0000 (18:26 +0000)]
Initialize gss_get_name_attribute output buffers

GSS functions which accept gss_buffer_t output arguments should
initialize those buffers to empty on startup (see gss_wrap, for
instance).  Do so for gss_get_name_attribute in the mechglue.

ticket: 7089
target_version: 1.10.1
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25700 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAdd explanatory README for ASN.1 infrastructure
Greg Hudson [Mon, 13 Feb 2012 22:41:25 +0000 (22:41 +0000)]
Add explanatory README for ASN.1 infrastructure

Since we're not yet at the point of having an ASN.1 compiler for our
ASN.1 encoder, create a document explaining how to write macro
invocations for type descriptors from an ASN.1 module.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25699 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoSeparate tag info and length in ASN.1 encoder
Greg Hudson [Sun, 12 Feb 2012 17:13:24 +0000 (17:13 +0000)]
Separate tag info and length in ASN.1 encoder

Remove the length field of taginfo, and change the internal ASN.1
encoder interfaces to return length separately from tag info.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25698 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix ASN.1 build
Greg Hudson [Sun, 12 Feb 2012 16:43:01 +0000 (16:43 +0000)]
Fix ASN.1 build

r25695 left behind a dangling reference to the asn1_make object; get
rid of it.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25697 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoUpdate ASN.1 TODO file
Greg Hudson [Sun, 12 Feb 2012 06:11:48 +0000 (06:11 +0000)]
Update ASN.1 TODO file

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25696 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoRemove unneeded ASN.1 code
Greg Hudson [Sun, 12 Feb 2012 06:00:24 +0000 (06:00 +0000)]
Remove unneeded ASN.1 code

Get rid of a whole bunch of ASN.1 decoder infrastructure now that
we're using the data-driven decoder for everything.  Define taginfo in
asn1_encode.h since asn1_get.h is going away.  Rewrite split_der() to
use get_tag() since it still had an unintended dependency on the
previous generation of decoder infrastructure.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25695 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoConvert utility functions to new decoder
Greg Hudson [Sun, 12 Feb 2012 05:25:22 +0000 (05:25 +0000)]
Convert utility functions to new decoder

Create a special type to plug authdata types from authdata and make
krb5int_get_authdata_containee_types use it.  Add a test case for it
as well.  Move krb5_decode_ticket (a trivial wrapper) into
asn1_k_encode.c so that krb5_decode.c is empty.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25694 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoData-driven ASN.1 decoder
Greg Hudson [Sat, 11 Feb 2012 23:25:25 +0000 (23:25 +0000)]
Data-driven ASN.1 decoder

Add a general ASN.1 decoder implementation in asn1_encode.c using the
same data structures as the encoder (augmented where necessary), and
use it to define decoder functions in asn1_k_encode.c.  Add a boolean
type to atype_info, as it is needed for the pa_pac_req decoder.  For
the moment, just #if out the old decoder functions; they and their
support code can be cleaned up later after a a few remaining utility
functions are addressed.

Changes to encoder and decoder interfaces are minimized, but there are
two small ones.  ldap_seqof_key_data has a kvno field added, and some
of the decoder logic is pushed up into the caller.  The safe_with_body
decoder now outputs an allocated krb5_data * instead of a krb5_data
with aliases into the input buffer.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25693 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoChange optional handling in ASN.1 encoder
Greg Hudson [Sat, 11 Feb 2012 23:25:21 +0000 (23:25 +0000)]
Change optional handling in ASN.1 encoder

Create a new atype_optional with a function pointer to decide whether
the type is present in the C object.  For simple cases, sequences just
reference the optional version of a type.  For more complex cases (such
as when the presence of the usec field of a sequence depends on whether
the timestamp is set), we define a predicate on the structure object
and nest the field type inside the optional type.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25692 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoStyle and naming changes to ASN.1 encoder
Greg Hudson [Sat, 11 Feb 2012 23:25:19 +0000 (23:25 +0000)]
Style and naming changes to ASN.1 encoder

Make style changes in preparation for the table-driven decoder.  No
functional changes.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25691 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoUse size_t for lengths in ASN.1 encoder
Greg Hudson [Sat, 11 Feb 2012 23:25:16 +0000 (23:25 +0000)]
Use size_t for lengths in ASN.1 encoder

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25690 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoMinimize draft9 PKINIT code by removing dead code
Greg Hudson [Sat, 11 Feb 2012 23:25:12 +0000 (23:25 +0000)]
Minimize draft9 PKINIT code by removing dead code

The PKINIT client code doesn't use decode_krb5_pa_pk_as_rep_draft9,
which is fortunate because it doesn't work (see issue #7072).
Instead, it passes both kinds of PKINIT replies through
decode_krb5_pa_pk_as_rep, then decodes the un-enveloped CMS data in
alternative 1 (encKeyPack) as either an RFC or draft9 ReplyKeyPack.
So, remove the unused broken pa_pk_as_rep_draft9 decoder.

For pa_pk_as_req_draft9, we only use two of the fields on encode and
only one of those on decode.  So, get rid of the unused fields and
the krb5_trusted_ca structure, and reduce the encoder and decoder
sequences to the minimum necessary fields.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25689 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoEliminate some unused ASN.1 encoding primitives
Greg Hudson [Sat, 11 Feb 2012 23:25:08 +0000 (23:25 +0000)]
Eliminate some unused ASN.1 encoding primitives

asn1_make.c contained a variety of utility functions, most of which we
no longer needed.  Fold make_tag into asn1_encode.c and get rid of
asn1_make.c and asn1_make.h.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25688 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFold atype_primitive into atype_fn
Greg Hudson [Sat, 11 Feb 2012 23:25:04 +0000 (23:25 +0000)]
Fold atype_primitive into atype_fn

atype_primitive is used for only two types (KerberosTime and
KerberosFlags), which doesn't justify the machinery.  Turn those types
into atype_fn types and get rid of atype_primitive.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25687 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoSimplify ASN.1 choice type definitions
Greg Hudson [Sat, 11 Feb 2012 23:25:00 +0000 (23:25 +0000)]
Simplify ASN.1 choice type definitions

Union fields always have an offset of 0 relative to the union base,
so we just need tag types for them, not DEFFIELDs.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25686 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAdd ASN.1 decoder test for krb5_pa_pac_req
Greg Hudson [Sat, 11 Feb 2012 23:24:58 +0000 (23:24 +0000)]
Add ASN.1 decoder test for krb5_pa_pac_req

Also, if decode_krb5_ap_rep_enc_part doesn't return the expected error
code in krb5_decode_test, exit with nonzero status.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25685 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoCorrect a fencepost in ASN.1 encode_cntype
Greg Hudson [Sat, 11 Feb 2012 23:24:52 +0000 (23:24 +0000)]
Correct a fencepost in ASN.1 encode_cntype

For cntype_choice, count must be less than choice->n_options.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25684 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix uninitialized variable warning in trval.c
Greg Hudson [Tue, 7 Feb 2012 15:45:59 +0000 (15:45 +0000)]
Fix uninitialized variable warning in trval.c

gcc -O3 is agressive enough to detect that do_cons() doesn't always
set the value of rlen2, so trval2() gets a maybe-uninitialized
warning.  Squash it by initializing rlen2.

ticket: 7088
target_version: 1.10.1
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25679 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoSet display_value in krb5_gss_get_name_attribute
Greg Hudson [Mon, 6 Feb 2012 23:19:08 +0000 (23:19 +0000)]
Set display_value in krb5_gss_get_name_attribute

A backwards conditional in r25358 caused krb5_gss_get_name_attribute
not to set display_value on success.  Fix the sense of the
conditional.

We still don't quite correctly handle the cases where data_to_gss()
fails, but those should be rare and the problem in those cases isn't
severe, so it can be fixed separately.

Also, value and display_value should probably be initialized to null
buffers on failure, as is common with GSS interfaces.

ticket: 7087
status: open
target_version: 1.10.1
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25674 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoSource code license to 2-clause BSD
Tom Yu [Mon, 6 Feb 2012 18:38:38 +0000 (18:38 +0000)]
Source code license to 2-clause BSD

Change overall souce code license to 2-clause BSD.  Also change
example license in src/prototype to 2-clause BSD.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25671 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoRevert r25669 pending clarification of goals and API review
Tom Yu [Fri, 3 Feb 2012 20:43:13 +0000 (20:43 +0000)]
Revert r25669 pending clarification of goals and API review

New APIs of this sort should be discussed, and the goals motivating
the change clarified.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25670 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAdded a new trace logging message TRACE_PROFILE_ERR to improve the diagnostics of...
Zhanna Tsitkov [Fri, 3 Feb 2012 19:22:44 +0000 (19:22 +0000)]
Added a new trace logging message TRACE_PROFILE_ERR to improve the diagnostics of the potential misconfiguration.
Added profile_get_(string/integer/boolean)_nodef functions to the profile library to get the typed values from the configuration
 files (without setting these values to the defaults).
Used TRACE_PROFILE_ERR for the configuration diagnostics in krb5_init_context_profile API.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25669 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoBetter short/long descs in gss_display_mech_attr
Greg Hudson [Fri, 3 Feb 2012 03:19:33 +0000 (03:19 +0000)]
Better short/long descs in gss_display_mech_attr

RFC 5587 defines an "arc name" and a "purpose" for each mechanism
attribute.  gss_display_mech_attr was returning the purpose (which
isn't very short) in short_desc and a null buffer in long_desc (which
isn't necessarily conformant to the spec).  Instead, output the arc
name as the short_desc and the purpose as the long_desc.  This is more
useful and also more consistent with Heimdal, which outputs the arc
name as short_desc and either the purpose string or an empty string
for long_desc.

ticket: 7085

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25668 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoDump attributes differently in t_saslname
Greg Hudson [Fri, 3 Feb 2012 03:19:28 +0000 (03:19 +0000)]
Dump attributes differently in t_saslname

Dump the known attributes only once, before iterating over the
mechanisms, and display the short and long desc as well as the names
when doing so.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25667 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoDon't check mech in krb5_gss_inquire_cred_by_mech
Greg Hudson [Tue, 31 Jan 2012 21:35:34 +0000 (21:35 +0000)]
Don't check mech in krb5_gss_inquire_cred_by_mech

krb5_gss_inquire_cred_by_mech checks its mech argument against two of
the four mechs a krb5 cred might have (the krb5 mech and the old krb5
mech, but not the wrong Microsoft mech or the IAKERB mech), so would
spuriously fail for the other two mechs.  There is no reason to check
the mechanism if we assume a reasonable mechglue is interpreting
application gss_inquire_cred_by_mech calls, so just remove the check.

ticket: 7084
target_version: 1.10.1
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25666 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoSuppress maybe-uninitialized warning in x-deltat.y
Greg Hudson [Fri, 27 Jan 2012 21:27:47 +0000 (21:27 +0000)]
Suppress maybe-uninitialized warning in x-deltat.y

Recent versions of gcc can generate a maybe-uninitialized warning from
bison output instead of a regular uninitialized warning.  Suppress
both.  Fix from nalin@redhat.com.

ticket: 7080

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25665 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoClean up dispatch lookaside code slightly
Greg Hudson [Thu, 26 Jan 2012 22:05:25 +0000 (22:05 +0000)]
Clean up dispatch lookaside code slightly

Always log when we get a lookaside cache hit, eliminating a confusing
conditional.  This is a slight behavior change because we never used
to log a lookaside cache hit when we can't deliver the response via
UDP, but that was never really deliberate or important--we log all
sorts of stuff about responses which might turn out to be too big.

Also eliminate a signed/unsigned comparison warning in
finish_dispatch.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25661 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoVarious lookaside cache fixes
Greg Hudson [Thu, 26 Jan 2012 21:56:16 +0000 (21:56 +0000)]
Various lookaside cache fixes

Don't touch the lookaside cache if we're responding with a lookaside
cache entry.  Also, leave the null entry behind if we're deliberately
dropping a request (a rare case) so that we don't have to process it
again.  Fixes several lookaside problems in 1.10:

* When dropping a request because it was already being processed, we
  were erroneously removing the null entry, causing us to process the
  request again upon a second retransmit.

* When responding to a finished request with a lookaside entry, we
  were removing and re-adding the entry to the cache, resetting its
  time and performing unnecessary work.

* We were not caching responses we couldn't deliver because they were
  too big for UDP, causing us to re-process the request when it came
  in again via TCP instead of simply delivering the cached response.

ticket: 7082
target_version: 1.10
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25660 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoDon't use stack variable address in as_req state
Greg Hudson [Thu, 26 Jan 2012 17:01:05 +0000 (17:01 +0000)]
Don't use stack variable address in as_req state

The KDC's process_as_req was storing the address of a stack variable
(client_princ), which fails if the request is not immediately
serviced.  Move that variable to the state structure so its address
remains valid for the lifetime of the request.

ticket: 7081
target_version: 1.10
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25659 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAvoid sizeof(void) in ASN.1 encoder
Greg Hudson [Tue, 24 Jan 2012 16:12:41 +0000 (16:12 +0000)]
Avoid sizeof(void) in ASN.1 encoder

We were computing sizeof(void) when referencing atype_int_immediate
types in other types (primarily atype_tagged_thing).  gcc gives this a
pass but the Solaris compiler does not.  Use "int" as the dummy type
instead.  (The type is unimportant since int-immediates aren't used by
offset or sequence-of types.)

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25658 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoRedesign ASN.1 encoder engine, removing field_info
Greg Hudson [Tue, 24 Jan 2012 05:52:39 +0000 (05:52 +0000)]
Redesign ASN.1 encoder engine, removing field_info

Replace the "field" half of the ASN.1 encoder machinery with several
new struct atype_info types (offset, counted, and int_immediate) and a
new counted_type machinery used exclusively for object/integer pairs.
This change eliminates the two-way entanglement between atypes and
fields, and makes the encoder more independent of RFC 4120 ASN.1
conventions.

Defining sequences with the preprocessor macros is now slightly more
cumbersome; we need to define a type for each field and then string
them together with an array of struct atype_info *.  But it's not so
bad, and hopefully we can auto-generate some of this soon.

*_optional functions now return a bitmask of sequence field offsets
not present in the C type.  This will need some more attention before
we add decoding support to the engine, since it means sequence fields
no longer know whether they are optional or not.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25657 dc483132-0cff-0310-8789-dd5450dbe970

12 years agokadmin.local.8 belongs in ADMIN_mandir
Sam Hartman [Fri, 13 Jan 2012 21:20:47 +0000 (21:20 +0000)]
kadmin.local.8 belongs in ADMIN_mandir

Install kadmin.local.8 in ADMIN_MANDIR not CLIENT_MANDIR

ticket: 7073
tags: pullup
target_version: 1.10

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25654 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAdd shadow manpages for k5login.5 and k5identity.5
Tom Yu [Fri, 13 Jan 2012 20:47:26 +0000 (20:47 +0000)]
Add shadow manpages for k5login.5 and k5identity.5

Add shadow manpages dot.k5login and dot.k5identity for k5login.5 and
k5identity.5.  Stop generating .k5login.5 and .k5identity.5 from
sphinx (these will be taken care of by make install in src/man).  Add
generated k5identity.5.

Add SYNOPSIS sections to k5login.5 and k5identity.5 to make it more
clear that the filenames start with a dot.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25653 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoReverted reference to klogind. Minor reformating
Zhanna Tsitkov [Fri, 13 Jan 2012 18:39:36 +0000 (18:39 +0000)]
Reverted reference to klogind. Minor reformating

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25652 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoSimplify integer loading in ASN.1 encoding
Greg Hudson [Fri, 13 Jan 2012 17:35:30 +0000 (17:35 +0000)]
Simplify integer loading in ASN.1 encoding

Instead of defining an auxiliary load function for each integer
type, just use its size and signedness to decide how to load it.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25651 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAdd PKINIT decoder tests
Greg Hudson [Fri, 13 Jan 2012 15:04:35 +0000 (15:04 +0000)]
Add PKINIT decoder tests

Add tests to krb5_decode_test.c for PKINIT types.  Where the decoders
do not match the encoders, include comments and hand-generated
encodings which work with the decoder.

Add a comment to asn1_k_encode.c documenting inconsistencies between
the draft 9 PA-PK-AS-REQ spec and our encoder results.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25650 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoUpdated domain_realm section of krb5.conf. Reformated files
Zhanna Tsitkov [Thu, 12 Jan 2012 18:48:57 +0000 (18:48 +0000)]
Updated domain_realm section of krb5.conf. Reformated files

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25649 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAdded k5identity doc in RST format.
Zhanna Tsitkov [Thu, 12 Jan 2012 16:55:37 +0000 (16:55 +0000)]
Added k5identity doc in RST format.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25648 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix spurious clock skew caused by gak_fct delay
Greg Hudson [Wed, 11 Jan 2012 21:20:08 +0000 (21:20 +0000)]
Fix spurious clock skew caused by gak_fct delay

In get_in_tkt.c, a time offset is computed between the KDC's auth_time
and the current system time after the reply is decrypted.  Time may
have elapsed between these events because of a gak_fct invocation
which blocks on user input.  The resulting spurious time offset can
cause subsequent TGS-REQs to fail and can also cause the end time of
the next AS request to be in the past (issue #889) in cases where the
old ccache is opened to find the default principal.

Use the system time, without offset, for the request time of an AS
request, for more predictable kinit behavior.  Use this request time,
rather than the current time, when computing the clock skew after the
reply is decrypted.

ticket: 7063

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25644 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix an allocation size bug in ASN.1 tests
Greg Hudson [Tue, 10 Jan 2012 18:01:15 +0000 (18:01 +0000)]
Fix an allocation size bug in ASN.1 tests

ktest_make_sample_pa_pk_as_req_draft9 was allocating the wrong
size of objects for the trustedCertifiers array.  Fix it.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25638 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoUse DEFTAGGEDTYPE for FAST choice types
Greg Hudson [Tue, 10 Jan 2012 17:27:38 +0000 (17:27 +0000)]
Use DEFTAGGEDTYPE for FAST choice types

pa_fx_fast_request and pa_fx_fast_reply are defined in RFC 6113 as
extensible choice types with only one choice, which means they encode
as another type with a [0] tag wrapper.  Use DEFTAGGEDTYPE to add
this wrapper instead of DEFFIELDTYPE/FIELDOF_ENCODEAS, and add a
comment describing why.

After this change, all uses of DEFFIELDYPE are for dataptr/lenptr
types or just simple offset transformations on the base pointer.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25635 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoSimplify asn1_decode_kdc_dh_key_info
Greg Hudson [Tue, 10 Jan 2012 07:33:41 +0000 (07:33 +0000)]
Simplify asn1_decode_kdc_dh_key_info

Due to some lingering confusion, the last commit changing
asn1_decode_kdc_dh_key_info was correct but overly complicated (and
contained an incorrect comment).  Change it to just use get_lenfield
for subjectPublicKey.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25634 dc483132-0cff-0310-8789-dd5450dbe970

12 years agodocumentation license to CC-BY-SA 3.0 Unported
Tom Yu [Tue, 10 Jan 2012 04:23:56 +0000 (04:23 +0000)]
documentation license to CC-BY-SA 3.0 Unported

Update documentation license to Creative Commons
Attribution-ShareAlike 3.0 Unported.

ticket: 7067
target_version: 1.10
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25633 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAdded documentation for sserver, sclient and krb5-send-pr in RST format
Zhanna Tsitkov [Mon, 9 Jan 2012 21:45:52 +0000 (21:45 +0000)]
Added documentation for sserver, sclient and krb5-send-pr in RST format

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25632 dc483132-0cff-0310-8789-dd5450dbe970

12 years agodelete duplicate NOTICE file
Tom Yu [Mon, 9 Jan 2012 21:35:30 +0000 (21:35 +0000)]
delete duplicate NOTICE file

Delete the duplicate NOTICE file, as it is checked into the tree and
relative include paths work for sphinx.

ticket: 7065
status: open

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25631 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoMake dh_key_info encoder and decoder symmetric
Greg Hudson [Mon, 9 Jan 2012 21:03:58 +0000 (21:03 +0000)]
Make dh_key_info encoder and decoder symmetric

The dh_key_info encoder expects subjectPublicKey to contain the
contents of a bit string, but the decoder outputs the DER encoding of
the bit string including tag.  The PKINIT client code expects this, so
everything works, but the encoder and decoder should be symmetric.
Change the decoder to process the bit string (adding a bit string
decoding primitive) and modify the PKINIT client code to expect only
the bit string contents.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25626 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoinstall sphinx-generated manpages
Tom Yu [Mon, 9 Jan 2012 20:13:10 +0000 (20:13 +0000)]
install sphinx-generated manpages

Install sphinx-generated manpages.  Original nroff manpages remain for
reference until proofreading is complete.  Modify
doc/rst_source/conf.py to better deal with shadow manpages -- sphinx
will now build k5login.5 instead of .k5login.5, and kadmin.1 instead
of both kadmin.1 and kadmin.local.8.

Proofreaders should ensure that the original nroff manpages (and
associated Makefile rules) are deleted once their reST format
equivalents have been proofread.

ticket: 7064
status: open

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25625 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoRemove unneeded kdcRealm field in PKINIT structure
Greg Hudson [Sun, 8 Jan 2012 21:54:29 +0000 (21:54 +0000)]
Remove unneeded kdcRealm field in PKINIT structure

krb5_pk_authenticator_draft9 had a kdcRealm field which was set by the
client code but never encoded or decoded.  Remove it.  Eliminating this
field exposed a bug in auth_pack_draft9_optional; fix that.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25624 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix PKINIT serverDHNonce encoding
Greg Hudson [Sun, 8 Jan 2012 21:27:59 +0000 (21:27 +0000)]
Fix PKINIT serverDHNonce encoding

Use an explicit tag for serverDHNonce, as specified in RFC 4556,
rather than the implicit tag we historically used.  This bug had no
practical effect (and creates no interoperability issues) because we
never generate a serverDHNonce.

ticket: 7061

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25623 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoClean up the asn1 encoder design
Greg Hudson [Sun, 8 Jan 2012 02:10:47 +0000 (02:10 +0000)]
Clean up the asn1 encoder design

Now that the PKINIT types have been converted and atype_fn has only
one use, we can more easily modify the encoder so that any object can
be encoded without its tag, which makes for a cleaner design.  The
basic building block is now krb5int_asn1_encode_type, which encodes
the contents of a function and returns its tag information to the
caller.

atype_fn now has its own structure, and the encoder function it
references follows the semantics of krb5int_asn1_encode_type.
atype_opaque is now atype_der and goes with a new corresponding field
type (field_der); stored DER encodings are parsed to separate the tag
from the content.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25622 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoConvert securid module edata method
Greg Hudson [Sat, 7 Jan 2012 20:57:36 +0000 (20:57 +0000)]
Convert securid module edata method

r25348 made modified the edata method of the kdcpreauth interface to
be async-capable, but neglected to convert the securid_sam2 module's
edata function.  Do that now.

ticket: 7060
target_version: 1.10
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25621 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoRemove some unneeded accessor fields
Greg Hudson [Sat, 7 Jan 2012 17:26:13 +0000 (17:26 +0000)]
Remove some unneeded accessor fields

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25620 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoRemove some unused structures and encoders
Greg Hudson [Sat, 7 Jan 2012 16:50:06 +0000 (16:50 +0000)]
Remove some unused structures and encoders

krb5_alt_method was added in r6604 but never supported.  krb5_pwd_data
became unused when the Sandia kadmin system was replaced.
krb5_pa_server_referral_data and krb5_pa_svr_referral_data were added
in r21690 with internally-visible encoders which nothing uses.

Leave behind structure declarations in krb5.hin for API compatibility.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25619 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoRemove SAM encoders and structures
Greg Hudson [Sat, 7 Jan 2012 15:50:14 +0000 (15:50 +0000)]
Remove SAM encoders and structures

r24403 removed the old SAM support, but left behind the structures,
free functions, and ASN.1 encoders/decoders.  Remove those now.
(SAM-2 support is still present.)

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25618 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoConvert all remaining macro-coded ASN.1 encoders
Greg Hudson [Fri, 6 Jan 2012 21:17:14 +0000 (21:17 +0000)]
Convert all remaining macro-coded ASN.1 encoders

Use data-driven encoders for all of the remaining types which still
used macros (primarily PKINIT types), and get rid of the macros.  Do
not change any encoding behavior, but add some comments where behavior
differs from the spec.

DEFFNTYPE is now unused except for the kdc_req_body hack.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25617 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAdd support for CHOICE in ASN.1 encoder
Greg Hudson [Fri, 6 Jan 2012 21:13:59 +0000 (21:13 +0000)]
Add support for CHOICE in ASN.1 encoder

Add a new field type where the length offset indicates a distinguisher
and the data offset indicates a union address.  The field's type is an
atype_choice containing a seq_info indexed by the distinguisher.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25616 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFactor out length retrieval in ASN.1 encoder
Greg Hudson [Fri, 6 Jan 2012 21:10:42 +0000 (21:10 +0000)]
Factor out length retrieval in ASN.1 encoder

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25615 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoSupport implicit context tags in ASN.1 fields
Greg Hudson [Fri, 6 Jan 2012 21:08:54 +0000 (21:08 +0000)]
Support implicit context tags in ASN.1 fields

Add a field_info bit (the 32nd bit of the bitfields) indicating whether
the context tag is implicit, and support it in encode_a_field.  Adjust
all field-generating macros and invocations to include the new bit
(always 0 for the moment).

For atype_tagged_thing, narrow the construction field to six bits and
add an implicit bit.  We could remove the construction field if it
weren't for DEFOCTETWRAPPEDTYPE abusing atype_tagged_thing a little
bit, since (normal) explicit tags are always constructed and implicit
tag construction is computed from the base type.

Given how rarely implicit tagging is used, it might be nice to have
separate _IMPLICIT macros rather than an extra argument to every
field.  But we already have separate _OPT macros for optional fields
and FIELDOF_STRING vs. FIELDOF_STRINGL, so we start to get a
combinatoric explosion in the number of macros.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25614 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoSupport ASN.1 encoding without the outer tag
Greg Hudson [Fri, 6 Jan 2012 21:06:10 +0000 (21:06 +0000)]
Support ASN.1 encoding without the outer tag

In order to support implicit tagging, make it possible to ASN.1-encode
a value without its outer tag, instead remembering the construction
bit of the omitted tag.

A cleaner design would be to have separate functions for encoding a
value's contents and its tag.  However, we can't do that for atype_fn
or atype_opaque, and the possible indirections between types and
fields mean we want to stay at the "encode everything" level for as
long as possible to allow implicit tagging of the largest possible
subset of types.  If we can get rid of atype_fn, we may be able to
switch to the cleaner design with some adjustments to atype_opaque.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25613 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoUse content-only ASN.1 primitives
Greg Hudson [Fri, 6 Jan 2012 20:52:12 +0000 (20:52 +0000)]
Use content-only ASN.1 primitives

As part of implicit tag support, rework ASN.1 encoding primitives so
that they encode only content, not tags.  Combine primitives which
become identical with this change.  The new atype_primitive type
invokes a primitive encoder and adds a tag.  atype_fn_len is split
into atype_string and atype_opaque, both of which are hardcoded to
use asn1_encode_bytestring.

For the encoders still using macros, create asn1_addprimitive,
asn1_addinteger, and asn1_addstring macros which call the primitive
encoder function and add a tag.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25612 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoMake ASN.1 struct atype_info more extensible
Greg Hudson [Fri, 6 Jan 2012 20:52:09 +0000 (20:52 +0000)]
Make ASN.1 struct atype_info more extensible

Instead of including all of the possible type fields in struct
atype_info, use a pointer to a type-specific structure.  This might
save a little space, but more importantly, if we get to the point of
exposing this stuff across plugin APIs, it allows ASN.1 type
information to be extensible via defining new atype_type values.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25611 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAdd missing test cases for ASN.1 types
Greg Hudson [Fri, 6 Jan 2012 20:52:05 +0000 (20:52 +0000)]
Add missing test cases for ASN.1 types

Add test cases for ASN.1 types which didn't previously have them.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25610 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoAdd test cases for PKINIT ASN.1 encoders
Greg Hudson [Fri, 6 Jan 2012 20:52:02 +0000 (20:52 +0000)]
Add test cases for PKINIT ASN.1 encoders

Do not add decode tests, because those would trip some bugs in the
decoders, and we can't safely fix some of those bugs without interop
testing.  Encode tests are sufficient to detect when we
unintentionally change the output of the encoders.

Fix trval2() not to use the context shortcut on primitive context
tags.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25609 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoSimplify and reformat ASN.1 test code
Greg Hudson [Fri, 6 Jan 2012 20:51:57 +0000 (20:51 +0000)]
Simplify and reformat ASN.1 test code

Use abort-on-error memory allocation to reduce failure handling.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25608 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix asn1_encode_subject_pk_info without params
Greg Hudson [Fri, 6 Jan 2012 20:46:17 +0000 (20:46 +0000)]
Fix asn1_encode_subject_pk_info without params

r20923 inadvertently broke asn1_encode_subject_pk_info in the case
where algorithm.parameters.length == 0.  Fortunately this case never
happens, but fix it anyway.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25607 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoRemove unused functions (older API residue) krb5_realm_iterator* and krb5_free_realm_...
Zhanna Tsitkov [Wed, 4 Jan 2012 15:47:52 +0000 (15:47 +0000)]
Remove unused functions (older API residue) krb5_realm_iterator* and krb5_free_realm_string

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25606 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix implicit declaration in ksu for some builds
Greg Hudson [Wed, 28 Dec 2011 01:31:59 +0000 (01:31 +0000)]
Fix implicit declaration in ksu for some builds

ksu's setenv implementation needs to include <string.h> for memcpy.
Patch from basch@alum.mit.edu.

ticket: 7057

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25605 dc483132-0cff-0310-8789-dd5450dbe970

12 years agoFix an unlikely memory leak in r25591
Greg Hudson [Tue, 27 Dec 2011 06:39:07 +0000 (06:39 +0000)]
Fix an unlikely memory leak in r25591

ticket: 6936

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25604 dc483132-0cff-0310-8789-dd5450dbe970

13 years agoUpdated env variable sections, formating and other corrections
Zhanna Tsitkov [Thu, 22 Dec 2011 16:25:43 +0000 (16:25 +0000)]
Updated env variable sections, formating and  other corrections

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25602 dc483132-0cff-0310-8789-dd5450dbe970