code: void parseAuthorityKeyIdentifierExtension(
              AuthorityKeyIdentifierExtension akidext) throws IOException {
          if (akidext != null) {
              KeyIdentifier akid = (KeyIdentifier)akidext.get(
                      AuthorityKeyIdentifierExtension.KEY_ID);
              if (akid != null) {
                  // Do not override the previous setting for initial selection.
                  if (isSKIDSensitive || getSubjectKeyIdentifier() == null) {
                      DerOutputStream derout = new DerOutputStream();
                      derout.putOctetString(akid.getIdentifier());
                      super.setSubjectKeyIdentifier(derout.toByteArray());
  
                      isSKIDSensitive = true;
                  }
              }
  
              SerialNumber asn = (SerialNumber)akidext.get(
                      AuthorityKeyIdentifierExtension.SERIAL_NUMBER);
              if (asn != null) {
                  // Do not override the previous setting for initial selection.
                  if (isSNSensitive || getSerialNumber() == null) {
                      super.setSerialNumber(asn.getNumber());
                      isSNSensitive = true;
                  }
              }
  
              // the subject criterion should be set by the caller.
          }
      }
docs: Parse the authority key identifier extension.
  
  If the keyIdentifier field of the extension is non-null, set the
  subjectKeyIdentifier criterion. If the authorityCertSerialNumber
  field is non-null, set the serialNumber criterion.
  
  Note that we will not set the subject criterion according to the
  authorityCertIssuer field of the extension. The caller MUST set
  the subject criterion before call match().
  
  @param akidext the authorityKeyIdentifier extension