Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа? |
Спецификация Internet-сообщества "Обобщенный прикладной программный интерфейс службы безопасности"
Представление некоторых объектов интерфейса безопасности в среде языка C
Представление средствами языка C объектов, фигурирующих в обобщенном интерфейсе безопасности GSS-API, по большей части довольно очевидно (или не может быть стандартизовано, так как зависит от специфики механизма безопасности ).
Прежде всего, вводится тип OM_uint32, соответствующий 32-битным беззнаковым целым значениям. Большинство структурных значений представляется с помощью указателя на дескриптор (см. листинг 11.1).
typedef struct gss_buffer_desc_struct { size_t length; void *value; } gss_buffer_desc, *gss_buffer_t;Листинг 11.1. Описание дескриптора буфера и указателя на него.
Тип gss_buffer_t используется при задании составных аргументов - имен, дескрипторов, токенов, сообщений и т.п.
Идентификаторы объектов представляются следующим образом (см. листинг 11.2).
typedef struct gss_OID_desc_struct { OM_uint32 length; void *elements; } gss_OID_desc, *gss_OID;Листинг 11.2. Описание дескриптора идентификаторов объектов и указателя на него.
Указатели elements ссылаются на начало представления идентификаторов, т. е. на последовательности байт, устроенных в соответствии с базовыми правилами ASN.1.
Наборы объектных идентификаторов представляются так, как показано на листинге 11.3.
typedef struct gss_OID_set_desc_struct { int count; gss_OID elements; } gss_OID_set_desc, *gss_OID_set;Листинг 11.3. Описание дескриптора набора объектных идентификаторов и указателя на него.
Вводятся и некоторые другие типы, уточняющие представление структурированных значений.
На листинге 11.4 показано, как выглядит на языке C описание функции GSS_Init_sec_context.
OM_uint32 GSS_Init_sec_context ( OM_uint32 *minor_status, const gss_cred_id_t initiator_cred_handle, gss_ctx_id_t *context_handle, const gss_name_t target_name, const gss_OID mech_type, OM_uint32 req_flags, OM_uint32 time_req, const gss_channel_bindings_t input_chan_bindings, const gss_buffer_t input_token gss_OID *actual_mech_type, gss_buffer_t output_token, OM_uint32 *ret_flags, OM_uint32 *time_rec );Листинг 11.4. Описание функции GSS_Init_sec_context.
Отметим, что параметр context_handle является здесь одновременно входным и выходным, а основной код завершения возвращается как результат функции.
Разумеется, есть еще много аспектов, оговоренных в спецификациях [ 85 ] , например, кто и когда отводит память под объекты и под дескрипторы, и каким образом эту память можно освобождать. Мы, однако, не будем на этом останавливаться.