tls: code shrink
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 4 Nov 2018 23:18:18 +0000 (00:18 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 4 Nov 2018 23:19:15 +0000 (00:19 +0100)
function                                             old     new   delta
tls_handshake                                       1643    1619     -24

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
networking/tls.c

index 7cd6a61ba63a9620fb0e7370e0a653528958e20f..0f637a3d75923a7db519d33ad21f24dfab377b37 100644 (file)
@@ -1115,8 +1115,6 @@ static void find_key_in_der_cert(tls_state_t *tls, uint8_t *der, int len)
  * We need Certificate.tbsCertificate.subjectPublicKeyInfo.publicKey
  */
        uint8_t *end = der + len;
-       uint8_t tag_class, pc, tag_number;
-       int version_present;
 
        /* enter "Certificate" item: [der, end) will be only Cert */
        der = enter_der_item(der, &end);
@@ -1133,13 +1131,11 @@ static void find_key_in_der_cert(tls_state_t *tls, uint8_t *der, int len)
         * (constructed), and a tag number of 0 (see ITU-T X.690 sections 8.1.2
         * and 8.14).
         */
-       tag_class = der[0] >> 6; /* bits 8-7 */
-       pc = (der[0] & 32) >> 5; /* bit 6 */
-       tag_number = der[0] & 31; /* bits 5-1 */
-       version_present = tag_class == 2 && pc == 1 && tag_number == 0;
-       if (version_present) {
+       /* bits 7-6: 10 */
+       /* bit 5: 1 */
+       /* bits 4-0: 00000 */
+       if (der[0] == 0xa0)
                der = skip_der_item(der, end); /* version */
-       }
 
        /* skip up to subjectPublicKeyInfo */
        der = skip_der_item(der, end); /* serialNumber */