asn1 748 lib/util/asn1.c struct asn1_data *asn1 = asn1_init(NULL);
asn1 751 lib/util/asn1.c NT_STATUS_HAVE_NO_MEMORY(asn1);
asn1 753 lib/util/asn1.c asn1->data = blob.data;
asn1 754 lib/util/asn1.c asn1->length = blob.length;
asn1 755 lib/util/asn1.c asn1_start_tag(asn1, tag);
asn1 756 lib/util/asn1.c if (asn1->has_error) {
asn1 757 lib/util/asn1.c talloc_free(asn1);
asn1 760 lib/util/asn1.c size = asn1_tag_remaining(asn1) + asn1->ofs;
asn1 762 lib/util/asn1.c talloc_free(asn1);
asn1 28 source3/libsmb/spnego.c static bool read_negTokenInit(TALLOC_CTX *mem_ctx, ASN1_DATA *asn1, negTokenInit_t *token)
asn1 32 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_CONTEXT(0));
asn1 33 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_SEQUENCE(0));
asn1 35 source3/libsmb/spnego.c while (!asn1->has_error && 0 < asn1_tag_remaining(asn1)) {
asn1 38 source3/libsmb/spnego.c switch (asn1->data[asn1->ofs]) {
asn1 41 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_CONTEXT(0));
asn1 42 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_SEQUENCE(0));
asn1 45 source3/libsmb/spnego.c for (i = 0; !asn1->has_error &&
asn1 46 source3/libsmb/spnego.c 0 < asn1_tag_remaining(asn1); i++) {
asn1 51 source3/libsmb/spnego.c asn1->has_error = True;
asn1 54 source3/libsmb/spnego.c asn1_read_OID(asn1, mem_ctx, &p_oid);
asn1 59 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 60 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 64 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_CONTEXT(1));
asn1 65 source3/libsmb/spnego.c asn1_read_Integer(asn1, &token->reqFlags);
asn1 67 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 71 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_CONTEXT(2));
asn1 72 source3/libsmb/spnego.c asn1_read_OctetString(asn1, mem_ctx, &token->mechToken);
asn1 73 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 77 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_CONTEXT(3));
asn1 78 source3/libsmb/spnego.c if (asn1->data[asn1->ofs] == ASN1_OCTET_STRING) {
asn1 79 source3/libsmb/spnego.c asn1_read_OctetString(asn1, mem_ctx,
asn1 85 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_SEQUENCE(0));
asn1 86 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_CONTEXT(0));
asn1 87 source3/libsmb/spnego.c asn1_read_GeneralString(asn1, mem_ctx, &mechListMIC);
asn1 88 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 89 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 95 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 98 source3/libsmb/spnego.c asn1->has_error = True;
asn1 103 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 104 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 106 source3/libsmb/spnego.c return !asn1->has_error;
asn1 109 source3/libsmb/spnego.c static bool write_negTokenInit(ASN1_DATA *asn1, negTokenInit_t *token)
asn1 111 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_CONTEXT(0));
asn1 112 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_SEQUENCE(0));
asn1 118 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_CONTEXT(0));
asn1 119 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_SEQUENCE(0));
asn1 121 source3/libsmb/spnego.c asn1_write_OID(asn1, token->mechTypes[i]);
asn1 123 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 124 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 131 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_CONTEXT(1));
asn1 132 source3/libsmb/spnego.c asn1_write_Integer(asn1, flags);
asn1 133 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 138 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_CONTEXT(2));
asn1 139 source3/libsmb/spnego.c asn1_write_OctetString(asn1, token->mechToken.data,
asn1 141 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 146 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_CONTEXT(3));
asn1 149 source3/libsmb/spnego.c asn1_write_OctetString(asn1, token->mechListMIC.data,
asn1 154 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_SEQUENCE(0));
asn1 155 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_CONTEXT(0));
asn1 156 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_GENERAL_STRING);
asn1 157 source3/libsmb/spnego.c asn1_write(asn1, token->mechListMIC.data,
asn1 159 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 160 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 161 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 163 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 166 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 167 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 169 source3/libsmb/spnego.c return !asn1->has_error;
asn1 172 source3/libsmb/spnego.c static bool read_negTokenTarg(TALLOC_CTX *mem_ctx, ASN1_DATA *asn1, negTokenTarg_t *token)
asn1 176 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_CONTEXT(1));
asn1 177 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_SEQUENCE(0));
asn1 179 source3/libsmb/spnego.c while (!asn1->has_error && 0 < asn1_tag_remaining(asn1)) {
asn1 180 source3/libsmb/spnego.c switch (asn1->data[asn1->ofs]) {
asn1 182 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_CONTEXT(0));
asn1 183 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_ENUMERATED);
asn1 184 source3/libsmb/spnego.c asn1_read_uint8(asn1, &token->negResult);
asn1 185 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 186 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 190 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_CONTEXT(1));
asn1 191 source3/libsmb/spnego.c asn1_read_OID(asn1, mem_ctx, &mech);
asn1 192 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 197 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_CONTEXT(2));
asn1 198 source3/libsmb/spnego.c asn1_read_OctetString(asn1, mem_ctx, &token->responseToken);
asn1 199 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 202 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_CONTEXT(3));
asn1 203 source3/libsmb/spnego.c asn1_read_OctetString(asn1, mem_ctx, &token->mechListMIC);
asn1 204 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 207 source3/libsmb/spnego.c asn1->has_error = True;
asn1 212 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 213 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 215 source3/libsmb/spnego.c return !asn1->has_error;
asn1 218 source3/libsmb/spnego.c static bool write_negTokenTarg(ASN1_DATA *asn1, negTokenTarg_t *token)
asn1 220 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_CONTEXT(1));
asn1 221 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_SEQUENCE(0));
asn1 223 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_CONTEXT(0));
asn1 224 source3/libsmb/spnego.c asn1_write_enumerated(asn1, token->negResult);
asn1 225 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 228 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_CONTEXT(1));
asn1 229 source3/libsmb/spnego.c asn1_write_OID(asn1, token->supportedMech);
asn1 230 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 234 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_CONTEXT(2));
asn1 235 source3/libsmb/spnego.c asn1_write_OctetString(asn1, token->responseToken.data,
asn1 237 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 241 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_CONTEXT(3));
asn1 242 source3/libsmb/spnego.c asn1_write_OctetString(asn1, token->mechListMIC.data,
asn1 244 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 247 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 248 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 250 source3/libsmb/spnego.c return !asn1->has_error;
asn1 255 source3/libsmb/spnego.c ASN1_DATA *asn1;
asn1 260 source3/libsmb/spnego.c asn1 = asn1_init(mem_ctx);
asn1 261 source3/libsmb/spnego.c if (asn1 == NULL) {
asn1 265 source3/libsmb/spnego.c asn1_load(asn1, data);
asn1 267 source3/libsmb/spnego.c switch (asn1->data[asn1->ofs]) {
asn1 269 source3/libsmb/spnego.c asn1_start_tag(asn1, ASN1_APPLICATION(0));
asn1 270 source3/libsmb/spnego.c asn1_check_OID(asn1, OID_SPNEGO);
asn1 271 source3/libsmb/spnego.c if (read_negTokenInit(mem_ctx, asn1, &token->negTokenInit)) {
asn1 274 source3/libsmb/spnego.c asn1_end_tag(asn1);
asn1 277 source3/libsmb/spnego.c if (read_negTokenTarg(mem_ctx, asn1, &token->negTokenTarg)) {
asn1 285 source3/libsmb/spnego.c if (!asn1->has_error) ret = asn1->ofs;
asn1 286 source3/libsmb/spnego.c asn1_free(asn1);
asn1 293 source3/libsmb/spnego.c ASN1_DATA *asn1;
asn1 296 source3/libsmb/spnego.c asn1 = asn1_init(talloc_tos());
asn1 297 source3/libsmb/spnego.c if (asn1 == NULL) {
asn1 303 source3/libsmb/spnego.c asn1_push_tag(asn1, ASN1_APPLICATION(0));
asn1 304 source3/libsmb/spnego.c asn1_write_OID(asn1, OID_SPNEGO);
asn1 305 source3/libsmb/spnego.c write_negTokenInit(asn1, &spnego->negTokenInit);
asn1 306 source3/libsmb/spnego.c asn1_pop_tag(asn1);
asn1 309 source3/libsmb/spnego.c write_negTokenTarg(asn1, &spnego->negTokenTarg);
asn1 312 source3/libsmb/spnego.c asn1->has_error = True;
asn1 316 source3/libsmb/spnego.c if (!asn1->has_error) {
asn1 317 source3/libsmb/spnego.c *blob = data_blob(asn1->data, asn1->length);
asn1 318 source3/libsmb/spnego.c ret = asn1->ofs;
asn1 320 source3/libsmb/spnego.c asn1_free(asn1);
asn1 28 source4/auth/gensec/spnego_parse.c static bool read_negTokenInit(struct asn1_data *asn1, TALLOC_CTX *mem_ctx,
asn1 33 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_CONTEXT(0));
asn1 34 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_SEQUENCE(0));
asn1 36 source4/auth/gensec/spnego_parse.c while (!asn1->has_error && 0 < asn1_tag_remaining(asn1)) {
asn1 39 source4/auth/gensec/spnego_parse.c if (!asn1_peek_uint8(asn1, &context)) {
asn1 40 source4/auth/gensec/spnego_parse.c asn1->has_error = true;
asn1 47 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_CONTEXT(0));
asn1 48 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_SEQUENCE(0));
asn1 51 source4/auth/gensec/spnego_parse.c for (i = 0; !asn1->has_error &&
asn1 52 source4/auth/gensec/spnego_parse.c 0 < asn1_tag_remaining(asn1); i++) {
asn1 56 source4/auth/gensec/spnego_parse.c asn1_read_OID(asn1, token->mechTypes, token->mechTypes + i);
asn1 60 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 61 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 65 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_CONTEXT(1));
asn1 66 source4/auth/gensec/spnego_parse.c asn1_read_Integer(asn1, &token->reqFlags);
asn1 68 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 72 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_CONTEXT(2));
asn1 73 source4/auth/gensec/spnego_parse.c asn1_read_OctetString(asn1, mem_ctx, &token->mechToken);
asn1 74 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 80 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_CONTEXT(3));
asn1 81 source4/auth/gensec/spnego_parse.c if (!asn1_peek_uint8(asn1, &type_peek)) {
asn1 82 source4/auth/gensec/spnego_parse.c asn1->has_error = true;
asn1 86 source4/auth/gensec/spnego_parse.c asn1_read_OctetString(asn1, mem_ctx,
asn1 92 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_SEQUENCE(0));
asn1 93 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_CONTEXT(0));
asn1 94 source4/auth/gensec/spnego_parse.c asn1_read_GeneralString(asn1, mem_ctx, &mechListMIC);
asn1 95 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 96 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 100 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 104 source4/auth/gensec/spnego_parse.c asn1->has_error = true;
asn1 109 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 110 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 112 source4/auth/gensec/spnego_parse.c return !asn1->has_error;
asn1 115 source4/auth/gensec/spnego_parse.c static bool write_negTokenInit(struct asn1_data *asn1, struct spnego_negTokenInit *token)
asn1 117 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_CONTEXT(0));
asn1 118 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_SEQUENCE(0));
asn1 124 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_CONTEXT(0));
asn1 125 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_SEQUENCE(0));
asn1 127 source4/auth/gensec/spnego_parse.c asn1_write_OID(asn1, token->mechTypes[i]);
asn1 129 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 130 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 137 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_CONTEXT(1));
asn1 138 source4/auth/gensec/spnego_parse.c asn1_write_Integer(asn1, flags);
asn1 139 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 144 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_CONTEXT(2));
asn1 145 source4/auth/gensec/spnego_parse.c asn1_write_OctetString(asn1, token->mechToken.data,
asn1 147 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 152 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_CONTEXT(3));
asn1 155 source4/auth/gensec/spnego_parse.c asn1_write_OctetString(asn1, token->mechListMIC.data,
asn1 160 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_SEQUENCE(0));
asn1 161 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_CONTEXT(0));
asn1 162 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_GENERAL_STRING);
asn1 163 source4/auth/gensec/spnego_parse.c asn1_write(asn1, token->mechListMIC.data,
asn1 165 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 166 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 167 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 169 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 172 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 173 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 175 source4/auth/gensec/spnego_parse.c return !asn1->has_error;
asn1 178 source4/auth/gensec/spnego_parse.c static bool read_negTokenTarg(struct asn1_data *asn1, TALLOC_CTX *mem_ctx,
asn1 183 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_CONTEXT(1));
asn1 184 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_SEQUENCE(0));
asn1 186 source4/auth/gensec/spnego_parse.c while (!asn1->has_error && 0 < asn1_tag_remaining(asn1)) {
asn1 188 source4/auth/gensec/spnego_parse.c if (!asn1_peek_uint8(asn1, &context)) {
asn1 189 source4/auth/gensec/spnego_parse.c asn1->has_error = true;
asn1 195 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_CONTEXT(0));
asn1 196 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_ENUMERATED);
asn1 197 source4/auth/gensec/spnego_parse.c asn1_read_uint8(asn1, &token->negResult);
asn1 198 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 199 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 202 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_CONTEXT(1));
asn1 203 source4/auth/gensec/spnego_parse.c asn1_read_OID(asn1, mem_ctx, &token->supportedMech);
asn1 204 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 207 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_CONTEXT(2));
asn1 208 source4/auth/gensec/spnego_parse.c asn1_read_OctetString(asn1, mem_ctx, &token->responseToken);
asn1 209 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 212 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_CONTEXT(3));
asn1 213 source4/auth/gensec/spnego_parse.c asn1_read_OctetString(asn1, mem_ctx, &token->mechListMIC);
asn1 214 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 217 source4/auth/gensec/spnego_parse.c asn1->has_error = true;
asn1 222 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 223 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 225 source4/auth/gensec/spnego_parse.c return !asn1->has_error;
asn1 228 source4/auth/gensec/spnego_parse.c static bool write_negTokenTarg(struct asn1_data *asn1, struct spnego_negTokenTarg *token)
asn1 230 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_CONTEXT(1));
asn1 231 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_SEQUENCE(0));
asn1 234 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_CONTEXT(0));
asn1 235 source4/auth/gensec/spnego_parse.c asn1_write_enumerated(asn1, token->negResult);
asn1 236 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 240 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_CONTEXT(1));
asn1 241 source4/auth/gensec/spnego_parse.c asn1_write_OID(asn1, token->supportedMech);
asn1 242 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 246 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_CONTEXT(2));
asn1 247 source4/auth/gensec/spnego_parse.c asn1_write_OctetString(asn1, token->responseToken.data,
asn1 249 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 253 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_CONTEXT(3));
asn1 254 source4/auth/gensec/spnego_parse.c asn1_write_OctetString(asn1, token->mechListMIC.data,
asn1 256 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 259 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 260 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 262 source4/auth/gensec/spnego_parse.c return !asn1->has_error;
asn1 267 source4/auth/gensec/spnego_parse.c struct asn1_data *asn1;
asn1 277 source4/auth/gensec/spnego_parse.c asn1 = asn1_init(mem_ctx);
asn1 278 source4/auth/gensec/spnego_parse.c if (asn1 == NULL) {
asn1 282 source4/auth/gensec/spnego_parse.c asn1_load(asn1, data);
asn1 284 source4/auth/gensec/spnego_parse.c if (!asn1_peek_uint8(asn1, &context)) {
asn1 285 source4/auth/gensec/spnego_parse.c asn1->has_error = true;
asn1 289 source4/auth/gensec/spnego_parse.c asn1_start_tag(asn1, ASN1_APPLICATION(0));
asn1 290 source4/auth/gensec/spnego_parse.c asn1_check_OID(asn1, GENSEC_OID_SPNEGO);
asn1 291 source4/auth/gensec/spnego_parse.c if (read_negTokenInit(asn1, mem_ctx, &token->negTokenInit)) {
asn1 294 source4/auth/gensec/spnego_parse.c asn1_end_tag(asn1);
asn1 297 source4/auth/gensec/spnego_parse.c if (read_negTokenTarg(asn1, mem_ctx, &token->negTokenTarg)) {
asn1 302 source4/auth/gensec/spnego_parse.c asn1->has_error = true;
asn1 307 source4/auth/gensec/spnego_parse.c if (!asn1->has_error) ret = asn1->ofs;
asn1 308 source4/auth/gensec/spnego_parse.c asn1_free(asn1);
asn1 315 source4/auth/gensec/spnego_parse.c struct asn1_data *asn1 = asn1_init(mem_ctx);
asn1 318 source4/auth/gensec/spnego_parse.c if (asn1 == NULL) {
asn1 324 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_APPLICATION(0));
asn1 325 source4/auth/gensec/spnego_parse.c asn1_write_OID(asn1, GENSEC_OID_SPNEGO);
asn1 326 source4/auth/gensec/spnego_parse.c write_negTokenInit(asn1, &spnego->negTokenInit);
asn1 327 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 330 source4/auth/gensec/spnego_parse.c write_negTokenTarg(asn1, &spnego->negTokenTarg);
asn1 333 source4/auth/gensec/spnego_parse.c asn1->has_error = true;
asn1 337 source4/auth/gensec/spnego_parse.c if (!asn1->has_error) {
asn1 338 source4/auth/gensec/spnego_parse.c *blob = data_blob_talloc(mem_ctx, asn1->data, asn1->length);
asn1 339 source4/auth/gensec/spnego_parse.c ret = asn1->ofs;
asn1 341 source4/auth/gensec/spnego_parse.c asn1_free(asn1);
asn1 381 source4/auth/gensec/spnego_parse.c struct asn1_data *asn1 = asn1_init(mem_ctx);
asn1 387 source4/auth/gensec/spnego_parse.c asn1_push_tag(asn1, ASN1_SEQUENCE(0));
asn1 389 source4/auth/gensec/spnego_parse.c asn1_write_OID(asn1, mech_types[i]);
asn1 391 source4/auth/gensec/spnego_parse.c asn1_pop_tag(asn1);
asn1 394 source4/auth/gensec/spnego_parse.c if (asn1->has_error) {
asn1 395 source4/auth/gensec/spnego_parse.c asn1_free(asn1);
asn1 399 source4/auth/gensec/spnego_parse.c *blob = data_blob_talloc(mem_ctx, asn1->data, asn1->length);
asn1 400 source4/auth/gensec/spnego_parse.c if (blob->length != asn1->length) {
asn1 401 source4/auth/gensec/spnego_parse.c asn1_free(asn1);
asn1 405 source4/auth/gensec/spnego_parse.c asn1_free(asn1);
asn1 140 source4/ldap_server/ldap_server.c struct asn1_data *asn1 = asn1_init(conn);
asn1 143 source4/ldap_server/ldap_server.c if (asn1 == NULL || msg == NULL) {
asn1 147 source4/ldap_server/ldap_server.c if (!asn1_load(asn1, blob)) {
asn1 149 source4/ldap_server/ldap_server.c talloc_free(asn1);
asn1 153 source4/ldap_server/ldap_server.c status = ldap_decode(asn1, samba_ldap_control_handlers(), msg);
asn1 155 source4/ldap_server/ldap_server.c asn1_free(asn1);
asn1 161 source4/ldap_server/ldap_server.c asn1_free(asn1);
asn1 69 source4/libcli/cldap/cldap.c struct asn1_data *asn1 = asn1_init(tmp_ctx);
asn1 73 source4/libcli/cldap/cldap.c if (!asn1) return;
asn1 98 source4/libcli/cldap/cldap.c if (!asn1_load(asn1, blob)) {
asn1 111 source4/libcli/cldap/cldap.c status = ldap_decode(asn1, NULL, ldap_msg);
asn1 131 source4/libcli/cldap/cldap.c req->asn1 = talloc_steal(req, asn1);
asn1 132 source4/libcli/cldap/cldap.c req->asn1->ofs = 0;
asn1 311 source4/libcli/cldap/cldap.c req->asn1 = asn1_init(req);
asn1 312 source4/libcli/cldap/cldap.c if (!req->asn1) {
asn1 380 source4/libcli/cldap/cldap.c req->asn1 = asn1_init(req);
asn1 381 source4/libcli/cldap/cldap.c if (!req->asn1) {
asn1 466 source4/libcli/cldap/cldap.c status = ldap_decode(req->asn1, NULL, ldap_msg);
asn1 482 source4/libcli/cldap/cldap.c status = ldap_decode(req->asn1, NULL, ldap_msg);
asn1 61 source4/libcli/cldap/cldap.h struct asn1_data *asn1;
asn1 191 source4/libcli/ldap/ldap_client.c struct asn1_data *asn1 = asn1_init(conn);
asn1 193 source4/libcli/ldap/ldap_client.c if (asn1 == NULL || msg == NULL) {
asn1 197 source4/libcli/ldap/ldap_client.c if (!asn1_load(asn1, blob)) {
asn1 199 source4/libcli/ldap/ldap_client.c talloc_free(asn1);
asn1 203 source4/libcli/ldap/ldap_client.c status = ldap_decode(asn1, samba_ldap_control_handlers(), msg);
asn1 205 source4/libcli/ldap/ldap_client.c asn1_free(asn1);
asn1 212 source4/libcli/ldap/ldap_client.c asn1_free(asn1);