Использование значения поиска JQ с использованием регулярных выражений - PullRequest
0 голосов
/ 10 марта 2020

У меня есть этот json объект, и я пытаюсь найти способ использовать регулярное выражение в jq для поиска значения в issuer_dn, которое содержит более 8 символов. Регулярное выражение типа [A-Z]{8} должно работать, но я не могу получить результаты. Я все еще изучаю JQ, и если есть какой-либо другой инструмент, который можно использовать, пожалуйста, поделитесь.

{
  "ip": "127.0.0.1",
  "data": {
    "tls": {
      "status": "success",
      "protocol": "tls",
      "result": {
        "handshake_log": {
          "server_hello": {
            "version": {
              "name": "TLSv1.2",
              "value": 771
            },
            "random": "hhdshfhhdhfhshdh",
            "session_id": "hjdsfyyueujhfjaskdfjjl",
            "cipher_suite": {
              "hex": "0xC014",
              "name": "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
              "value": 49172
            },
            "compression_method": 0,
            "ocsp_stapling": false,
            "ticket": false,
            "secure_renegotiation": true,
            "heartbeat": false,
            "extended_master_secret": false
          },
          "server_certificates": {
            "certificate": {
              "raw": "dGVzdCBkYXRhIGFuZCBnYXJiYWdldGVzdC==",
              "parsed": {
                "version": 3,
                "serial_number": "1234567890",
                "signature_algorithm": {
                  "name": "SHA256-RSA",
                  "oid": "1.2.840.113549.1.1.11"
                },
                "issuer": {
                  "common_name": [
                    "ABC"
                  ],
                  "country": [
                    "ABC"
                  ],
                  "locality": [
                    "ABC"
                  ],
                  "province": [
                    "ABC"
                  ],
                  "organization": [
                    "ABC"
                  ],
                  "organizational_unit": [
                    "ABC"
                  ]
                },
                "issuer_dn": "C=ABCD, ST=ABCD, L=ABCD, O=ABCD, OU=ABCD, CN=ABCD",
                "validity": {
                  "start": "2020-02-01T01:09:22Z",
                  "end": "2021-02-01T03:09:22Z",
                  "length": 7883663
                },
                "subject": {
                  "common_name": [
                    "ABC"
                  ],
                  "country": [
                    "ABC"
                  ],
                  "locality": [
                    "ABC"
                  ],
                  "province": [
                    "ABC"
                  ],
                  "organization": [
                    "ABC"
                  ],
                  "organizational_unit": [
                    "ABC"
                  ]
                },
                "subject_dn": "C=ABCD, ST=ABCD, L=ABCD, O=ABCD, OU=ABCD, CN=ABCD",
                "subject_key_info": {
                  "key_algorithm": {
                    "name": "RSA"
                  },
                  "rsa_public_key": {
                    "exponent": 65537,
                    "modulus": "dGVzdCBkYXRhIGFuZCBnYXJiYWdldGVzdC",
                    "length": 2048
                  },
                  "fingerprint_sha256": "73hh3g39920jfjj38723bb3993hh3774994002"
                },
                "extensions": {
                  "basic_constraints": {
                    "is_ca": true
                  },
                  "authority_key_id": "73hh3g39920jfjj38723bb3993hh3774994002",
                  "subject_key_id": "73hh3g39920jfjj38723bb3993hh3774994002"
                },
                "signature": {
                  "signature_algorithm": {
                    "name": "SHA256-RSA",
                    "oid": "1.2.840.113549.1.1.11"
                  },
                  "value": "dGVzdCBkYXRhIGFuZCBnYXJiYWdldGVzdC",
                  "valid": true,
                  "self_signed": true
                },
                "fingerprint_md5": "73hh3g39920jfjj38723bb3993hh3774994002",
                "fingerprint_sha1": "73hh3g39920jfjj38723bb3993hh3774994002",
                "fingerprint_sha256": "73hh3g39920jfjj38723bb3993hh3774994002",
                "tbs_noct_fingerprint": "73hh3g39920jfjj38723bb3993hh3774994002",
                "spki_subject_fingerprint": "73hh3g39920jfjj38723bb3993hh3774994002",
                "tbs_fingerprint": "73hh3g39920jfjj38723bb3993hh3774994002",
                "validation_level": "73hh3g39920jfjj38723bb3993hh3774994002",
                "redacted": false
              }
            },
            "validation": {
              "browser_trusted": false,
              "browser_error": "x509: failed to load system roots and no roots provided"
            }
          },
          "server_key_exchange": {
            "ecdh_params": {
              "curve_id": {
                "name": "secp256r1",
                "id": 23
              },
              "server_public": {
                "x": {
                  "value": "73hh3g39920jfjj38723bb3993hh3774994002",
                  "length": 256
                },
                "y": {
                  "value": "73hh3g39920jfjj38723bb3993hh3774994002",
                  "length": 256
                }
              }
            },
            "digest": "dGVzdCBkYXRhIGFuZCBnYXJiYWdldGVzdC",
            "signature": {
              "raw": "dGVzdCBkYXRhIGFuZCBnYXJiYWdldGVzdC",
              "type": "rsa",
              "valid": true,
              "signature_and_hash_type": {
                "signature_algorithm": "rsa",
                "hash_algorithm": "sha256"
              },
              "tls_version": {
                "name": "TLSv1.2",
                "value": 771
              }
            }
          },
          "client_key_exchange": {
            "ecdh_params": {
              "curve_id": {
                "name": "secp256r1",
                "id": 23
              },
              "client_public": {
                "x": {
                  "value": "dGVzdCBkYXRhIGFuZCBnYXJiYWdldGVzdC=",
                  "length": 256
                },
                "y": {
                  "value": "dGVzdCBkYXRhIGFuZCBnYXJiYWdldGVzdC=",
                  "length": 256
                }
              },
              "client_private": {
                "value": "dGVzdCBkYXRhIGFuZCBnYXJiYWdldGVzdC=",
                "length": 32
              }
            }
          },
          "client_finished": {
            "verify_data": "dGVzdCBkY"
          },
          "server_finished": {
            "verify_data": "dGVzdCBkY"
          },
          "key_material": {
            "master_secret": {
              "value": "dGVzdCBkY",
              "length": 48
            },
            "pre_master_secret": {
              "value": "dGVzdCBkY",
              "length": 32
            }
          }
        }
      },
      "timestamp": "2020-02-9T07:14:47Z"
    }
  }
}

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Я бы использовал следующее:

.data.tls.result.handshake_log.server_certificates.certificate.parsed.issuer_dn \
 | select(length > 8)

Вы можете попробовать здесь .

0 голосов
/ 10 марта 2020

Вы можете использовать:

test("[A-Z]{8}")
...