r23456: Update Samba4 to current lorikeet-heimdal.
[jelmer/samba4-debian.git] / source / heimdal / lib / gssapi / mech / gss_oid_to_str.c
similarity index 72%
rename from source/heimdal/lib/gssapi/krb5/test_oid_set_member.c
rename to source/heimdal/lib/gssapi/mech/gss_oid_to_str.c
index 5a0ac4418f71e5c5bd74b32095ac31d580291b61..3195370b77721a66af114de68835901a54be4c9a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2003 Kungliga Tekniska Högskolan
+ * Copyright (c) 2006 Kungliga Tekniska Högskolan
  * (Royal Institute of Technology, Stockholm, Sweden). 
  * All rights reserved. 
  *
  * SUCH DAMAGE. 
  */
 
-#include "krb5/gsskrb5_locl.h"
+#include "mech_locl.h"
+RCSID("$Id: gss_oid_to_str.c 19963 2007-01-17 16:01:22Z lha $");
 
-RCSID("$Id: test_oid_set_member.c,v 1.7 2006/10/07 22:15:50 lha Exp $");
-
-OM_uint32 _gsskrb5_test_oid_set_member
-           (OM_uint32 * minor_status,
-            const gss_OID member,
-            const gss_OID_set set,
-            int * present
-           )
+OM_uint32
+gss_oid_to_str(OM_uint32 *minor_status, gss_OID oid, gss_buffer_t oid_str)
 {
-    size_t i;
+    int ret;
+    size_t size;
+    heim_oid o;
+    char *p;
+
+    _mg_buffer_zero(oid_str);
+
+    ret = der_get_oid (oid->elements, oid->length, &o, &size);
+    if (ret) {
+       *minor_status = ret;
+       return GSS_S_FAILURE;
+    }
+
+    ret = der_print_heim_oid(&o, ' ', &p);
+    der_free_oid(&o);
+    if (ret) {
+       *minor_status = ret;
+       return GSS_S_FAILURE;
+    }
+    
+    oid_str->value = p;
+    oid_str->length = strlen(p);
 
     *minor_status = 0;
-    *present = 0;
-    for (i = 0; i < set->count; ++i)
-       if (gss_oid_equal(member, &set->elements[i]) != 0) {
-           *present = 1;
-           break;
-       }
     return GSS_S_COMPLETE;
 }