This adds a new INF for BaseCryptLib suitable for host based environments. It adds a host based unit test for BaseCryptLib that can also be built as a shell based Unit Test. In addition, this also adds a UnitTestHostCrtWrapper.c file, which provides some of the functionality not provided by the default host based unit test system that OpenSSL expects. This is used by UnitTestHostBaseCryptLib, a version of the BaseCryptLib meant specifically for host based unit testing. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Xiaoyu Lu <xiaoyux.lu@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Guomin Jiang <guomin.jiang@intel.com> Signed-off-by: Matthew Carlson <matthewfcarlson@gmail.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
		
			
				
	
	
		
			94 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  C Run-Time Libraries (CRT) Wrapper Implementation for OpenSSL-based
 | 
						|
  Cryptographic Library.
 | 
						|
 | 
						|
Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.<BR>
 | 
						|
Copyright (c) Microsoft Corporation
 | 
						|
SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#include <stdio.h>
 | 
						|
 | 
						|
#include <Base.h>
 | 
						|
#include <Library/DebugLib.h>
 | 
						|
 | 
						|
/* Convert character to lowercase */
 | 
						|
int tolower (int c)
 | 
						|
{
 | 
						|
  if (('A' <= (c)) && ((c) <= 'Z')) {
 | 
						|
    return (c - ('A' - 'a'));
 | 
						|
  }
 | 
						|
  return (c);
 | 
						|
}
 | 
						|
 | 
						|
/* Compare first n bytes of string s1 with string s2, ignoring case */
 | 
						|
int strncasecmp (const char *s1, const char *s2, size_t n)
 | 
						|
{
 | 
						|
  int Val;
 | 
						|
 | 
						|
  ASSERT(s1 != NULL);
 | 
						|
  ASSERT(s2 != NULL);
 | 
						|
 | 
						|
  if (n != 0) {
 | 
						|
    do {
 | 
						|
      Val = tolower(*s1) - tolower(*s2);
 | 
						|
      if (Val != 0) {
 | 
						|
        return Val;
 | 
						|
      }
 | 
						|
      ++s1;
 | 
						|
      ++s2;
 | 
						|
      if (*s1 == '\0') {
 | 
						|
        break;
 | 
						|
      }
 | 
						|
    } while (--n != 0);
 | 
						|
  }
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
/* Read formatted data from a string */
 | 
						|
int sscanf (const char *buffer, const char *format, ...)
 | 
						|
{
 | 
						|
  //
 | 
						|
  // Null sscanf() function implementation to satisfy the linker, since
 | 
						|
  // no direct functionality logic dependency in present UEFI cases.
 | 
						|
  //
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
//  -- Dummy OpenSSL Support Routines --
 | 
						|
//
 | 
						|
 | 
						|
int BIO_printf (void *bio, const char *format, ...)
 | 
						|
{
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
int BIO_snprintf(char *buf, size_t n, const char *format, ...)
 | 
						|
{
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
uid_t getuid (void)
 | 
						|
{
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
uid_t geteuid (void)
 | 
						|
{
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
gid_t getgid (void)
 | 
						|
{
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
gid_t getegid (void)
 | 
						|
{
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
int errno = 0;
 |