code: @JsonIgnore
      public boolean isValid() {
          if (kty == null) {
              return false;
          }
  
          if (keyOps != null) {
              final Set<JsonWebKeyOperation> set = new HashSet<JsonWebKeyOperation>(JsonWebKeyOperation.ALL_OPERATIONS);
              for (int i = 0; i < keyOps.size(); i++) {
                  if (!set.contains(keyOps.get(i))) {
                      return false;
                  }
              }
          }
  
          if (JsonWebKeyType.OCT.equals(kty)) {
              return isValidOctet();
          } else if (JsonWebKeyType.RSA.equals(kty)) {
              return isValidRsa();
          } else if (JsonWebKeyType.RSA_HSM.equals(kty)) {
              return isValidRsaHsm();
          } else if (JsonWebKeyType.EC.equals(kty)) {
              return isValidEc();
          } else if (JsonWebKeyType.EC_HSM.equals(kty)) {
              return isValidEcHsm();
          }
  
          return false;
      }
docs: Verifies whether the {@link JsonWebKey} is valid.
  
  @return true if the {@link JsonWebKey} is valid; false otherwise.