|
Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа? |
Спецификация 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 ] , например, кто и когда отводит память под объекты и под дескрипторы, и каким образом эту память можно освобождать. Мы, однако, не будем на этом останавливаться.