{
  "_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": "0x608060405234801561001057600080fd5b5061114c806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063de8f50a114610030575b600080fd5b61004361003e366004610f94565b610057565b604051901515815260200160405180910390f35b60006101316002868660405161006e92919061102e565b602060405180830381855afa15801561008b573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906100ae919061103e565b6100ed85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061013c92505050565b61012c8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506101e592505050565b61027e565b979650505050505050565b610144610f16565b81516040146101b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f496e76616c69642070323536207369676e6174757265206c656e67746800000060448201526064015b60405180910390fd5b60408051808201909152806101ca846000610485565b81526020908101906101dd908590610485565b905292915050565b6101ed610f16565b8151604414610258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e76616c69642070323536206b6579206c656e67746800000000000000000060448201526064016101ab565b604080518082019091528061026e846004610485565b81526020016101dd846024610485565b815160009015806102b0575082517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255111155b806102bd57506020830151155b156102ca5750600061047e565b815160208301516102db91906104a9565b6102e75750600061047e565b60008080808061031e88600160200201517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325516105cf565b905061038e7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2967f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f57fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551848d09610669565b885160208a01518b519398509195506103ce929091907fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255190859009610669565b909450915060006103e186858786610739565b60408101519091506000036103ff576000965050505050505061047e565b600061042682600260200201516ffffffffeffffffffffffffffffffffff60601b196105cf565b90506ffffffffeffffffffffffffffffffffff60601b19808283098351098a519091506104737fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255183611086565b149750505050505050505b9392505050565b81516000906104958360206110f0565b11156104a057600080fd5b50016020015190565b60008215806104cb57506ffffffffeffffffffffffffffffffffff60601b1983145b806104d4575081155b806104f257506ffffffffeffffffffffffffffffffffff60601b1982145b156104ff575060006105c9565b60006ffffffffeffffffffffffffffffffffff60601b19838409905060006ffffffffeffffffffffffffffffffffff60601b19856ffffffffeffffffffffffffffffffffff60601b198788090990506ffffffffeffffffffffffffffffffffff60601b19807fffffffff00000001000000000000000000000000fffffffffffffffffffffffc8709820890506ffffffffeffffffffffffffffffffffff60601b197f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b820890501490505b92915050565b60008215806105dd57508183145b806105e6575081155b156105f3575060006105c9565b8183111561060e5781838161060a5761060a611057565b0692505b600060018385835b81156106455781838161062b5761062b611057565b949594048581029094039391928383029003919050610616565b600085121561065d5750505090830191506105c99050565b50929695505050505050565b60008082600003610681576000805b91509150610731565b82600103610693575083905082610731565b826002036106a557610678858561075f565b508390508281816001806106ba600288611086565b6000036106c957600094508495505b600187901c96505b861561071d576106e284848461078f565b919550935091506106f4600288611086565b60010361071157610709848484898986610a83565b919750955090505b600187901c96506106d1565b610728868683610ba6565b95509550505050505b935093915050565b610741610f34565b60008061075087878787610c08565b90925090506101318282610c3d565b60008060006107708585600161078f565b91965094509050610782858583610ba6565b92509250505b9250929050565b60008060008060008060006107a48a8a610ca8565b156107bd57600060018196509650965050505050610a7a565b6ffffffffeffffffffffffffffffffffff60601b19888a0992506ffffffffeffffffffffffffffffffffff60601b196002840992506ffffffffeffffffffffffffffffffffff60601b198a840991506ffffffffeffffffffffffffffffffffff60601b1989830991506ffffffffeffffffffffffffffffffffff60601b196002830991506ffffffffeffffffffffffffffffffffff60601b198a8b0999506ffffffffeffffffffffffffffffffffff60601b1960038b0993506ffffffffeffffffffffffffffffffffff60601b1988890997506ffffffffeffffffffffffffffffffffff60601b197fffffffff00000001000000000000000000000000fffffffffffffffffffffffc890997506ffffffffeffffffffffffffffffffffff60601b1988850893506ffffffffeffffffffffffffffffffffff60601b1984850990506ffffffffeffffffffffffffffffffffff60601b198260020999506ffffffffeffffffffffffffffffffffff60601b1961094c8b6ffffffffeffffffffffffffffffffffff60601b19611103565b820890506ffffffffeffffffffffffffffffffffff60601b19610983826ffffffffeffffffffffffffffffffffff60601b19611103565b830899506ffffffffeffffffffffffffffffffffff60601b198a850999506ffffffffeffffffffffffffffffffffff60601b19838a0998506ffffffffeffffffffffffffffffffffff60601b19898a0998506ffffffffeffffffffffffffffffffffff60601b198960020998506ffffffffeffffffffffffffffffffffff60601b19610a238a6ffffffffeffffffffffffffffffffffff60601b19611103565b8b0895506ffffffffeffffffffffffffffffffffff60601b1981840996506ffffffffeffffffffffffffffffffffff60601b1983840994506ffffffffeffffffffffffffffffffffff60601b198386099450505050505b93509350939050565b6000806000806000806000610a988d8d610ca8565b15610aaf5789898996509650965050505050610b9a565b610ab98a8a610ca8565b15610ad0578c8c8c96509650965050505050610b9a565b6ffffffffeffffffffffffffffffffffff60601b19888d0993506ffffffffeffffffffffffffffffffffff60601b198b8a0992506ffffffffeffffffffffffffffffffffff60601b19888e0991506ffffffffeffffffffffffffffffffffff60601b198b8b099050808203610b6a57828403610b6057610b518d8d8d61078f565b96509650965050505050610b9a565b6000600181610b51565b610b8e6ffffffffeffffffffffffffffffffffff60601b19898d0983838688610ccc565b91985096509450505050505b96509650969350505050565b6000806000610bc9846ffffffffeffffffffffffffffffffffff60601b196105cf565b90506ffffffffeffffffffffffffffffffffff60601b1981870992506ffffffffeffffffffffffffffffffffff60601b19818609915050935093915050565b6000806000610c1d8787600188886001610a83565b91985096509050610c2f878783610ba6565b925092505094509492505050565b610c45610f34565b6ffffffffeffffffffffffffffffffffff60601b196001600008604082018190526ffffffffeffffffffffffffffffffffff60601b19908409815260408101516ffffffffeffffffffffffffffffffffff60601b19908309602082015292915050565b600082158015610cb6575081155b15610cc3575060016105c9565b50600092915050565b6000808080808080806ffffffffeffffffffffffffffffffffff60601b19610d088b6ffffffffeffffffffffffffffffffffff60601b19611103565b8a0890506ffffffffeffffffffffffffffffffffff60601b19610d3f8c6ffffffffeffffffffffffffffffffffff60601b19611103565b8d0894506ffffffffeffffffffffffffffffffffff60601b1985860993506ffffffffeffffffffffffffffffffffff60601b1981820991506ffffffffeffffffffffffffffffffffff60601b198d830991506ffffffffeffffffffffffffffffffffff60601b198c8c089a506ffffffffeffffffffffffffffffffffff60601b19848c099a506ffffffffeffffffffffffffffffffffff60601b19610df88c6ffffffffeffffffffffffffffffffffff60601b19611103565b830891506ffffffffeffffffffffffffffffffffff60601b1982860997506ffffffffeffffffffffffffffffffffff60601b1985850992506ffffffffeffffffffffffffffffffffff60601b19848d099b506ffffffffeffffffffffffffffffffffff60601b19610e7d836ffffffffeffffffffffffffffffffffff60601b19611103565b8d089b506ffffffffeffffffffffffffffffffffff60601b198c820990506ffffffffeffffffffffffffffffffffff60601b19838a0998506ffffffffeffffffffffffffffffffffff60601b19610ee88a6ffffffffeffffffffffffffffffffffff60601b19611103565b820896506ffffffffeffffffffffffffffffffffff60601b198d840995505050505050955095509592505050565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b60008083601f840112610f6457600080fd5b50813567ffffffffffffffff811115610f7c57600080fd5b60208301915083602082850101111561078857600080fd5b60008060008060008060608789031215610fad57600080fd5b863567ffffffffffffffff80821115610fc557600080fd5b610fd18a838b01610f52565b90985096506020890135915080821115610fea57600080fd5b610ff68a838b01610f52565b9096509450604089013591508082111561100f57600080fd5b5061101c89828a01610f52565b979a9699509497509295939492505050565b8183823760009101908152919050565b60006020828403121561105057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826110bc577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156105c9576105c96110c1565b818103818111156105c9576105c96110c156fea26469706673582212209e8b22686411df24f52aa7eaef7c99f89298dd4cc69e8163d2245205268fec1164736f6c63430008110033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063de8f50a114610030575b600080fd5b61004361003e366004610f94565b610057565b604051901515815260200160405180910390f35b60006101316002868660405161006e92919061102e565b602060405180830381855afa15801561008b573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906100ae919061103e565b6100ed85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061013c92505050565b61012c8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506101e592505050565b61027e565b979650505050505050565b610144610f16565b81516040146101b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f496e76616c69642070323536207369676e6174757265206c656e67746800000060448201526064015b60405180910390fd5b60408051808201909152806101ca846000610485565b81526020908101906101dd908590610485565b905292915050565b6101ed610f16565b8151604414610258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e76616c69642070323536206b6579206c656e67746800000000000000000060448201526064016101ab565b604080518082019091528061026e846004610485565b81526020016101dd846024610485565b815160009015806102b0575082517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255111155b806102bd57506020830151155b156102ca5750600061047e565b815160208301516102db91906104a9565b6102e75750600061047e565b60008080808061031e88600160200201517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325516105cf565b905061038e7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2967f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f57fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551848d09610669565b885160208a01518b519398509195506103ce929091907fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255190859009610669565b909450915060006103e186858786610739565b60408101519091506000036103ff576000965050505050505061047e565b600061042682600260200201516ffffffffeffffffffffffffffffffffff60601b196105cf565b90506ffffffffeffffffffffffffffffffffff60601b19808283098351098a519091506104737fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255183611086565b149750505050505050505b9392505050565b81516000906104958360206110f0565b11156104a057600080fd5b50016020015190565b60008215806104cb57506ffffffffeffffffffffffffffffffffff60601b1983145b806104d4575081155b806104f257506ffffffffeffffffffffffffffffffffff60601b1982145b156104ff575060006105c9565b60006ffffffffeffffffffffffffffffffffff60601b19838409905060006ffffffffeffffffffffffffffffffffff60601b19856ffffffffeffffffffffffffffffffffff60601b198788090990506ffffffffeffffffffffffffffffffffff60601b19807fffffffff00000001000000000000000000000000fffffffffffffffffffffffc8709820890506ffffffffeffffffffffffffffffffffff60601b197f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b820890501490505b92915050565b60008215806105dd57508183145b806105e6575081155b156105f3575060006105c9565b8183111561060e5781838161060a5761060a611057565b0692505b600060018385835b81156106455781838161062b5761062b611057565b949594048581029094039391928383029003919050610616565b600085121561065d5750505090830191506105c99050565b50929695505050505050565b60008082600003610681576000805b91509150610731565b82600103610693575083905082610731565b826002036106a557610678858561075f565b508390508281816001806106ba600288611086565b6000036106c957600094508495505b600187901c96505b861561071d576106e284848461078f565b919550935091506106f4600288611086565b60010361071157610709848484898986610a83565b919750955090505b600187901c96506106d1565b610728868683610ba6565b95509550505050505b935093915050565b610741610f34565b60008061075087878787610c08565b90925090506101318282610c3d565b60008060006107708585600161078f565b91965094509050610782858583610ba6565b92509250505b9250929050565b60008060008060008060006107a48a8a610ca8565b156107bd57600060018196509650965050505050610a7a565b6ffffffffeffffffffffffffffffffffff60601b19888a0992506ffffffffeffffffffffffffffffffffff60601b196002840992506ffffffffeffffffffffffffffffffffff60601b198a840991506ffffffffeffffffffffffffffffffffff60601b1989830991506ffffffffeffffffffffffffffffffffff60601b196002830991506ffffffffeffffffffffffffffffffffff60601b198a8b0999506ffffffffeffffffffffffffffffffffff60601b1960038b0993506ffffffffeffffffffffffffffffffffff60601b1988890997506ffffffffeffffffffffffffffffffffff60601b197fffffffff00000001000000000000000000000000fffffffffffffffffffffffc890997506ffffffffeffffffffffffffffffffffff60601b1988850893506ffffffffeffffffffffffffffffffffff60601b1984850990506ffffffffeffffffffffffffffffffffff60601b198260020999506ffffffffeffffffffffffffffffffffff60601b1961094c8b6ffffffffeffffffffffffffffffffffff60601b19611103565b820890506ffffffffeffffffffffffffffffffffff60601b19610983826ffffffffeffffffffffffffffffffffff60601b19611103565b830899506ffffffffeffffffffffffffffffffffff60601b198a850999506ffffffffeffffffffffffffffffffffff60601b19838a0998506ffffffffeffffffffffffffffffffffff60601b19898a0998506ffffffffeffffffffffffffffffffffff60601b198960020998506ffffffffeffffffffffffffffffffffff60601b19610a238a6ffffffffeffffffffffffffffffffffff60601b19611103565b8b0895506ffffffffeffffffffffffffffffffffff60601b1981840996506ffffffffeffffffffffffffffffffffff60601b1983840994506ffffffffeffffffffffffffffffffffff60601b198386099450505050505b93509350939050565b6000806000806000806000610a988d8d610ca8565b15610aaf5789898996509650965050505050610b9a565b610ab98a8a610ca8565b15610ad0578c8c8c96509650965050505050610b9a565b6ffffffffeffffffffffffffffffffffff60601b19888d0993506ffffffffeffffffffffffffffffffffff60601b198b8a0992506ffffffffeffffffffffffffffffffffff60601b19888e0991506ffffffffeffffffffffffffffffffffff60601b198b8b099050808203610b6a57828403610b6057610b518d8d8d61078f565b96509650965050505050610b9a565b6000600181610b51565b610b8e6ffffffffeffffffffffffffffffffffff60601b19898d0983838688610ccc565b91985096509450505050505b96509650969350505050565b6000806000610bc9846ffffffffeffffffffffffffffffffffff60601b196105cf565b90506ffffffffeffffffffffffffffffffffff60601b1981870992506ffffffffeffffffffffffffffffffffff60601b19818609915050935093915050565b6000806000610c1d8787600188886001610a83565b91985096509050610c2f878783610ba6565b925092505094509492505050565b610c45610f34565b6ffffffffeffffffffffffffffffffffff60601b196001600008604082018190526ffffffffeffffffffffffffffffffffff60601b19908409815260408101516ffffffffeffffffffffffffffffffffff60601b19908309602082015292915050565b600082158015610cb6575081155b15610cc3575060016105c9565b50600092915050565b6000808080808080806ffffffffeffffffffffffffffffffffff60601b19610d088b6ffffffffeffffffffffffffffffffffff60601b19611103565b8a0890506ffffffffeffffffffffffffffffffffff60601b19610d3f8c6ffffffffeffffffffffffffffffffffff60601b19611103565b8d0894506ffffffffeffffffffffffffffffffffff60601b1985860993506ffffffffeffffffffffffffffffffffff60601b1981820991506ffffffffeffffffffffffffffffffffff60601b198d830991506ffffffffeffffffffffffffffffffffff60601b198c8c089a506ffffffffeffffffffffffffffffffffff60601b19848c099a506ffffffffeffffffffffffffffffffffff60601b19610df88c6ffffffffeffffffffffffffffffffffff60601b19611103565b830891506ffffffffeffffffffffffffffffffffff60601b1982860997506ffffffffeffffffffffffffffffffffff60601b1985850992506ffffffffeffffffffffffffffffffffff60601b19848d099b506ffffffffeffffffffffffffffffffffff60601b19610e7d836ffffffffeffffffffffffffffffffffff60601b19611103565b8d089b506ffffffffeffffffffffffffffffffffff60601b198c820990506ffffffffeffffffffffffffffffffffff60601b19838a0998506ffffffffeffffffffffffffffffffffff60601b19610ee88a6ffffffffeffffffffffffffffffffffff60601b19611103565b820896506ffffffffeffffffffffffffffffffffff60601b198d840995505050505050955095509592505050565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b60008083601f840112610f6457600080fd5b50813567ffffffffffffffff811115610f7c57600080fd5b60208301915083602082850101111561078857600080fd5b60008060008060008060608789031215610fad57600080fd5b863567ffffffffffffffff80821115610fc557600080fd5b610fd18a838b01610f52565b90985096506020890135915080821115610fea57600080fd5b610ff68a838b01610f52565b9096509450604089013591508082111561100f57600080fd5b5061101c89828a01610f52565b979a9699509497509295939492505050565b8183823760009101908152919050565b60006020828403121561105057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826110bc577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156105c9576105c96110c1565b818103818111156105c9576105c96110c156fea26469706673582212209e8b22686411df24f52aa7eaef7c99f89298dd4cc69e8163d2245205268fec1164736f6c63430008110033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
