krb5_error_code (*encode_krb5_authdata_elt)
(const krb5_authdata *rep, krb5_data **code);
+ /* Exported for testing only! */
+ krb5_error_code (*encode_krb5_sam_response_2)
+ (const krb5_sam_response_2 *rep, krb5_data **code);
+ krb5_error_code (*encode_krb5_enc_sam_response_enc_2)
+ (const krb5_enc_sam_response_enc_2 *rep, krb5_data **code);
} krb5int_access;
#define KRB5INT_ACCESS_VERSION \
SC (encode_krb5_authdata_elt, encode_krb5_authdata_elt),
#undef SC
+ S (encode_krb5_sam_response_2, encode_krb5_sam_response_2),
+ S (encode_krb5_enc_sam_response_enc_2, encode_krb5_enc_sam_response_enc_2),
+
#if DESIGNATED_INITIALIZERS
};
#else
encode_krb5_sam_response);
ktest_empty_sam_response(&sam_ch);
}
-#if 0
/****************************************************************/
/* encode_krb5_sam_key */
{
ktest_make_sample_sam_key);
encode_run(sam_ch,krb5_sam_key,"sam_key","",
encode_krb5_sam_key);
+ ktest_empty_sam_key(&sam_ch);
}
/****************************************************************/
/* encode_krb5_enc_sam_response_enc */
encode_run(sam_ch,krb5_predicted_sam_response,"predicted_sam_response","",
encode_krb5_predicted_sam_response);
}
-#endif
+ /****************************************************************/
+ /* encode_krb5_sam_response_2 */
+ {
+ krb5_sam_response_2 sam_ch2;
+ setup(sam_ch2,krb5_sam_response_2,"sam_response_2",
+ ktest_make_sample_sam_response_2);
+ encode_run(sam_ch2,krb5_sam_response_2,"sam_response_2","",
+ acc.encode_krb5_sam_response_2);
+ ktest_empty_sam_response_2(&sam_ch2);
+ }
+ /****************************************************************/
+ /* encode_krb5_sam_response_enc_2 */
+ {
+ krb5_enc_sam_response_enc_2 sam_ch2;
+ setup(sam_ch2,krb5_enc_sam_response_enc_2,"enc_sam_response_enc_2",
+ ktest_make_sample_enc_sam_response_enc_2);
+ encode_run(sam_ch2,krb5_enc_sam_response_enc_2,
+ "enc_sam_response_enc_2","",
+ acc.encode_krb5_enc_sam_response_enc_2);
+ ktest_empty_enc_sam_response_enc_2(&sam_ch2);
+ }
#ifdef ENABLE_LDAP
{
ldap_seqof_key_data skd;
return 0;
}
+krb5_error_code ktest_make_sample_sam_response_2(p)
+ krb5_sam_response_2 * p;
+{
+ p->magic = KV5M_SAM_RESPONSE;
+ p->sam_type = 43; /* information */
+ p->sam_flags = KRB5_SAM_USE_SAD_AS_KEY; /* KRB5_SAM_* values */
+ p->sam_track_id.data = strdup("track data");
+ if (p->sam_track_id.data == NULL) return ENOMEM;
+ p->sam_track_id.length = strlen(p->sam_track_id.data);
+ p->sam_enc_nonce_or_sad.ciphertext.data = strdup("nonce or sad");
+ if (p->sam_enc_nonce_or_sad.ciphertext.data == NULL) return ENOMEM;
+ p->sam_enc_nonce_or_sad.ciphertext.length =
+ strlen(p->sam_enc_nonce_or_sad.ciphertext.data);
+ p->sam_enc_nonce_or_sad.enctype = ENCTYPE_DES_CBC_CRC;
+ p->sam_enc_nonce_or_sad.kvno = 3382;
+ p->sam_nonce = 0x543210;
+
+ return 0;
+}
+
+krb5_error_code ktest_make_sample_sam_key(p)
+ krb5_sam_key *p;
+{
+ p->magic = 99;
+ return ktest_make_sample_keyblock(&p->sam_key);
+}
+
+krb5_error_code ktest_make_sample_enc_sam_response_enc(p)
+ krb5_enc_sam_response_enc *p;
+{
+ p->magic = 78;
+ p->sam_nonce = 78634;
+ p->sam_timestamp = 99999;
+ p->sam_usec = 399;
+ p->sam_sad.data = strdup("enc_sam_response_enc");
+ if (p->sam_sad.data == NULL) return ENOMEM;
+ p->sam_sad.length = strlen(p->sam_sad.data);
+ return 0;
+}
+
+krb5_error_code ktest_make_sample_enc_sam_response_enc_2(p)
+ krb5_enc_sam_response_enc_2 *p;
+{
+ p->magic = 83;
+ p->sam_nonce = 88;
+ p->sam_sad.data = strdup("enc_sam_response_enc_2");
+ if (p->sam_sad.data == NULL) return ENOMEM;
+ p->sam_sad.length = strlen(p->sam_sad.data);
+ return 0;
+}
#ifdef ENABLE_LDAP
static krb5_error_code ktest_make_sample_key_data(krb5_key_data *p, int i)
}
#endif
+krb5_error_code ktest_make_sample_predicted_sam_response(p)
+ krb5_predicted_sam_response *p;
+{
+ krb5_error_code retval;
+
+ p->magic = 79;
+ retval = ktest_make_sample_keyblock(&p->sam_key);
+ if (retval) return retval;
+ p->sam_flags = 9;
+ p->stime = 17;
+ p->susec = 18;
+ retval = ktest_make_sample_principal(&p->client);
+ if (retval) return retval;
+ retval = krb5_data_parse(&p->msd, "hello");
+ if (retval) return retval;
+ return 0;
+}
+
/****************************************************************/
/* destructors */
ktest_empty_data(&(p->sam_enc_nonce_or_ts.ciphertext));
}
+void ktest_empty_sam_key(p)
+ krb5_sam_key *p;
+{
+ if (p->sam_key.contents)
+ free(p->sam_key.contents);
+}
+
+void ktest_empty_sam_response_2(p)
+ krb5_sam_response_2 *p;
+{
+}
+void ktest_empty_enc_sam_response_enc_2(p)
+ krb5_enc_sam_response_enc_2 *p;
+{
+}
+
#ifdef ENABLE_LDAP
void ktest_empty_ldap_seqof_key_data(ctx, p)
krb5_context ctx;
(krb5_sam_challenge * p);
krb5_error_code ktest_make_sample_sam_response
(krb5_sam_response * p);
+krb5_error_code ktest_make_sample_sam_response_2
+ (krb5_sam_response_2 * p);
+krb5_error_code ktest_make_sample_sam_key(krb5_sam_key *p);
+krb5_error_code ktest_make_sample_enc_sam_response_enc
+ (krb5_enc_sam_response_enc *p);
+krb5_error_code ktest_make_sample_predicted_sam_response(krb5_predicted_sam_response *p);
+krb5_error_code ktest_make_sample_enc_sam_response_enc_2(krb5_enc_sam_response_enc_2 *p);
+
+
#ifdef ENABLE_LDAP
krb5_error_code ktest_make_sample_ldap_seqof_key_data(ldap_seqof_key_data * p);
#endif
(krb5_sam_challenge * p);
void ktest_empty_sam_response
(krb5_sam_response * p);
+void ktest_empty_sam_key(krb5_sam_key *p);
+void ktest_empty_sam_response_2(krb5_sam_response_2 *p);
+void ktest_empty_enc_sam_response_enc_2(krb5_enc_sam_response_enc_2 *p);
+
#ifdef ENABLE_LDAP
void ktest_empty_ldap_seqof_key_data(krb5_context, ldap_seqof_key_data *p);
#endif
encode_krb5_enc_data: 30 23 A0 03 02 01 00 A1 03 02 01 05 A2 17 04 15 6B 72 62 41 53 4E 2E 31 20 74 65 73 74 20 6D 65 73 73 61 67 65
encode_krb5_sam_challenge: 30 70 A0 03 02 01 2A A1 07 03 05 00 80 00 00 00 A2 0B 04 09 74 79 70 65 20 6E 61 6D 65 A4 11 04 0F 63 68 61 6C 6C 65 6E 67 65 20 6C 61 62 65 6C A5 10 04 0E 63 68 61 6C 6C 65 6E 67 65 20 69 70 73 65 A6 16 04 14 72 65 73 70 6F 6E 73 65 5F 70 72 6F 6D 70 74 20 69 70 73 65 A8 05 02 03 54 32 10 A9 0F 30 0D A0 03 02 01 01 A1 06 04 04 31 32 33 34
encode_krb5_sam_response: 30 6A A0 03 02 01 2A A1 07 03 05 00 80 00 00 00 A2 0C 04 0A 74 72 61 63 6B 20 64 61 74 61 A3 14 30 12 A0 03 02 01 01 A1 04 02 02 07 96 A2 05 04 03 6B 65 79 A4 1C 30 1A A0 03 02 01 01 A1 04 02 02 0D 36 A2 0D 04 0B 6E 6F 6E 63 65 20 6F 72 20 74 73 A5 05 02 03 54 32 10 A6 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A
+encode_krb5_sam_key: 30 15 A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38
+encode_krb5_enc_sam_response_enc: 30 38 A0 05 02 03 01 33 2A A1 11 18 0F 31 39 37 30 30 31 30 32 30 33 34 36 33 39 5A A2 04 02 02 01 8F A3 16 04 14 65 6E 63 5F 73 61 6D 5F 72 65 73 70 6F 6E 73 65 5F 65 6E 63
+encode_krb5_predicted_sam_response: 30 6D A0 13 30 11 A0 03 02 01 01 A1 0A 04 08 31 32 33 34 35 36 37 38 A1 07 03 05 00 00 00 00 09 A2 11 18 0F 31 39 37 30 30 31 30 31 30 30 30 30 31 37 5A A3 03 02 01 12 A4 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A5 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A6 07 04 05 68 65 6C 6C 6F
+encode_krb5_sam_response_2: 30 42 A0 03 02 01 2B A1 07 03 05 00 80 00 00 00 A2 0C 04 0A 74 72 61 63 6B 20 64 61 74 61 A3 1D 30 1B A0 03 02 01 01 A1 04 02 02 0D 36 A2 0E 04 0C 6E 6F 6E 63 65 20 6F 72 20 73 61 64 A4 05 02 03 54 32 10
+encode_krb5_enc_sam_response_enc_2: 30 1F A0 03 02 01 58 A1 18 04 16 65 6E 63 5F 73 61 6D 5F 72 65 73 70 6F 6E 73 65 5F 65 6E 63 5F 32
. [5] [Integer] 5517840
. [6] [Generalized Time] "19940610060317Z"
+encode_krb5_sam_key:
+
+[Sequence/Sequence Of]
+. [0] [Sequence/Sequence Of]
+. . [0] [Integer] 1
+. . [1] [Octet String] "12345678"
+
+encode_krb5_enc_sam_response_enc:
+
+[Sequence/Sequence Of]
+. [0] [Integer] 78634
+. [1] [Generalized Time] "19700102034639Z"
+. [2] [Integer] 399
+. [3] [Octet String] "enc_sam_response_enc"
+
+encode_krb5_predicted_sam_response:
+
+[Sequence/Sequence Of]
+. [0] [Sequence/Sequence Of]
+. . [0] [Integer] 1
+. . [1] [Octet String] "12345678"
+. [1] [Bit String] 0x9
+. [2] [Generalized Time] "19700101000017Z"
+. [3] [Integer] 18
+. [4] [General string] "ATHENA.MIT.EDU"
+. [5] [Sequence/Sequence Of]
+. . [0] [Integer] 1
+. . [1] [Sequence/Sequence Of]
+. . . [General string] "hftsai"
+. . . [General string] "extra"
+. [6] [Octet String] "hello"
+
+encode_krb5_sam_response_2:
+
+[Sequence/Sequence Of]
+. [0] [Integer] 43
+. [1] [Bit String] 0x80000000
+. [2] [Octet String] "track data"
+. [3] [Sequence/Sequence Of]
+. . [0] [Integer] 1
+. . [1] [Integer] 3382
+. . [2] [Octet String] "nonce or sad"
+. [4] [Integer] 5517840
+
+encode_krb5_enc_sam_response_enc_2:
+
+[Sequence/Sequence Of]
+. [0] [Integer] 88
+. [1] [Octet String] "enc_sam_response_enc_2"
+