UEFI 2.5 specifices TLS protocol. I know this isn't really an answer, but
you could just wait for it to be implemented in edk2. Not sure when that
will be, but hopefully soon.
If you need it now, you might consider assigned/defining the network
functions in openssl (in the BIO struct if I remember correctly?) to custom
wrappers around the appropriate edk2 network stack functions. No need for
StdLib, but will require a bit of coding to get working.
On Fri, May 22, 2015 at 10:27 PM, Saheb Biswas <sahebbis...@gmail.com>
wrote:
> Thank you Andrew,
>
> I used StdLib for it's implementation of the BSD sockets which can then be
> consumed by the OpenSSL library.
>
> So if not StdLib, what would provide me the raw socket in UEFI for SSL ?
>
>
> *Saheb *
> On Sat, May 23, 2015 at 1:40 AM, Andrew Fish <af...@apple.com> wrote:
>
>>
>> On May 22, 2015, at 6:29 AM, Saheb Biswas <sahebbis...@gmail.com> wrote:
>>
>> hello,
>>
>> I am trying to port a simple SSL client code into UEFI and am using the
>> OpenSsl in CryptoPkg for this.
>>
>> The OpenSslSupport.h header in CryptoPkg include folder defines most of
>> the stdlib types and this causes a conflict when I attempt to use the
>> StdLib headers in my code.
>>
>> Following is a sample of the error messages:
>> c:\edk2\CryptoPkg\Include\OpenSslSupport.h(28) : error C2373: 'FILE' :
>> redefinition; different type modifiers
>> c:\edk2\StdLib\Include\stdio.h(255) : see declaration of 'FILE'
>> c:\edk2\CryptoPkg\Include\OpenSslSupport.h(47) : warning C4005: 'ENOMEM'
>> : macro redefinition
>> c:\edk2\StdLib\Include\errno.h(64) : see previous definition of
>> 'ENOMEM'
>> c:\edk2\CryptoPkg\Include\OpenSslSupport.h(48) : warning C4005: 'EINVAL'
>> : macro redefinition
>> c:\edk2\StdLib\Include\errno.h(74) : see previous definition of
>> 'EINVAL'
>> c:\edk2\CryptoPkg\Include\OpenSslSupport.h(50) : warning C4005: 'INT_MAX'
>> : macro redefinition
>> c:\edk2\StdLib\Include\limits.h(70) : see previous definition of
>> 'INT_MAX'
>> c:\edk2\CryptoPkg\Include\OpenSslSupport.h(51) : warning C4005: 'INT_MIN'
>> : macro redefinition
>> c:\edk2\StdLib\Include\limits.h(67) : see previous definition of
>> 'INT_MIN'
>> c:\edk2\CryptoPkg\Include\OpenSslSupport.h(52) : warning C4005:
>> 'LONG_MAX' : macro redefinition
>> c:\edk2\StdLib\Include\limits.h(79) : see previous definition of
>> 'LONG_MAX'
>> c:\edk2\CryptoPkg\Include\OpenSslSupport.h(53) : warning C4005:
>> 'LONG_MIN' : macro redefinition
>> c:\edk2\StdLib\Include\limits.h(76) : see previous definition of
>> 'LONG_MIN'
>> c:\edk2\CryptoPkg\Include\OpenSslSupport.h(54) : warning C4005:
>> 'ULONG_MAX' : macro redefinition
>> c:\edk2\StdLib\Include\limits.h(82) : see previous definition of
>> ‘ULONG_MAX'
>>
>> c:\edk2\CryptoPkg\Include\OpenSslSupport.h(75) : warning C4005:
>> 'offsetof' : macro redefinition
>> c:\edk2\StdLib\Include\stddef.h(66) : see previous definition of
>> ‘offsetof'
>>
>>
>>
>> For issues like this in C you can use #undef
>>
>> #undef FILE
>> #include <OpenSslSupport.h>
>>
>>
>> c:\edk2\CryptoPkg\Include\OpenSslSupport.h(83) : error C2371: '__mode_t'
>> : redefinition; different basic types
>> c:\edk2\StdLib\Include\sys/ansi.h(54) : see declaration of
>> ‘__mode_t'
>>
>>
>> __uint32_t vs. UINT16
>>
>>
>> c:\edk2\CryptoPkg\Include\OpenSslSupport.h(84) : warning C4142: benign
>> redefinition of type
>> c:\edk2\CryptoPkg\Include\OpenSslSupport.h(85) : error C2371: 'clock_t' :
>> redefinition; different basic types
>> c:\edk2\StdLib\Include\sys/types.h(241) : see declaration of
>> ‘clock_t'
>>
>>
>> UINT64 vs. unsigned long
>>
>> Note: This is scary as long is different sizes on different edk2
>> compilers!!!!!!
>>
>> c:\edk2\CryptoPkg\Include\OpenSslSupport.h(88) : error C2371: 'ino_t' :
>> redefinition; different basic types
>> c:\edk2\StdLib\Include\sys/types.h(169) : see declaration of
>> 'ino_t'
>>
>>
>>
>> uint64_t vs. UINT32
>>
>> So this is such a bad hack I feel bad mentioning it, but …..
>>
>> In OpenSslsupport.h add #ifndef <#define in StdLib for the conflicting
>> define>
>>
>> #ifndef _SYS_TYPES_H_
>> typedef unsigned long clock_t;
>> #endif
>>
>>
>>
>> Any ideas ?
>>
>>
>> Don’t use StdLib :) would be your other option.
>>
>> Thanks,
>>
>> Andrew Fish
>>
>>
>> *Saheb*
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> One dashboard for servers and applications across Physical-Virtual-Cloud
>> Widest out-of-the-box monitoring support with 50+ applications
>> Performance metrics, stats and reports that give you Actionable Insights
>> Deep dive visibility with transaction tracing using APM Insight.
>> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>>
>>
>
>
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
>
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel