1 /* Microsoft Reference Implementation for TPM 2.0
2 *
3 * The copyright in this software is being made available under the BSD License,
4 * included below. This software may be subject to other third party and
5 * contributor rights, including patent rights, and no such rights are granted
6 * under this license.
7 *
8 * Copyright (c) Microsoft Corporation
9 *
10 * All rights reserved.
11 *
12 * BSD License
13 *
14 * Redistribution and use in source and binary forms, with or without modification,
15 * are permitted provided that the following conditions are met:
16 *
17 * Redistributions of source code must retain the above copyright notice, this list
18 * of conditions and the following disclaimer.
19 *
20 * Redistributions in binary form must reproduce the above copyright notice, this
21 * list of conditions and the following disclaimer in the documentation and/or
22 * other materials provided with the distribution.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS""
25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
28 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
31 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 */
35
36 #include <Implementation.h>
37
38 /**
39 * Implementation of tolower() commonly found in ctype.h
40 * Returns an ASCII character, changing to lowercase if the character is
41 * in the range 'A'-'Z'.
42 */
43
tolower(int c)44 int tolower (int c)
45 {
46 if(c >= 'A' && c <= 'Z')
47 {
48 c -= ('A' - 'a');
49 }
50 return c;
51 }
52
toupper(int c)53 int toupper (int c)
54 {
55 if(c >= 'a' && c <= 'z')
56 {
57 c += ('A' - 'a');
58 }
59 return c;
60 }
61
strncasecmp(const char * str1,const char * str2,size_t n)62 int strncasecmp(const char *str1, const char *str2, size_t n)
63 {
64 size_t i = 0;
65 for(i = 0; i < n && str1[i] && str2[i]; i++)
66 {
67 char delta = tolower(str1[i]) - tolower(str2[i]);
68 if (delta != 0)
69 {
70 return delta;
71 }
72 }
73 return 0;
74 }
75
76 #ifdef CUSTOM_RAND_GENERATE_BLOCK
77 #include <tee_internal_api.h>
wolfRand(unsigned char * output,unsigned int sz)78 int wolfRand(unsigned char* output, unsigned int sz)
79 {
80 TEE_GenerateRandom((void *)output, (uint32_t)sz);
81
82 return 0;
83 }
84 #endif