{
  "_format": "hh-sol-artifact-1",
  "contractName": "P256SHA256Algorithm",
  "sourceName": "contracts/dnssec-oracle/algorithms/P256SHA256Algorithm.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "key",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "verify",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50611168806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063de8f50a114610030575b600080fd5b61004361003e366004610ff5565b610057565b604051901515815260200160405180910390f35b60006101316002868660405161006e92919061108b565b602060405180830381855afa15801561008b573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906100ae9190610fdd565b6100ed85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061013c92505050565b61012c8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506101e592505050565b61027e565b979650505050505050565b610144610f61565b81516040146101b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f496e76616c69642070323536207369676e6174757265206c656e67746800000060448201526064015b60405180910390fd5b60408051808201909152806101ca846000610482565b81526020908101906101dd908590610482565b905292915050565b6101ed610f61565b8151604414610258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e76616c69642070323536206b6579206c656e67746800000000000000000060448201526064016101ab565b604080518082019091528061026e846004610482565b81526020016101dd846024610482565b815160009015806102b0575082517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255111155b806102bd57506020830151155b156102ca5750600061047b565b815160208301516102db91906104a6565b6102e75750600061047b565b60008080808061031e88600160200201517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325516105cc565b905061038e7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2967f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f57fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551848d096106b5565b885160208a01518b519398509195506103ce929091907fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551908590096106b5565b909450915060006103e186858786610782565b60408101519091506103fc576000965050505050505061047b565b600061042382600260200201516ffffffffeffffffffffffffffffffffff60601b196105cc565b90506ffffffffeffffffffffffffffffffffff60601b19808283098351098a519091506104707fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551836110ca565b149750505050505050505b9392505050565b815160009061049283602061109b565b111561049d57600080fd5b50016020015190565b60008215806104c857506ffffffffeffffffffffffffffffffffff60601b1983145b806104d1575081155b806104ef57506ffffffffeffffffffffffffffffffffff60601b1982145b156104fc575060006105c6565b60006ffffffffeffffffffffffffffffffffff60601b19838409905060006ffffffffeffffffffffffffffffffffff60601b19856ffffffffeffffffffffffffffffffffff60601b198788090990506ffffffffeffffffffffffffffffffffff60601b19807fffffffff00000001000000000000000000000000fffffffffffffffffffffffc8709820890506ffffffffeffffffffffffffffffffffff60601b197f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b820890501490505b92915050565b60008215806105da57508183145b806105e3575081155b156105f0575060006105c6565b818311156106325781838161062e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0692505b600060018385835b811561069057818381610676577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b94959404858102909403939192838302900391905061063a565b60008512156106a95750505050600003820390506105c6565b50929695505050505050565b600080826106ca576000805b9150915061077a565b82600114156106dd57508390508261077a565b82600214156106f0576106c185856107a8565b508390508281816001806107056002886110ca565b61071157600094508495505b600187901c96505b86156107665761072a8484846107d8565b9195509350915061073c6002886110ca565b6001141561075a57610752848484898986610acc565b919750955090505b600187901c9650610719565b610771868683610bf1565b95509550505050505b935093915050565b61078a610f7f565b60008061079987878787610c53565b90925090506101318282610c88565b60008060006107b9858560016107d8565b919650945090506107cb858583610bf1565b92509250505b9250929050565b60008060008060008060006107ed8a8a610cf3565b1561080657600060018196509650965050505050610ac3565b6ffffffffeffffffffffffffffffffffff60601b19888a0992506ffffffffeffffffffffffffffffffffff60601b196002840992506ffffffffeffffffffffffffffffffffff60601b198a840991506ffffffffeffffffffffffffffffffffff60601b1989830991506ffffffffeffffffffffffffffffffffff60601b196002830991506ffffffffeffffffffffffffffffffffff60601b198a8b0999506ffffffffeffffffffffffffffffffffff60601b1960038b0993506ffffffffeffffffffffffffffffffffff60601b1988890997506ffffffffeffffffffffffffffffffffff60601b197fffffffff00000001000000000000000000000000fffffffffffffffffffffffc890997506ffffffffeffffffffffffffffffffffff60601b1988850893506ffffffffeffffffffffffffffffffffff60601b1984850990506ffffffffeffffffffffffffffffffffff60601b198260020999506ffffffffeffffffffffffffffffffffff60601b196109958b6ffffffffeffffffffffffffffffffffff60601b196110b3565b820890506ffffffffeffffffffffffffffffffffff60601b196109cc826ffffffffeffffffffffffffffffffffff60601b196110b3565b830899506ffffffffeffffffffffffffffffffffff60601b198a850999506ffffffffeffffffffffffffffffffffff60601b19838a0998506ffffffffeffffffffffffffffffffffff60601b19898a0998506ffffffffeffffffffffffffffffffffff60601b198960020998506ffffffffeffffffffffffffffffffffff60601b19610a6c8a6ffffffffeffffffffffffffffffffffff60601b196110b3565b8b0895506ffffffffeffffffffffffffffffffffff60601b1981840996506ffffffffeffffffffffffffffffffffff60601b1983840994506ffffffffeffffffffffffffffffffffff60601b198386099450505050505b93509350939050565b6000806000806000806000610ae18d8d610cf3565b15610af85789898996509650965050505050610be5565b610b028a8a610cf3565b15610b19578c8c8c96509650965050505050610be5565b6ffffffffeffffffffffffffffffffffff60601b19888d0993506ffffffffeffffffffffffffffffffffff60601b198b8a0992506ffffffffeffffffffffffffffffffffff60601b19888e0991506ffffffffeffffffffffffffffffffffff60601b198b8b09905080821415610bb55782841415610bab57610b9c8d8d8d6107d8565b96509650965050505050610be5565b6000600181610b9c565b610bd96ffffffffeffffffffffffffffffffffff60601b19898d0983838688610d17565b91985096509450505050505b96509650969350505050565b6000806000610c14846ffffffffeffffffffffffffffffffffff60601b196105cc565b90506ffffffffeffffffffffffffffffffffff60601b1981870992506ffffffffeffffffffffffffffffffffff60601b19818609915050935093915050565b6000806000610c688787600188886001610acc565b91985096509050610c7a878783610bf1565b925092505094509492505050565b610c90610f7f565b6ffffffffeffffffffffffffffffffffff60601b196001600008604082018190526ffffffffeffffffffffffffffffffffff60601b19908409815260408101516ffffffffeffffffffffffffffffffffff60601b19908309602082015292915050565b600082158015610d01575081155b15610d0e575060016105c6565b50600092915050565b6000808080808080806ffffffffeffffffffffffffffffffffff60601b19610d538b6ffffffffeffffffffffffffffffffffff60601b196110b3565b8a0890506ffffffffeffffffffffffffffffffffff60601b19610d8a8c6ffffffffeffffffffffffffffffffffff60601b196110b3565b8d0894506ffffffffeffffffffffffffffffffffff60601b1985860993506ffffffffeffffffffffffffffffffffff60601b1981820991506ffffffffeffffffffffffffffffffffff60601b198d830991506ffffffffeffffffffffffffffffffffff60601b198c8c089a506ffffffffeffffffffffffffffffffffff60601b19848c099a506ffffffffeffffffffffffffffffffffff60601b19610e438c6ffffffffeffffffffffffffffffffffff60601b196110b3565b830891506ffffffffeffffffffffffffffffffffff60601b1982860997506ffffffffeffffffffffffffffffffffff60601b1985850992506ffffffffeffffffffffffffffffffffff60601b19848d099b506ffffffffeffffffffffffffffffffffff60601b19610ec8836ffffffffeffffffffffffffffffffffff60601b196110b3565b8d089b506ffffffffeffffffffffffffffffffffff60601b198c820990506ffffffffeffffffffffffffffffffffff60601b19838a0998506ffffffffeffffffffffffffffffffffff60601b19610f338a6ffffffffeffffffffffffffffffffffff60601b196110b3565b820896506ffffffffeffffffffffffffffffffffff60601b198d840995505050505050955095509592505050565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b60008083601f840112610fae578182fd5b50813567ffffffffffffffff811115610fc5578182fd5b6020830191508360208285010111156107d157600080fd5b600060208284031215610fee578081fd5b5051919050565b6000806000806000806060878903121561100d578182fd5b863567ffffffffffffffff80821115611024578384fd5b6110308a838b01610f9d565b90985096506020890135915080821115611048578384fd5b6110548a838b01610f9d565b9096509450604089013591508082111561106c578384fd5b5061107989828a01610f9d565b979a9699509497509295939492505050565b8183823760009101908152919050565b600082198211156110ae576110ae611103565b500190565b6000828210156110c5576110c5611103565b500390565b6000826110fe577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220036936a4782f07c047a688a0be4b90fa9f2e8184ce2f42ccc8c65ee8fe74944664736f6c63430008040033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063de8f50a114610030575b600080fd5b61004361003e366004610ff5565b610057565b604051901515815260200160405180910390f35b60006101316002868660405161006e92919061108b565b602060405180830381855afa15801561008b573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906100ae9190610fdd565b6100ed85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061013c92505050565b61012c8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506101e592505050565b61027e565b979650505050505050565b610144610f61565b81516040146101b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f496e76616c69642070323536207369676e6174757265206c656e67746800000060448201526064015b60405180910390fd5b60408051808201909152806101ca846000610482565b81526020908101906101dd908590610482565b905292915050565b6101ed610f61565b8151604414610258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e76616c69642070323536206b6579206c656e67746800000000000000000060448201526064016101ab565b604080518082019091528061026e846004610482565b81526020016101dd846024610482565b815160009015806102b0575082517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255111155b806102bd57506020830151155b156102ca5750600061047b565b815160208301516102db91906104a6565b6102e75750600061047b565b60008080808061031e88600160200201517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325516105cc565b905061038e7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2967f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f57fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551848d096106b5565b885160208a01518b519398509195506103ce929091907fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551908590096106b5565b909450915060006103e186858786610782565b60408101519091506103fc576000965050505050505061047b565b600061042382600260200201516ffffffffeffffffffffffffffffffffff60601b196105cc565b90506ffffffffeffffffffffffffffffffffff60601b19808283098351098a519091506104707fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551836110ca565b149750505050505050505b9392505050565b815160009061049283602061109b565b111561049d57600080fd5b50016020015190565b60008215806104c857506ffffffffeffffffffffffffffffffffff60601b1983145b806104d1575081155b806104ef57506ffffffffeffffffffffffffffffffffff60601b1982145b156104fc575060006105c6565b60006ffffffffeffffffffffffffffffffffff60601b19838409905060006ffffffffeffffffffffffffffffffffff60601b19856ffffffffeffffffffffffffffffffffff60601b198788090990506ffffffffeffffffffffffffffffffffff60601b19807fffffffff00000001000000000000000000000000fffffffffffffffffffffffc8709820890506ffffffffeffffffffffffffffffffffff60601b197f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b820890501490505b92915050565b60008215806105da57508183145b806105e3575081155b156105f0575060006105c6565b818311156106325781838161062e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0692505b600060018385835b811561069057818381610676577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b94959404858102909403939192838302900391905061063a565b60008512156106a95750505050600003820390506105c6565b50929695505050505050565b600080826106ca576000805b9150915061077a565b82600114156106dd57508390508261077a565b82600214156106f0576106c185856107a8565b508390508281816001806107056002886110ca565b61071157600094508495505b600187901c96505b86156107665761072a8484846107d8565b9195509350915061073c6002886110ca565b6001141561075a57610752848484898986610acc565b919750955090505b600187901c9650610719565b610771868683610bf1565b95509550505050505b935093915050565b61078a610f7f565b60008061079987878787610c53565b90925090506101318282610c88565b60008060006107b9858560016107d8565b919650945090506107cb858583610bf1565b92509250505b9250929050565b60008060008060008060006107ed8a8a610cf3565b1561080657600060018196509650965050505050610ac3565b6ffffffffeffffffffffffffffffffffff60601b19888a0992506ffffffffeffffffffffffffffffffffff60601b196002840992506ffffffffeffffffffffffffffffffffff60601b198a840991506ffffffffeffffffffffffffffffffffff60601b1989830991506ffffffffeffffffffffffffffffffffff60601b196002830991506ffffffffeffffffffffffffffffffffff60601b198a8b0999506ffffffffeffffffffffffffffffffffff60601b1960038b0993506ffffffffeffffffffffffffffffffffff60601b1988890997506ffffffffeffffffffffffffffffffffff60601b197fffffffff00000001000000000000000000000000fffffffffffffffffffffffc890997506ffffffffeffffffffffffffffffffffff60601b1988850893506ffffffffeffffffffffffffffffffffff60601b1984850990506ffffffffeffffffffffffffffffffffff60601b198260020999506ffffffffeffffffffffffffffffffffff60601b196109958b6ffffffffeffffffffffffffffffffffff60601b196110b3565b820890506ffffffffeffffffffffffffffffffffff60601b196109cc826ffffffffeffffffffffffffffffffffff60601b196110b3565b830899506ffffffffeffffffffffffffffffffffff60601b198a850999506ffffffffeffffffffffffffffffffffff60601b19838a0998506ffffffffeffffffffffffffffffffffff60601b19898a0998506ffffffffeffffffffffffffffffffffff60601b198960020998506ffffffffeffffffffffffffffffffffff60601b19610a6c8a6ffffffffeffffffffffffffffffffffff60601b196110b3565b8b0895506ffffffffeffffffffffffffffffffffff60601b1981840996506ffffffffeffffffffffffffffffffffff60601b1983840994506ffffffffeffffffffffffffffffffffff60601b198386099450505050505b93509350939050565b6000806000806000806000610ae18d8d610cf3565b15610af85789898996509650965050505050610be5565b610b028a8a610cf3565b15610b19578c8c8c96509650965050505050610be5565b6ffffffffeffffffffffffffffffffffff60601b19888d0993506ffffffffeffffffffffffffffffffffff60601b198b8a0992506ffffffffeffffffffffffffffffffffff60601b19888e0991506ffffffffeffffffffffffffffffffffff60601b198b8b09905080821415610bb55782841415610bab57610b9c8d8d8d6107d8565b96509650965050505050610be5565b6000600181610b9c565b610bd96ffffffffeffffffffffffffffffffffff60601b19898d0983838688610d17565b91985096509450505050505b96509650969350505050565b6000806000610c14846ffffffffeffffffffffffffffffffffff60601b196105cc565b90506ffffffffeffffffffffffffffffffffff60601b1981870992506ffffffffeffffffffffffffffffffffff60601b19818609915050935093915050565b6000806000610c688787600188886001610acc565b91985096509050610c7a878783610bf1565b925092505094509492505050565b610c90610f7f565b6ffffffffeffffffffffffffffffffffff60601b196001600008604082018190526ffffffffeffffffffffffffffffffffff60601b19908409815260408101516ffffffffeffffffffffffffffffffffff60601b19908309602082015292915050565b600082158015610d01575081155b15610d0e575060016105c6565b50600092915050565b6000808080808080806ffffffffeffffffffffffffffffffffff60601b19610d538b6ffffffffeffffffffffffffffffffffff60601b196110b3565b8a0890506ffffffffeffffffffffffffffffffffff60601b19610d8a8c6ffffffffeffffffffffffffffffffffff60601b196110b3565b8d0894506ffffffffeffffffffffffffffffffffff60601b1985860993506ffffffffeffffffffffffffffffffffff60601b1981820991506ffffffffeffffffffffffffffffffffff60601b198d830991506ffffffffeffffffffffffffffffffffff60601b198c8c089a506ffffffffeffffffffffffffffffffffff60601b19848c099a506ffffffffeffffffffffffffffffffffff60601b19610e438c6ffffffffeffffffffffffffffffffffff60601b196110b3565b830891506ffffffffeffffffffffffffffffffffff60601b1982860997506ffffffffeffffffffffffffffffffffff60601b1985850992506ffffffffeffffffffffffffffffffffff60601b19848d099b506ffffffffeffffffffffffffffffffffff60601b19610ec8836ffffffffeffffffffffffffffffffffff60601b196110b3565b8d089b506ffffffffeffffffffffffffffffffffff60601b198c820990506ffffffffeffffffffffffffffffffffff60601b19838a0998506ffffffffeffffffffffffffffffffffff60601b19610f338a6ffffffffeffffffffffffffffffffffff60601b196110b3565b820896506ffffffffeffffffffffffffffffffffff60601b198d840995505050505050955095509592505050565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b60008083601f840112610fae578182fd5b50813567ffffffffffffffff811115610fc5578182fd5b6020830191508360208285010111156107d157600080fd5b600060208284031215610fee578081fd5b5051919050565b6000806000806000806060878903121561100d578182fd5b863567ffffffffffffffff80821115611024578384fd5b6110308a838b01610f9d565b90985096506020890135915080821115611048578384fd5b6110548a838b01610f9d565b9096509450604089013591508082111561106c578384fd5b5061107989828a01610f9d565b979a9699509497509295939492505050565b8183823760009101908152919050565b600082198211156110ae576110ae611103565b500190565b6000828210156110c5576110c5611103565b500390565b6000826110fe577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220036936a4782f07c047a688a0be4b90fa9f2e8184ce2f42ccc8c65ee8fe74944664736f6c63430008040033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
