For sam_challenge do not encode optional strings if string not present.
authorEzra Peisach <epeisach@mit.edu>
Thu, 7 Nov 2002 17:01:34 +0000 (17:01 +0000)
committerEzra Peisach <epeisach@mit.edu>
Thu, 7 Nov 2002 17:01:34 +0000 (17:01 +0000)
Previously, a string of length zero was transmitted.

ticket: 1224

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14974 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/krb5/asn.1/ChangeLog
src/lib/krb5/asn.1/asn1_k_encode.c
src/tests/asn.1/ChangeLog
src/tests/asn.1/krb5_decode_test.c
src/tests/asn.1/reference_encode.out
src/tests/asn.1/trval_reference.out

index 51273b40453068ca4e162db882d251dac6213e9a..a2fe87030a204533893597a33ed0b79b0a574d12 100644 (file)
@@ -1,3 +1,8 @@
+2002-11-07  Ezra Peisach  <epeisach@bu.edu>
+
+       * asn1_k_encode.c (add_optstring): Add optional string only if
+       length > 0.
+
 2002-11-05  Tom Yu  <tlyu@mit.edu>
 
        * asn1_encode.h (asn1_encode_oid):
index 111695b3ae18c9ec7273689e4d5dfdacac47a17d..ff15d706776bbbdd3c4923991c4df4a7e0720310 100644 (file)
@@ -774,7 +774,7 @@ asn1_error_code asn1_encode_sam_flags(asn1buf *buf, const krb5_flags val, unsign
 }
 
 #define add_optstring(val,n,fn) \
-     if ((val).length >= 0) {asn1_addlenfield((val).length,(val).data,n,fn);}
+     if ((val).length > 0) {asn1_addlenfield((val).length,(val).data,n,fn);}
 
 asn1_error_code asn1_encode_sam_challenge(asn1buf *buf, const krb5_sam_challenge *val, unsigned int *retlen)
 {
index 2156ebe6dd67b0d77c564d40cc32abfb8e801599..d4c54302510c89faedf626145d6d95085bfe59bf 100644 (file)
@@ -1,3 +1,11 @@
+2002-11-07  Ezra Peisach  <epeisach@bu.edu>
+
+       * krb5_decode_test.c: Test for sam_challenege without empty
+       optional strings.
+
+       * trval_reference.out, reference_encode.out: Update to reflect
+       that optional fields in sam_challenge are not being output.
+
 2002-08-29  Ken Raeburn  <raeburn@mit.edu>
 
        * Makefile.in: Revert $(S)=>/ change, for Windows support.
index ce61f552a9ba45df767945c3c373bd031fb529d3..ea679cc0cd49219dcc044e46bcccd1b31e523c76 100644 (file)
@@ -622,6 +622,13 @@ int main(argc, argv)
     decode_run("sam_challenge","","30 78 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 A3 02 04 00 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 A7 02 04 00 A8 05 02 03 54 32 10 A9 0F 30 0D A0 03 02 01 01 A1 06 04 04 31 32 33 34",decode_krb5_sam_challenge,ktest_equal_sam_challenge);
   }
   
+  /****************************************************************/
+  /* decode_sam_challenge */
+  {
+    setup(krb5_sam_challenge,"krb5_sam_challenge - no optionals",ktest_make_sample_sam_challenge);
+    decode_run("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",decode_krb5_sam_challenge,ktest_equal_sam_challenge);
+  }
+  
   /****************************************************************/
   /* decode_sam_response */
   {
index 14d362842cdc17977d3bda6ada1a0c4ba029e441..0dbfc8d77fa3aefa0611849d7c71b4a26fafdd41 100644 (file)
@@ -47,5 +47,5 @@ encode_krb5_etype_info (no info): 30 00
 encode_krb5_pa_enc_ts: 30 1A A0 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A1 05 02 03 01 E2 40
 encode_krb5_pa_enc_ts (no usec): 30 13 A0 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A
 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 78 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 A3 02 04 00 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 A7 02 04 00 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_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
index 4806f4c4a22ae5a8e7fb5cbf108e804f49d635a6..2287d5facd4a3f43dfc4d0ab9477b4bef3910b98 100644 (file)
@@ -1148,11 +1148,9 @@ encode_krb5_sam_challenge:
 .  [0] [Integer] 42
 .  [1] [Bit String] 0x80000000
 .  [2] [Octet String] "type name"
-.  [3] [Octet String] ""
 .  [4] [Octet String] "challenge label"
 .  [5] [Octet String] "challenge ipse"
 .  [6] [Octet String] "response_prompt ipse"
-.  [7] [Octet String] ""
 .  [8] [Integer] 5517840
 .  [9] [Sequence/Sequence Of] 
 .  .  [0] [Integer] 1