// Copyright 2023 Huawei Technologies Co.,Ltd.
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.

package signer

var (
	sha256HasherInst     sha256Hasher
	sm3HasherInst        sm3Hasher
	signerInst           Signer
	derivedSignerInst    DerivedSigner
	sm3SignerInst        SM3Signer
	p256sha256SignerInst P256SHA256Signer
	sm2sm3SignerInst     SM2SM3Signer
)

func init() {
	sha256HasherInst = sha256Hasher{}
	sm3HasherInst = sm3Hasher{}
	signerInst = Signer{}
	derivedSignerInst = DerivedSigner{}
	sm3SignerInst = SM3Signer{}
	p256sha256SignerInst = P256SHA256Signer{}
	sm2sm3SignerInst = SM2SM3Signer{}
}

func GetDerivedSigner() DerivedSigner {
	return derivedSignerInst
}
