mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-28 08:04:07 +02:00
SecurityPkg: HashLib: Change dos format
Change file format to DOS Cc: Bi Dandan <dandan.bi@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Zhang Chao B <chao.b.zhang@intel.com> Reviewed-by: Bi Dandan <dandan.bi@intel.com>
This commit is contained in:
parent
0a0d5296e4
commit
3a34753312
@ -1,155 +1,155 @@
|
|||||||
/** @file
|
/** @file
|
||||||
This library is BaseCrypto SHA384 hash instance.
|
This library is BaseCrypto SHA384 hash instance.
|
||||||
It can be registered to BaseCrypto router, to serve as hash engine.
|
It can be registered to BaseCrypto router, to serve as hash engine.
|
||||||
|
|
||||||
Copyright (c) 2018, Intel Corporation. All rights reserved. <BR>
|
Copyright (c) 2018, Intel Corporation. All rights reserved. <BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
http://opensource.org/licenses/bsd-license.php
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#include <PiPei.h>
|
#include <PiPei.h>
|
||||||
|
|
||||||
#include <Library/BaseLib.h>
|
#include <Library/BaseLib.h>
|
||||||
#include <Library/BaseMemoryLib.h>
|
#include <Library/BaseMemoryLib.h>
|
||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
#include <Library/BaseCryptLib.h>
|
#include <Library/BaseCryptLib.h>
|
||||||
#include <Library/MemoryAllocationLib.h>
|
#include <Library/MemoryAllocationLib.h>
|
||||||
#include <Library/HashLib.h>
|
#include <Library/HashLib.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The function set SHA384 to digest list.
|
The function set SHA384 to digest list.
|
||||||
|
|
||||||
@param DigestList digest list
|
@param DigestList digest list
|
||||||
@param Sha384Digest SHA384 digest
|
@param Sha384Digest SHA384 digest
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
Tpm2SetSha384ToDigestList (
|
Tpm2SetSha384ToDigestList (
|
||||||
IN TPML_DIGEST_VALUES *DigestList,
|
IN TPML_DIGEST_VALUES *DigestList,
|
||||||
IN UINT8 *Sha384Digest
|
IN UINT8 *Sha384Digest
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
DigestList->count = 1;
|
DigestList->count = 1;
|
||||||
DigestList->digests[0].hashAlg = TPM_ALG_SHA384;
|
DigestList->digests[0].hashAlg = TPM_ALG_SHA384;
|
||||||
CopyMem (
|
CopyMem (
|
||||||
DigestList->digests[0].digest.sha384,
|
DigestList->digests[0].digest.sha384,
|
||||||
Sha384Digest,
|
Sha384Digest,
|
||||||
SHA384_DIGEST_SIZE
|
SHA384_DIGEST_SIZE
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Start hash sequence.
|
Start hash sequence.
|
||||||
|
|
||||||
@param HashHandle Hash handle.
|
@param HashHandle Hash handle.
|
||||||
|
|
||||||
@retval EFI_SUCCESS Hash sequence start and HandleHandle returned.
|
@retval EFI_SUCCESS Hash sequence start and HandleHandle returned.
|
||||||
@retval EFI_OUT_OF_RESOURCES No enough resource to start hash.
|
@retval EFI_OUT_OF_RESOURCES No enough resource to start hash.
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
Sha384HashInit (
|
Sha384HashInit (
|
||||||
OUT HASH_HANDLE *HashHandle
|
OUT HASH_HANDLE *HashHandle
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
VOID *Sha384Ctx;
|
VOID *Sha384Ctx;
|
||||||
UINTN CtxSize;
|
UINTN CtxSize;
|
||||||
|
|
||||||
CtxSize = Sha384GetContextSize ();
|
CtxSize = Sha384GetContextSize ();
|
||||||
Sha384Ctx = AllocatePool (CtxSize);
|
Sha384Ctx = AllocatePool (CtxSize);
|
||||||
ASSERT (Sha384Ctx != NULL);
|
ASSERT (Sha384Ctx != NULL);
|
||||||
|
|
||||||
Sha384Init (Sha384Ctx);
|
Sha384Init (Sha384Ctx);
|
||||||
|
|
||||||
*HashHandle = (HASH_HANDLE)Sha384Ctx;
|
*HashHandle = (HASH_HANDLE)Sha384Ctx;
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Update hash sequence data.
|
Update hash sequence data.
|
||||||
|
|
||||||
@param HashHandle Hash handle.
|
@param HashHandle Hash handle.
|
||||||
@param DataToHash Data to be hashed.
|
@param DataToHash Data to be hashed.
|
||||||
@param DataToHashLen Data size.
|
@param DataToHashLen Data size.
|
||||||
|
|
||||||
@retval EFI_SUCCESS Hash sequence updated.
|
@retval EFI_SUCCESS Hash sequence updated.
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
Sha384HashUpdate (
|
Sha384HashUpdate (
|
||||||
IN HASH_HANDLE HashHandle,
|
IN HASH_HANDLE HashHandle,
|
||||||
IN VOID *DataToHash,
|
IN VOID *DataToHash,
|
||||||
IN UINTN DataToHashLen
|
IN UINTN DataToHashLen
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
VOID *Sha384Ctx;
|
VOID *Sha384Ctx;
|
||||||
|
|
||||||
Sha384Ctx = (VOID *)HashHandle;
|
Sha384Ctx = (VOID *)HashHandle;
|
||||||
Sha384Update (Sha384Ctx, DataToHash, DataToHashLen);
|
Sha384Update (Sha384Ctx, DataToHash, DataToHashLen);
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Complete hash sequence complete.
|
Complete hash sequence complete.
|
||||||
|
|
||||||
@param HashHandle Hash handle.
|
@param HashHandle Hash handle.
|
||||||
@param DigestList Digest list.
|
@param DigestList Digest list.
|
||||||
|
|
||||||
@retval EFI_SUCCESS Hash sequence complete and DigestList is returned.
|
@retval EFI_SUCCESS Hash sequence complete and DigestList is returned.
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
Sha384HashFinal (
|
Sha384HashFinal (
|
||||||
IN HASH_HANDLE HashHandle,
|
IN HASH_HANDLE HashHandle,
|
||||||
OUT TPML_DIGEST_VALUES *DigestList
|
OUT TPML_DIGEST_VALUES *DigestList
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINT8 Digest[SHA384_DIGEST_SIZE];
|
UINT8 Digest[SHA384_DIGEST_SIZE];
|
||||||
VOID *Sha384Ctx;
|
VOID *Sha384Ctx;
|
||||||
|
|
||||||
Sha384Ctx = (VOID *)HashHandle;
|
Sha384Ctx = (VOID *)HashHandle;
|
||||||
Sha384Final (Sha384Ctx, Digest);
|
Sha384Final (Sha384Ctx, Digest);
|
||||||
|
|
||||||
FreePool (Sha384Ctx);
|
FreePool (Sha384Ctx);
|
||||||
|
|
||||||
Tpm2SetSha384ToDigestList (DigestList, Digest);
|
Tpm2SetSha384ToDigestList (DigestList, Digest);
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
HASH_INTERFACE mSha384InternalHashInstance = {
|
HASH_INTERFACE mSha384InternalHashInstance = {
|
||||||
HASH_ALGORITHM_SHA384_GUID,
|
HASH_ALGORITHM_SHA384_GUID,
|
||||||
Sha384HashInit,
|
Sha384HashInit,
|
||||||
Sha384HashUpdate,
|
Sha384HashUpdate,
|
||||||
Sha384HashFinal,
|
Sha384HashFinal,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The function register SHA384 instance.
|
The function register SHA384 instance.
|
||||||
|
|
||||||
@retval EFI_SUCCESS SHA384 instance is registered, or system dose not surpport registr SHA384 instance
|
@retval EFI_SUCCESS SHA384 instance is registered, or system dose not surpport registr SHA384 instance
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
HashInstanceLibSha384Constructor (
|
HashInstanceLibSha384Constructor (
|
||||||
VOID
|
VOID
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
Status = RegisterHashInterfaceLib (&mSha384InternalHashInstance);
|
Status = RegisterHashInterfaceLib (&mSha384InternalHashInstance);
|
||||||
if ((Status == EFI_SUCCESS) || (Status == EFI_UNSUPPORTED)) {
|
if ((Status == EFI_SUCCESS) || (Status == EFI_UNSUPPORTED)) {
|
||||||
//
|
//
|
||||||
// Unsupported means platform policy does not need this instance enabled.
|
// Unsupported means platform policy does not need this instance enabled.
|
||||||
//
|
//
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
@ -1,45 +1,45 @@
|
|||||||
## @file
|
## @file
|
||||||
# Provides BaseCrypto SHA384 hash service
|
# Provides BaseCrypto SHA384 hash service
|
||||||
#
|
#
|
||||||
# This library can be registered to BaseCrypto router, to serve as hash engine.
|
# This library can be registered to BaseCrypto router, to serve as hash engine.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
||||||
# This program and the accompanying materials
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
# which accompanies this distribution. The full text of the license may be found at
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
# http://opensource.org/licenses/bsd-license.php
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
#
|
#
|
||||||
##
|
##
|
||||||
|
|
||||||
[Defines]
|
[Defines]
|
||||||
INF_VERSION = 0x00010005
|
INF_VERSION = 0x00010005
|
||||||
BASE_NAME = HashInstanceLibSha384
|
BASE_NAME = HashInstanceLibSha384
|
||||||
MODULE_UNI_FILE = HashInstanceLibSha384.uni
|
MODULE_UNI_FILE = HashInstanceLibSha384.uni
|
||||||
FILE_GUID = 74223710-17A9-478F-9B24-E354496B968B
|
FILE_GUID = 74223710-17A9-478F-9B24-E354496B968B
|
||||||
MODULE_TYPE = BASE
|
MODULE_TYPE = BASE
|
||||||
VERSION_STRING = 1.0
|
VERSION_STRING = 1.0
|
||||||
LIBRARY_CLASS = NULL
|
LIBRARY_CLASS = NULL
|
||||||
CONSTRUCTOR = HashInstanceLibSha384Constructor
|
CONSTRUCTOR = HashInstanceLibSha384Constructor
|
||||||
|
|
||||||
#
|
#
|
||||||
# The following information is for reference only and not required by the build tools.
|
# The following information is for reference only and not required by the build tools.
|
||||||
#
|
#
|
||||||
# VALID_ARCHITECTURES = IA32 X64
|
# VALID_ARCHITECTURES = IA32 X64
|
||||||
#
|
#
|
||||||
|
|
||||||
[Sources]
|
[Sources]
|
||||||
HashInstanceLibSha384.c
|
HashInstanceLibSha384.c
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
SecurityPkg/SecurityPkg.dec
|
SecurityPkg/SecurityPkg.dec
|
||||||
CryptoPkg/CryptoPkg.dec
|
CryptoPkg/CryptoPkg.dec
|
||||||
|
|
||||||
[LibraryClasses]
|
[LibraryClasses]
|
||||||
BaseLib
|
BaseLib
|
||||||
BaseMemoryLib
|
BaseMemoryLib
|
||||||
DebugLib
|
DebugLib
|
||||||
MemoryAllocationLib
|
MemoryAllocationLib
|
||||||
BaseCryptLib
|
BaseCryptLib
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
// /** @file
|
// /** @file
|
||||||
// Provides BaseCrypto SHA384 hash service
|
// Provides BaseCrypto SHA384 hash service
|
||||||
//
|
//
|
||||||
// This library can be registered to BaseCrypto router, to serve as hash engine.
|
// This library can be registered to BaseCrypto router, to serve as hash engine.
|
||||||
//
|
//
|
||||||
// Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
// Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
||||||
//
|
//
|
||||||
// This program and the accompanying materials
|
// This program and the accompanying materials
|
||||||
// are licensed and made available under the terms and conditions of the BSD License
|
// are licensed and made available under the terms and conditions of the BSD License
|
||||||
// which accompanies this distribution. The full text of the license may be found at
|
// which accompanies this distribution. The full text of the license may be found at
|
||||||
// http://opensource.org/licenses/bsd-license.php
|
// http://opensource.org/licenses/bsd-license.php
|
||||||
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
//
|
//
|
||||||
// **/
|
// **/
|
||||||
|
|
||||||
|
|
||||||
#string STR_MODULE_ABSTRACT #language en-US "Provides BaseCrypto SHA384 hash service"
|
#string STR_MODULE_ABSTRACT #language en-US "Provides BaseCrypto SHA384 hash service"
|
||||||
|
|
||||||
#string STR_MODULE_DESCRIPTION #language en-US "This library can be registered to BaseCrypto router, to serve as hash engine."
|
#string STR_MODULE_DESCRIPTION #language en-US "This library can be registered to BaseCrypto router, to serve as hash engine."
|
||||||
|
|
||||||
|
@ -1,154 +1,154 @@
|
|||||||
/** @file
|
/** @file
|
||||||
This library is BaseCrypto SHA512 hash instance.
|
This library is BaseCrypto SHA512 hash instance.
|
||||||
It can be registered to BaseCrypto router, to serve as hash engine.
|
It can be registered to BaseCrypto router, to serve as hash engine.
|
||||||
|
|
||||||
Copyright (c) 2018, Intel Corporation. All rights reserved. <BR>
|
Copyright (c) 2018, Intel Corporation. All rights reserved. <BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
http://opensource.org/licenses/bsd-license.php
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#include <PiPei.h>
|
#include <PiPei.h>
|
||||||
#include <Library/BaseLib.h>
|
#include <Library/BaseLib.h>
|
||||||
#include <Library/BaseMemoryLib.h>
|
#include <Library/BaseMemoryLib.h>
|
||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
#include <Library/BaseCryptLib.h>
|
#include <Library/BaseCryptLib.h>
|
||||||
#include <Library/MemoryAllocationLib.h>
|
#include <Library/MemoryAllocationLib.h>
|
||||||
#include <Library/HashLib.h>
|
#include <Library/HashLib.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The function set SHA512 to digest list.
|
The function set SHA512 to digest list.
|
||||||
|
|
||||||
@param DigestList digest list
|
@param DigestList digest list
|
||||||
@param Sha512Digest SHA512 digest
|
@param Sha512Digest SHA512 digest
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
Tpm2SetSha512ToDigestList (
|
Tpm2SetSha512ToDigestList (
|
||||||
IN TPML_DIGEST_VALUES *DigestList,
|
IN TPML_DIGEST_VALUES *DigestList,
|
||||||
IN UINT8 *Sha512Digest
|
IN UINT8 *Sha512Digest
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
DigestList->count = 1;
|
DigestList->count = 1;
|
||||||
DigestList->digests[0].hashAlg = TPM_ALG_SHA512;
|
DigestList->digests[0].hashAlg = TPM_ALG_SHA512;
|
||||||
CopyMem (
|
CopyMem (
|
||||||
DigestList->digests[0].digest.sha512,
|
DigestList->digests[0].digest.sha512,
|
||||||
Sha512Digest,
|
Sha512Digest,
|
||||||
SHA512_DIGEST_SIZE
|
SHA512_DIGEST_SIZE
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Start hash sequence.
|
Start hash sequence.
|
||||||
|
|
||||||
@param HashHandle Hash handle.
|
@param HashHandle Hash handle.
|
||||||
|
|
||||||
@retval EFI_SUCCESS Hash sequence start and HandleHandle returned.
|
@retval EFI_SUCCESS Hash sequence start and HandleHandle returned.
|
||||||
@retval EFI_OUT_OF_RESOURCES No enough resource to start hash.
|
@retval EFI_OUT_OF_RESOURCES No enough resource to start hash.
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
Sha512HashInit (
|
Sha512HashInit (
|
||||||
OUT HASH_HANDLE *HashHandle
|
OUT HASH_HANDLE *HashHandle
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
VOID *Sha512Ctx;
|
VOID *Sha512Ctx;
|
||||||
UINTN CtxSize;
|
UINTN CtxSize;
|
||||||
|
|
||||||
CtxSize = Sha512GetContextSize ();
|
CtxSize = Sha512GetContextSize ();
|
||||||
Sha512Ctx = AllocatePool (CtxSize);
|
Sha512Ctx = AllocatePool (CtxSize);
|
||||||
ASSERT (Sha512Ctx != NULL);
|
ASSERT (Sha512Ctx != NULL);
|
||||||
|
|
||||||
Sha512Init (Sha512Ctx);
|
Sha512Init (Sha512Ctx);
|
||||||
|
|
||||||
*HashHandle = (HASH_HANDLE)Sha512Ctx;
|
*HashHandle = (HASH_HANDLE)Sha512Ctx;
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Update hash sequence data.
|
Update hash sequence data.
|
||||||
|
|
||||||
@param HashHandle Hash handle.
|
@param HashHandle Hash handle.
|
||||||
@param DataToHash Data to be hashed.
|
@param DataToHash Data to be hashed.
|
||||||
@param DataToHashLen Data size.
|
@param DataToHashLen Data size.
|
||||||
|
|
||||||
@retval EFI_SUCCESS Hash sequence updated.
|
@retval EFI_SUCCESS Hash sequence updated.
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
Sha512HashUpdate (
|
Sha512HashUpdate (
|
||||||
IN HASH_HANDLE HashHandle,
|
IN HASH_HANDLE HashHandle,
|
||||||
IN VOID *DataToHash,
|
IN VOID *DataToHash,
|
||||||
IN UINTN DataToHashLen
|
IN UINTN DataToHashLen
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
VOID *Sha512Ctx;
|
VOID *Sha512Ctx;
|
||||||
|
|
||||||
Sha512Ctx = (VOID *)HashHandle;
|
Sha512Ctx = (VOID *)HashHandle;
|
||||||
Sha512Update (Sha512Ctx, DataToHash, DataToHashLen);
|
Sha512Update (Sha512Ctx, DataToHash, DataToHashLen);
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Complete hash sequence complete.
|
Complete hash sequence complete.
|
||||||
|
|
||||||
@param HashHandle Hash handle.
|
@param HashHandle Hash handle.
|
||||||
@param DigestList Digest list.
|
@param DigestList Digest list.
|
||||||
|
|
||||||
@retval EFI_SUCCESS Hash sequence complete and DigestList is returned.
|
@retval EFI_SUCCESS Hash sequence complete and DigestList is returned.
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
Sha512HashFinal (
|
Sha512HashFinal (
|
||||||
IN HASH_HANDLE HashHandle,
|
IN HASH_HANDLE HashHandle,
|
||||||
OUT TPML_DIGEST_VALUES *DigestList
|
OUT TPML_DIGEST_VALUES *DigestList
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINT8 Digest[SHA512_DIGEST_SIZE];
|
UINT8 Digest[SHA512_DIGEST_SIZE];
|
||||||
VOID *Sha512Ctx;
|
VOID *Sha512Ctx;
|
||||||
|
|
||||||
Sha512Ctx = (VOID *)HashHandle;
|
Sha512Ctx = (VOID *)HashHandle;
|
||||||
Sha512Final (Sha512Ctx, Digest);
|
Sha512Final (Sha512Ctx, Digest);
|
||||||
|
|
||||||
FreePool (Sha512Ctx);
|
FreePool (Sha512Ctx);
|
||||||
|
|
||||||
Tpm2SetSha512ToDigestList (DigestList, Digest);
|
Tpm2SetSha512ToDigestList (DigestList, Digest);
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
HASH_INTERFACE mSha512InternalHashInstance = {
|
HASH_INTERFACE mSha512InternalHashInstance = {
|
||||||
HASH_ALGORITHM_SHA512_GUID,
|
HASH_ALGORITHM_SHA512_GUID,
|
||||||
Sha512HashInit,
|
Sha512HashInit,
|
||||||
Sha512HashUpdate,
|
Sha512HashUpdate,
|
||||||
Sha512HashFinal,
|
Sha512HashFinal,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The function register SHA512 instance.
|
The function register SHA512 instance.
|
||||||
|
|
||||||
@retval EFI_SUCCESS SHA512 instance is registered, or system dose not surpport registr SHA512 instance
|
@retval EFI_SUCCESS SHA512 instance is registered, or system dose not surpport registr SHA512 instance
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
HashInstanceLibSha512Constructor (
|
HashInstanceLibSha512Constructor (
|
||||||
VOID
|
VOID
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
Status = RegisterHashInterfaceLib (&mSha512InternalHashInstance);
|
Status = RegisterHashInterfaceLib (&mSha512InternalHashInstance);
|
||||||
if ((Status == EFI_SUCCESS) || (Status == EFI_UNSUPPORTED)) {
|
if ((Status == EFI_SUCCESS) || (Status == EFI_UNSUPPORTED)) {
|
||||||
//
|
//
|
||||||
// Unsupported means platform policy does not need this instance enabled.
|
// Unsupported means platform policy does not need this instance enabled.
|
||||||
//
|
//
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
@ -1,45 +1,45 @@
|
|||||||
## @file
|
## @file
|
||||||
# Provides BaseCrypto SHA512 hash service
|
# Provides BaseCrypto SHA512 hash service
|
||||||
#
|
#
|
||||||
# This library can be registered to BaseCrypto router, to serve as hash engine.
|
# This library can be registered to BaseCrypto router, to serve as hash engine.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
||||||
# This program and the accompanying materials
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
# which accompanies this distribution. The full text of the license may be found at
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
# http://opensource.org/licenses/bsd-license.php
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
#
|
#
|
||||||
##
|
##
|
||||||
|
|
||||||
[Defines]
|
[Defines]
|
||||||
INF_VERSION = 0x00010005
|
INF_VERSION = 0x00010005
|
||||||
BASE_NAME = HashInstanceLibSha512
|
BASE_NAME = HashInstanceLibSha512
|
||||||
MODULE_UNI_FILE = HashInstanceLibSha512.uni
|
MODULE_UNI_FILE = HashInstanceLibSha512.uni
|
||||||
FILE_GUID = 959C3685-AC3F-4F3E-AC5B-7E2A64BADD36
|
FILE_GUID = 959C3685-AC3F-4F3E-AC5B-7E2A64BADD36
|
||||||
MODULE_TYPE = BASE
|
MODULE_TYPE = BASE
|
||||||
VERSION_STRING = 1.0
|
VERSION_STRING = 1.0
|
||||||
LIBRARY_CLASS = NULL
|
LIBRARY_CLASS = NULL
|
||||||
CONSTRUCTOR = HashInstanceLibSha512Constructor
|
CONSTRUCTOR = HashInstanceLibSha512Constructor
|
||||||
|
|
||||||
#
|
#
|
||||||
# The following information is for reference only and not required by the build tools.
|
# The following information is for reference only and not required by the build tools.
|
||||||
#
|
#
|
||||||
# VALID_ARCHITECTURES = IA32 X64
|
# VALID_ARCHITECTURES = IA32 X64
|
||||||
#
|
#
|
||||||
|
|
||||||
[Sources]
|
[Sources]
|
||||||
HashInstanceLibSha512.c
|
HashInstanceLibSha512.c
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
SecurityPkg/SecurityPkg.dec
|
SecurityPkg/SecurityPkg.dec
|
||||||
CryptoPkg/CryptoPkg.dec
|
CryptoPkg/CryptoPkg.dec
|
||||||
|
|
||||||
[LibraryClasses]
|
[LibraryClasses]
|
||||||
BaseLib
|
BaseLib
|
||||||
BaseMemoryLib
|
BaseMemoryLib
|
||||||
DebugLib
|
DebugLib
|
||||||
MemoryAllocationLib
|
MemoryAllocationLib
|
||||||
BaseCryptLib
|
BaseCryptLib
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
// /** @file
|
// /** @file
|
||||||
// Provides BaseCrypto SHA512 hash service
|
// Provides BaseCrypto SHA512 hash service
|
||||||
//
|
//
|
||||||
// This library can be registered to BaseCrypto router, to serve as hash engine.
|
// This library can be registered to BaseCrypto router, to serve as hash engine.
|
||||||
//
|
//
|
||||||
// Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
// Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
||||||
//
|
//
|
||||||
// This program and the accompanying materials
|
// This program and the accompanying materials
|
||||||
// are licensed and made available under the terms and conditions of the BSD License
|
// are licensed and made available under the terms and conditions of the BSD License
|
||||||
// which accompanies this distribution. The full text of the license may be found at
|
// which accompanies this distribution. The full text of the license may be found at
|
||||||
// http://opensource.org/licenses/bsd-license.php
|
// http://opensource.org/licenses/bsd-license.php
|
||||||
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
//
|
//
|
||||||
// **/
|
// **/
|
||||||
|
|
||||||
|
|
||||||
#string STR_MODULE_ABSTRACT #language en-US "Provides BaseCrypto SHA512 hash service"
|
#string STR_MODULE_ABSTRACT #language en-US "Provides BaseCrypto SHA512 hash service"
|
||||||
|
|
||||||
#string STR_MODULE_DESCRIPTION #language en-US "This library can be registered to BaseCrypto router, to serve as hash engine."
|
#string STR_MODULE_DESCRIPTION #language en-US "This library can be registered to BaseCrypto router, to serve as hash engine."
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user