|
@@ -614,53 +614,10 @@ decode_negTokenInit(unsigned char *security_blob, int length,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /* mechlistMIC */
|
|
|
- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) {
|
|
|
- /* Check if we have reached the end of the blob, but with
|
|
|
- no mechListMic (e.g. NTLMSSP instead of KRB5) */
|
|
|
- if (ctx.error == ASN1_ERR_DEC_EMPTY)
|
|
|
- goto decode_negtoken_exit;
|
|
|
- cFYI(1, "Error decoding last part negTokenInit exit3");
|
|
|
- return 0;
|
|
|
- } else if ((cls != ASN1_CTX) || (con != ASN1_CON)) {
|
|
|
- /* tag = 3 indicating mechListMIC */
|
|
|
- cFYI(1, "Exit 4 cls = %d con = %d tag = %d end = %p (%d)",
|
|
|
- cls, con, tag, end, *end);
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- /* sequence */
|
|
|
- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) {
|
|
|
- cFYI(1, "Error decoding last part negTokenInit exit5");
|
|
|
- return 0;
|
|
|
- } else if ((cls != ASN1_UNI) || (con != ASN1_CON)
|
|
|
- || (tag != ASN1_SEQ)) {
|
|
|
- cFYI(1, "cls = %d con = %d tag = %d end = %p (%d)",
|
|
|
- cls, con, tag, end, *end);
|
|
|
- }
|
|
|
-
|
|
|
- /* sequence of */
|
|
|
- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) {
|
|
|
- cFYI(1, "Error decoding last part negTokenInit exit 7");
|
|
|
- return 0;
|
|
|
- } else if ((cls != ASN1_CTX) || (con != ASN1_CON)) {
|
|
|
- cFYI(1, "Exit 8 cls = %d con = %d tag = %d end = %p (%d)",
|
|
|
- cls, con, tag, end, *end);
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- /* general string */
|
|
|
- if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) {
|
|
|
- cFYI(1, "Error decoding last part negTokenInit exit9");
|
|
|
- return 0;
|
|
|
- } else if ((cls != ASN1_UNI) || (con != ASN1_PRI)
|
|
|
- || (tag != ASN1_GENSTR)) {
|
|
|
- cFYI(1, "Exit10 cls = %d con = %d tag = %d end = %p (%d)",
|
|
|
- cls, con, tag, end, *end);
|
|
|
- return 0;
|
|
|
- }
|
|
|
- cFYI(1, "Need to call asn1_octets_decode() function for %s",
|
|
|
- ctx.pointer); /* is this UTF-8 or ASCII? */
|
|
|
-decode_negtoken_exit:
|
|
|
+ /*
|
|
|
+ * We currently ignore anything at the end of the SPNEGO blob after
|
|
|
+ * the mechTypes have been parsed, since none of that info is
|
|
|
+ * used at the moment.
|
|
|
+ */
|
|
|
return 1;
|
|
|
}
|