aboutsummaryrefslogtreecommitdiffstats
path: root/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples
diff options
context:
space:
mode:
authorAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
committerAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
commitaf1a266670d040d2f4083ff309d732d648afba2a (patch)
tree2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples
parente02cda008591317b1625707ff8e115a4841aa889 (diff)
Add submodule dependency filesHEADmaster
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples')
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/cc_set_config.c33
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/cc_unique.c23
-rwxr-xr-xroms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/error_message.c20
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/tkt_creds.c55
-rw-r--r--roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/verify_init_creds.c28
5 files changed, 159 insertions, 0 deletions
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/cc_set_config.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/cc_set_config.c
new file mode 100644
index 000000000..838ff7e22
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/cc_set_config.c
@@ -0,0 +1,33 @@
+/** @example cc_set_config.c
+ *
+ * Usage examples for krb5_cc_set_config and krb5_cc_get_config functions
+ */
+#include <k5-int.h>
+
+krb5_error_code
+func_set(krb5_context context, krb5_ccache id,
+ krb5_const_principal principal, const char *key)
+{
+ krb5_data config_data;
+
+ config_data.data = "yes";
+ config_data.length = strlen(config_data.data);
+ return krb5_cc_set_config(context, id, principal, key, &config_data);
+}
+
+krb5_error_code
+func_get(krb5_context context, krb5_ccache id,
+ krb5_const_principal principal, const char *key)
+{
+ krb5_data config_data;
+ krb5_error_code ret;
+
+ config_data.data = NULL;
+ ret = krb5_cc_get_config(context, id, principal, key, &config_data);
+ if (ret){
+ return ret;
+ }
+ /* do something */
+ krb5_free_data_contents(context, &config_data);
+ return ret;
+}
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/cc_unique.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/cc_unique.c
new file mode 100644
index 000000000..0a03edb52
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/cc_unique.c
@@ -0,0 +1,23 @@
+/** @example cc_unique.c
+ *
+ * Usage example for krb5_cc_new_unique function
+ */
+#include "k5-int.h"
+
+krb5_error_code
+func(krb5_context context)
+{
+ krb5_error_code ret;
+ krb5_ccache ccache = NULL;
+
+ ret = krb5_cc_new_unique(context, "MEMORY", NULL, &ccache);
+ if (ret){
+ ccache = NULL;
+ return ret;
+ }
+ /* do something */
+ if (ccache)
+ (void)krb5_cc_destroy(context, ccache);
+ return 0;
+}
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/error_message.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/error_message.c
new file mode 100755
index 000000000..1e1569760
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/error_message.c
@@ -0,0 +1,20 @@
+/** @example error_message.c
+ *
+ * Demo for krb5_get/set/free_error_message function family
+ */
+#include <k5-int.h>
+
+krb5_error_code
+func(krb5_context context)
+{
+ krb5_error_code ret;
+
+ ret = krb5_func(context);
+ if (ret) {
+ const char *err_str = krb5_get_error_message(context, ret);
+ krb5_set_error_message(context, ret,
+ "Failed krb5_func: %s", err_str);
+ krb5_free_error_message(context, err_str);
+ }
+}
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/tkt_creds.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/tkt_creds.c
new file mode 100644
index 000000000..9ddf5cc8e
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/tkt_creds.c
@@ -0,0 +1,55 @@
+/** @example tkt_creds.c
+ *
+ * Usage example for krb5_tkt_creds function family
+ */
+#include "krb5.h"
+
+krb5_error_code
+func(krb5_context context, krb5_flags options,
+ krb5_ccache ccache, krb5_creds *in_creds,
+ krb5_creds **out_creds)
+{
+ krb5_error_code code = KRB5_OK;
+ krb5_creds *ncreds = NULL;
+ krb5_tkt_creds_context ctx = NULL;
+
+ *out_creds = NULL;
+
+ /* Allocate a container. */
+ ncreds = k5alloc(sizeof(*ncreds), &code);
+ if (ncreds == NULL)
+ goto cleanup;
+
+ /* Make and execute a krb5_tkt_creds context to get the credential. */
+ code = krb5_tkt_creds_init(context, ccache, in_creds, options, &ctx);
+ if (code != KRB5_OK)
+ goto cleanup;
+ code = krb5_tkt_creds_get(context, ctx);
+ if (code != KRB5_OK)
+ goto cleanup;
+ code = krb5_tkt_creds_get_creds(context, ctx, ncreds);
+ if (code != KRB5_OK)
+ goto cleanup;
+
+ *out_creds = ncreds;
+ ncreds = NULL;
+
+cleanup:
+ krb5_free_creds(context, ncreds);
+ krb5_tkt_creds_free(context, ctx);
+ return code;
+}
+
+/* Allocate zeroed memory; set *code to 0 on success or ENOMEM on failure. */
+static inline void *
+k5alloc(size_t len, krb5_error_code *code)
+{
+ void *ptr;
+
+ /* Allocate at least one byte since zero-byte allocs may return NULL. */
+ ptr = calloc((len > 0) ? len : 1, 1);
+ *code = (ptr == NULL) ? ENOMEM : 0;
+ return ptr;
+}
+
+
diff --git a/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/verify_init_creds.c b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/verify_init_creds.c
new file mode 100644
index 000000000..c22e25284
--- /dev/null
+++ b/roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/doc/doxy_examples/verify_init_creds.c
@@ -0,0 +1,28 @@
+/** @example verify_init_creds.c
+ *
+ * Usage example for krb5_verify_init_creds function family
+ */
+#include "k5-int.h"
+
+krb5_error_code
+func(krb5_context context, krb5_creds *creds, krb5_principal server_principal)
+{
+ krb5_error_code ret = KRB5_OK;
+ krb5_verify_init_creds_opt options;
+
+ krb5_verify_init_creds_opt_init (&options);
+ krb5_verify_init_creds_opt_set_ap_req_nofail (&options, 1);
+
+ ret = krb5_verify_init_creds(context,
+ creds,
+ server_principal,
+ NULL /* use default keytab */,
+ NULL /* don't store creds in ccache */,
+ &options);
+ if (ret) {
+ /* error while verifying credentials for server */
+ }
+
+ return ret;
+}
+