]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Add anonymous principal and name type
authorSam Hartman <hartmans@mit.edu>
Wed, 23 Dec 2009 20:59:03 +0000 (20:59 +0000)
committerSam Hartman <hartmans@mit.edu>
Wed, 23 Dec 2009 20:59:03 +0000 (20:59 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/branches/anonymous@23486 dc483132-0cff-0310-8789-dd5450dbe970

src/include/krb5/krb5.hin
src/lib/krb5/krb/bld_princ.c
src/lib/krb5/libkrb5.exports

index 9e5c3853f5fc4b148155595e9d6acb9765641d72..bb62453f5a31f27b3da46aea7b2cb6b34fae80a9 100644 (file)
@@ -261,6 +261,7 @@ typedef krb5_principal_data * krb5_principal;
 #define KRB5_NT_SMTP_NAME               7
 /* Windows 2000 UPN */
 #define KRB5_NT_ENTERPRISE_PRINCIPAL    10
+#define KRB5_NT_WELLKNOWN 11
 /* Windows 2000 UPN and SID */
 #define KRB5_NT_MS_PRINCIPAL            -128
 /* NT 4 style name */
@@ -293,6 +294,13 @@ typedef const krb5_principal_data *krb5_const_principal;
  */
 krb5_boolean KRB5_CALLCONV krb5_is_referral_realm(const krb5_data *);
 
+/*Both these functions return constant storage that must not be freed*/
+
+const krb5_data *KRB5_CALLCONV
+krb5_anonymous_realm(void);
+krb5_const_principal KRB5_CALLCONV
+krb5_anonymous_principal(void);
+
 /*
  * end "base-defs.h"
  */
index ac2c92a9e3ad3821c3ea718d3c014751c3bc003c..e4532ef6ef6f59537e3d41ae0a0981d147a80984 100644 (file)
@@ -187,3 +187,33 @@ krb5_build_principal(krb5_context context,
 
     return retval;
 }
+
+/*Anonymous and well known principals*/
+static const char anon_realm_str[]
+= "WELLKNOWN:ANONYMOUS";
+static const krb5_data anon_realm_data = {
+    KV5M_DATA, sizeof(anon_realm_str)-1,
+    (char *) anon_realm_str};
+static const char wellknown_str[] = "WELLKNOWN";
+static const char anon_str[] = "ANONYMOUS";
+static const krb5_data anon_princ_data[] = {
+    {KV5M_DATA, sizeof(wellknown_str)-1, (char *) wellknown_str},
+    {KV5M_DATA, sizeof(anon_str)-1, (char *)anon_str}
+};
+
+const krb5_principal_data anon_princ = {
+    KV5M_PRINCIPAL,
+    {KV5M_DATA, sizeof(anon_realm_str)-1, (char *) anon_realm_str},
+    (krb5_data *) anon_princ_data, 2, KRB5_NT_WELLKNOWN
+};
+
+const krb5_data * KRB5_CALLCONV
+krb5_anonymous_realm()
+{
+    return &anon_realm_data;
+}
+krb5_const_principal KRB5_CALLCONV
+krb5_anonymous_principal()
+{
+    return &anon_princ;
+}
index 15a887b2f8215a05f46f45a83c5cfe2750e3f25b..19303a6d10ccb496a7e1da14a0757fe23c7221e9 100644 (file)
@@ -109,6 +109,8 @@ krb5_address_compare
 krb5_address_order
 krb5_address_search
 krb5_aname_to_localname
+krb5_anonymous_principal
+krb5_anonymous_realm
 krb5_appdefault_boolean
 krb5_appdefault_string
 krb5_auth_con_free