{
  "_note": "TEST-ONLY key pair (RFC 8032 test 1 seed). Never use in production. Regenerate with: node docs/gen-test-vectors.mjs",
  "seedHex": "9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60",
  "publicKeys": {
    "k1": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo"
  },
  "productId": "prd_testvectors0000000000",
  "rawMachineId": "4c4c4544-0042-3510-8048-b4c04f4e3732",
  "fingerprint": "7a1acf765768ebbc09bfbbac0878d5e729d655a4be4db7510d2188f630881134",
  "licenseKeyNormalization": [
    {
      "input": " kr-abcde-fghjk-mnpqr-stvwx ",
      "normalized": "KR-ABCDE-FGHJK-MNPQR-STVWX",
      "sha256": "6a9c84d4aa24e990eb0b868ecac132d628b6653c30898d39a586430b809eeb12"
    }
  ],
  "cases": [
    {
      "name": "valid",
      "certificate": "KR1.eyJ2IjoxLCJraWQiOiJrMSIsInByb2R1Y3QiOiJwcmRfdGVzdHZlY3RvcnMwMDAwMDAwMDAwIiwibGljZW5zZSI6ImxpY190ZXN0dmVjdG9yczAwMDAwMDAwMDEiLCJwbGFuIjoicHJvIiwiZW50aXRsZW1lbnRzIjpbImV4cG9ydCIsIm9jciJdLCJzdGF0dXMiOiJhY3RpdmUiLCJzZWF0cyI6MSwibGljZW5zZWUiOiJKYW5lIERvZSIsImZpbmdlcnByaW50IjoiN2ExYWNmNzY1NzY4ZWJiYzA5YmZiYmFjMDg3OGQ1ZTcyOWQ2NTVhNGJlNGRiNzUxMGQyMTg4ZjYzMDg4MTEzNCIsInBhaWRVbnRpbCI6MTc5NjExOTIwMCwidmFsaWRVbnRpbCI6MTc5NzMyODgwMCwibWF4TWFqb3IiOm51bGwsImlzc3VlZEF0IjoxNzkzODcyODAwLCJyZWZyZXNoQWZ0ZXIiOjE3OTM5NTkyMDAsImV4cGlyZXNBdCI6MTc5NjQ2NDgwMH0.1qOAhxQWB0OOONatwPnxi9smgEUNk8aeH74TQsbLA_hl4t2jXdzblyDeUYrkP5vnge1T2g3AQNYNDlXNFDAhDg",
      "now": 1793876400,
      "appMajor": 1,
      "expected": "valid"
    },
    {
      "name": "expired",
      "certificate": "KR1.eyJ2IjoxLCJraWQiOiJrMSIsInByb2R1Y3QiOiJwcmRfdGVzdHZlY3RvcnMwMDAwMDAwMDAwIiwibGljZW5zZSI6ImxpY190ZXN0dmVjdG9yczAwMDAwMDAwMDEiLCJwbGFuIjoicHJvIiwiZW50aXRsZW1lbnRzIjpbImV4cG9ydCIsIm9jciJdLCJzdGF0dXMiOiJhY3RpdmUiLCJzZWF0cyI6MSwibGljZW5zZWUiOiJKYW5lIERvZSIsImZpbmdlcnByaW50IjoiN2ExYWNmNzY1NzY4ZWJiYzA5YmZiYmFjMDg3OGQ1ZTcyOWQ2NTVhNGJlNGRiNzUxMGQyMTg4ZjYzMDg4MTEzNCIsInBhaWRVbnRpbCI6MTc5NjExOTIwMCwidmFsaWRVbnRpbCI6MTc5NzMyODgwMCwibWF4TWFqb3IiOm51bGwsImlzc3VlZEF0IjoxNzkzODcyODAwLCJyZWZyZXNoQWZ0ZXIiOjE3OTM5NTkyMDAsImV4cGlyZXNBdCI6MTc5NjQ2NDgwMH0.1qOAhxQWB0OOONatwPnxi9smgEUNk8aeH74TQsbLA_hl4t2jXdzblyDeUYrkP5vnge1T2g3AQNYNDlXNFDAhDg",
      "now": 1796464801,
      "appMajor": 1,
      "expected": "expired"
    },
    {
      "name": "tampered payload",
      "certificate": "KR1.eyJ2IjoxLCJraWQiOiJrMSIsInByb2R1Y3QiOiJwcmRfdGVzdHZlY3RvcnMwMDAwMDAwMDAwIiwibGljZW5zZSI6ImxpY190ZXN0dmVjdG9yczAwMDAwMDAwMDEiLCJwbGFuIjoiYnVzaW5lc3MiLCJlbnRpdGxlbWVudHMiOlsiZXhwb3J0Iiwib2NyIl0sInN0YXR1cyI6ImFjdGl2ZSIsInNlYXRzIjoxLCJsaWNlbnNlZSI6IkphbmUgRG9lIiwiZmluZ2VycHJpbnQiOiI3YTFhY2Y3NjU3NjhlYmJjMDliZmJiYWMwODc4ZDVlNzI5ZDY1NWE0YmU0ZGI3NTEwZDIxODhmNjMwODgxMTM0IiwicGFpZFVudGlsIjoxNzk2MTE5MjAwLCJ2YWxpZFVudGlsIjoxNzk3MzI4ODAwLCJtYXhNYWpvciI6bnVsbCwiaXNzdWVkQXQiOjE3OTM4NzI4MDAsInJlZnJlc2hBZnRlciI6MTc5Mzk1OTIwMCwiZXhwaXJlc0F0IjoxNzk2NDY0ODAwfQ.1qOAhxQWB0OOONatwPnxi9smgEUNk8aeH74TQsbLA_hl4t2jXdzblyDeUYrkP5vnge1T2g3AQNYNDlXNFDAhDg",
      "now": 1793876400,
      "appMajor": 1,
      "expected": "invalid_signature"
    },
    {
      "name": "unknown kid",
      "certificate": "KR1.eyJ2IjoxLCJraWQiOiJrOSIsInByb2R1Y3QiOiJwcmRfdGVzdHZlY3RvcnMwMDAwMDAwMDAwIiwibGljZW5zZSI6ImxpY190ZXN0dmVjdG9yczAwMDAwMDAwMDEiLCJwbGFuIjoicHJvIiwiZW50aXRsZW1lbnRzIjpbImV4cG9ydCIsIm9jciJdLCJzdGF0dXMiOiJhY3RpdmUiLCJzZWF0cyI6MSwibGljZW5zZWUiOiJKYW5lIERvZSIsImZpbmdlcnByaW50IjoiN2ExYWNmNzY1NzY4ZWJiYzA5YmZiYmFjMDg3OGQ1ZTcyOWQ2NTVhNGJlNGRiNzUxMGQyMTg4ZjYzMDg4MTEzNCIsInBhaWRVbnRpbCI6MTc5NjExOTIwMCwidmFsaWRVbnRpbCI6MTc5NzMyODgwMCwibWF4TWFqb3IiOm51bGwsImlzc3VlZEF0IjoxNzkzODcyODAwLCJyZWZyZXNoQWZ0ZXIiOjE3OTM5NTkyMDAsImV4cGlyZXNBdCI6MTc5NjQ2NDgwMH0.mNBC4pvNbT302XoVH1Ou8yoFsGaffOfpUADNKmvj91owaGxvpECX2HR8R3dMyxld8JuU08nILBmbEIu3b1kKCw",
      "now": 1793876400,
      "appMajor": 1,
      "expected": "invalid_signature"
    },
    {
      "name": "wrong product",
      "certificate": "KR1.eyJ2IjoxLCJraWQiOiJrMSIsInByb2R1Y3QiOiJwcmRfb3RoZXIwMDAwMDAwMDAwMDAwMDAwMCIsImxpY2Vuc2UiOiJsaWNfdGVzdHZlY3RvcnMwMDAwMDAwMDAxIiwicGxhbiI6InBybyIsImVudGl0bGVtZW50cyI6WyJleHBvcnQiLCJvY3IiXSwic3RhdHVzIjoiYWN0aXZlIiwic2VhdHMiOjEsImxpY2Vuc2VlIjoiSmFuZSBEb2UiLCJmaW5nZXJwcmludCI6IjdhMWFjZjc2NTc2OGViYmMwOWJmYmJhYzA4NzhkNWU3MjlkNjU1YTRiZTRkYjc1MTBkMjE4OGY2MzA4ODExMzQiLCJwYWlkVW50aWwiOjE3OTYxMTkyMDAsInZhbGlkVW50aWwiOjE3OTczMjg4MDAsIm1heE1ham9yIjpudWxsLCJpc3N1ZWRBdCI6MTc5Mzg3MjgwMCwicmVmcmVzaEFmdGVyIjoxNzkzOTU5MjAwLCJleHBpcmVzQXQiOjE3OTY0NjQ4MDB9.C6wz6VYNhvmjpOmgMPuKFkIzRDkmbBfBs4zkEcwhoqoFDczFPUlnj52LXWzITw3yHKsJGpaItWA6Lv-3ntQ_Dw",
      "now": 1793876400,
      "appMajor": 1,
      "expected": "wrong_product"
    },
    {
      "name": "wrong machine",
      "certificate": "KR1.eyJ2IjoxLCJraWQiOiJrMSIsInByb2R1Y3QiOiJwcmRfdGVzdHZlY3RvcnMwMDAwMDAwMDAwIiwibGljZW5zZSI6ImxpY190ZXN0dmVjdG9yczAwMDAwMDAwMDEiLCJwbGFuIjoicHJvIiwiZW50aXRsZW1lbnRzIjpbImV4cG9ydCIsIm9jciJdLCJzdGF0dXMiOiJhY3RpdmUiLCJzZWF0cyI6MSwibGljZW5zZWUiOiJKYW5lIERvZSIsImZpbmdlcnByaW50IjoiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsInBhaWRVbnRpbCI6MTc5NjExOTIwMCwidmFsaWRVbnRpbCI6MTc5NzMyODgwMCwibWF4TWFqb3IiOm51bGwsImlzc3VlZEF0IjoxNzkzODcyODAwLCJyZWZyZXNoQWZ0ZXIiOjE3OTM5NTkyMDAsImV4cGlyZXNBdCI6MTc5NjQ2NDgwMH0.ErULUX9K0Nf7GdukCtkvXv08gOFRLx2MzARMcMD2YkZTIGuXuRoRH7_5kJ45C6_gSPfsKtQS4e6tk-xt7r-nCA",
      "now": 1793876400,
      "appMajor": 1,
      "expected": "wrong_machine"
    },
    {
      "name": "revoked status",
      "certificate": "KR1.eyJ2IjoxLCJraWQiOiJrMSIsInByb2R1Y3QiOiJwcmRfdGVzdHZlY3RvcnMwMDAwMDAwMDAwIiwibGljZW5zZSI6ImxpY190ZXN0dmVjdG9yczAwMDAwMDAwMDEiLCJwbGFuIjoicHJvIiwiZW50aXRsZW1lbnRzIjpbImV4cG9ydCIsIm9jciJdLCJzdGF0dXMiOiJyZXZva2VkIiwic2VhdHMiOjEsImxpY2Vuc2VlIjoiSmFuZSBEb2UiLCJmaW5nZXJwcmludCI6IjdhMWFjZjc2NTc2OGViYmMwOWJmYmJhYzA4NzhkNWU3MjlkNjU1YTRiZTRkYjc1MTBkMjE4OGY2MzA4ODExMzQiLCJwYWlkVW50aWwiOjE3OTYxMTkyMDAsInZhbGlkVW50aWwiOjE3OTczMjg4MDAsIm1heE1ham9yIjpudWxsLCJpc3N1ZWRBdCI6MTc5Mzg3MjgwMCwicmVmcmVzaEFmdGVyIjoxNzkzOTU5MjAwLCJleHBpcmVzQXQiOjE3OTY0NjQ4MDB9.f2IdH6D9DyTMTmTGfB8uEQ_2NkrmD6xGY0kXxO9M8Nb7lCNw4kR0LltFtxBEiRTrYdQpxZJ4ckjT0Lf0WaROAA",
      "now": 1793876400,
      "appMajor": 1,
      "expected": "not_usable"
    },
    {
      "name": "perpetual v1 used by app v2",
      "certificate": "KR1.eyJ2IjoxLCJraWQiOiJrMSIsInByb2R1Y3QiOiJwcmRfdGVzdHZlY3RvcnMwMDAwMDAwMDAwIiwibGljZW5zZSI6ImxpY190ZXN0dmVjdG9yczAwMDAwMDAwMDEiLCJwbGFuIjoicHJvIiwiZW50aXRsZW1lbnRzIjpbImV4cG9ydCIsIm9jciJdLCJzdGF0dXMiOiJwZXJwZXR1YWwiLCJzZWF0cyI6MSwibGljZW5zZWUiOiJKYW5lIERvZSIsImZpbmdlcnByaW50IjoiN2ExYWNmNzY1NzY4ZWJiYzA5YmZiYmFjMDg3OGQ1ZTcyOWQ2NTVhNGJlNGRiNzUxMGQyMTg4ZjYzMDg4MTEzNCIsInBhaWRVbnRpbCI6bnVsbCwidmFsaWRVbnRpbCI6bnVsbCwibWF4TWFqb3IiOjEsImlzc3VlZEF0IjoxNzkzODcyODAwLCJyZWZyZXNoQWZ0ZXIiOjE3OTM5NTkyMDAsImV4cGlyZXNBdCI6MTc5NjQ2NDgwMH0.7T6Z4Vxqp_hdbshzOfcCL-dQzTGYf0SHBup4llwHJBobcvTT3yQLrMGFySFA8F_8E1hFpd-NsirqFm4-ngNRAw",
      "now": 1793876400,
      "appMajor": 2,
      "expected": "version_not_covered"
    },
    {
      "name": "perpetual v1 used by app v1",
      "certificate": "KR1.eyJ2IjoxLCJraWQiOiJrMSIsInByb2R1Y3QiOiJwcmRfdGVzdHZlY3RvcnMwMDAwMDAwMDAwIiwibGljZW5zZSI6ImxpY190ZXN0dmVjdG9yczAwMDAwMDAwMDEiLCJwbGFuIjoicHJvIiwiZW50aXRsZW1lbnRzIjpbImV4cG9ydCIsIm9jciJdLCJzdGF0dXMiOiJwZXJwZXR1YWwiLCJzZWF0cyI6MSwibGljZW5zZWUiOiJKYW5lIERvZSIsImZpbmdlcnByaW50IjoiN2ExYWNmNzY1NzY4ZWJiYzA5YmZiYmFjMDg3OGQ1ZTcyOWQ2NTVhNGJlNGRiNzUxMGQyMTg4ZjYzMDg4MTEzNCIsInBhaWRVbnRpbCI6bnVsbCwidmFsaWRVbnRpbCI6bnVsbCwibWF4TWFqb3IiOjEsImlzc3VlZEF0IjoxNzkzODcyODAwLCJyZWZyZXNoQWZ0ZXIiOjE3OTM5NTkyMDAsImV4cGlyZXNBdCI6MTc5NjQ2NDgwMH0.7T6Z4Vxqp_hdbshzOfcCL-dQzTGYf0SHBup4llwHJBobcvTT3yQLrMGFySFA8F_8E1hFpd-NsirqFm4-ngNRAw",
      "now": 1793876400,
      "appMajor": 1,
      "expected": "valid"
    },
    {
      "name": "clock rolled back",
      "certificate": "KR1.eyJ2IjoxLCJraWQiOiJrMSIsInByb2R1Y3QiOiJwcmRfdGVzdHZlY3RvcnMwMDAwMDAwMDAwIiwibGljZW5zZSI6ImxpY190ZXN0dmVjdG9yczAwMDAwMDAwMDEiLCJwbGFuIjoicHJvIiwiZW50aXRsZW1lbnRzIjpbImV4cG9ydCIsIm9jciJdLCJzdGF0dXMiOiJhY3RpdmUiLCJzZWF0cyI6MSwibGljZW5zZWUiOiJKYW5lIERvZSIsImZpbmdlcnByaW50IjoiN2ExYWNmNzY1NzY4ZWJiYzA5YmZiYmFjMDg3OGQ1ZTcyOWQ2NTVhNGJlNGRiNzUxMGQyMTg4ZjYzMDg4MTEzNCIsInBhaWRVbnRpbCI6MTc5NjExOTIwMCwidmFsaWRVbnRpbCI6MTc5NzMyODgwMCwibWF4TWFqb3IiOm51bGwsImlzc3VlZEF0IjoxNzkzODcyODAwLCJyZWZyZXNoQWZ0ZXIiOjE3OTM5NTkyMDAsImV4cGlyZXNBdCI6MTc5NjQ2NDgwMH0.1qOAhxQWB0OOONatwPnxi9smgEUNk8aeH74TQsbLA_hl4t2jXdzblyDeUYrkP5vnge1T2g3AQNYNDlXNFDAhDg",
      "now": 1793700000,
      "appMajor": 1,
      "highestIssuedAt": 1793872800,
      "expected": "clock_tampered"
    },
    {
      "name": "malformed",
      "certificate": "KR1.not-a-certificate",
      "now": 1793872800,
      "appMajor": 1,
      "expected": "malformed"
    },
    {
      "name": "bad prefix",
      "certificate": "KR2.eyJ2IjoxLCJraWQiOiJrMSIsInByb2R1Y3QiOiJwcmRfdGVzdHZlY3RvcnMwMDAwMDAwMDAwIiwibGljZW5zZSI6ImxpY190ZXN0dmVjdG9yczAwMDAwMDAwMDEiLCJwbGFuIjoicHJvIiwiZW50aXRsZW1lbnRzIjpbImV4cG9ydCIsIm9jciJdLCJzdGF0dXMiOiJhY3RpdmUiLCJzZWF0cyI6MSwibGljZW5zZWUiOiJKYW5lIERvZSIsImZpbmdlcnByaW50IjoiN2ExYWNmNzY1NzY4ZWJiYzA5YmZiYmFjMDg3OGQ1ZTcyOWQ2NTVhNGJlNGRiNzUxMGQyMTg4ZjYzMDg4MTEzNCIsInBhaWRVbnRpbCI6MTc5NjExOTIwMCwidmFsaWRVbnRpbCI6MTc5NzMyODgwMCwibWF4TWFqb3IiOm51bGwsImlzc3VlZEF0IjoxNzkzODcyODAwLCJyZWZyZXNoQWZ0ZXIiOjE3OTM5NTkyMDAsImV4cGlyZXNBdCI6MTc5NjQ2NDgwMH0.1qOAhxQWB0OOONatwPnxi9smgEUNk8aeH74TQsbLA_hl4t2jXdzblyDeUYrkP5vnge1T2g3AQNYNDlXNFDAhDg",
      "now": 1793876400,
      "appMajor": 1,
      "expected": "malformed"
    }
  ]
}
