Re: PureBasic 5.40 LTS beta 1 is out !
Posted: Tue Sep 01, 2015 12:36 am
5.40's fasm.exe is from 2012, can that be updated? but i can understand not if it would break too many things! 

http://www.purebasic.com
https://www.purebasic.fr/english/
Code: Select all
If Not InitCGI() Or Not ReadCGI()
End
EndIf
WriteCGIHeader(#PB_CGI_HeaderContentType, "text/html", #PB_CGI_LastHeader) ; Write the headers to inform the browser of the content format
WriteCGIString("<html><title>PureBasic - variables</title><body>")
Procedure WriteCGIConstant(Constant$)
WriteCGIString(Constant$ + ": " + CGIVariable(Constant$)+"<br>")
EndProcedure
WriteCGIConstant(#PB_CGI_AuthType$)
WriteCGIConstant(#PB_CGI_ContentLength$)
WriteCGIConstant(#PB_CGI_HeaderContentType$)
WriteCGIConstant(#PB_CGI_DocumentRoot$)
WriteCGIConstant(#PB_CGI_GatewayInterface$)
WriteCGIConstant(#PB_CGI_PathInfo$)
WriteCGIConstant(#PB_CGI_PathTranslated$)
WriteCGIConstant(#PB_CGI_QueryString$)
WriteCGIConstant(#PB_CGI_RemoteAddr$)
WriteCGIConstant(#PB_CGI_RemoteHost$)
WriteCGIConstant(#PB_CGI_RemoteIdent$)
WriteCGIConstant(#PB_CGI_RemotePort$)
WriteCGIConstant(#PB_CGI_RemoteUser$)
WriteCGIConstant(#PB_CGI_RequestURI$)
WriteCGIConstant(#PB_CGI_RequestMethod$)
WriteCGIConstant(#PB_CGI_ScriptName$)
WriteCGIConstant(#PB_CGI_ScriptFilename$)
WriteCGIConstant(#PB_CGI_ServerAdmin$)
WriteCGIConstant(#PB_CGI_ServerName$)
WriteCGIConstant(#PB_CGI_ServerPort$)
WriteCGIConstant(#PB_CGI_ServerProtocol$)
WriteCGIConstant(#PB_CGI_ServerSignature$)
WriteCGIConstant(#PB_CGI_ServerSoftware$)
WriteCGIConstant(#PB_CGI_HttpAccept$)
WriteCGIConstant(#PB_CGI_HttpAcceptEncoding$)
WriteCGIConstant(#PB_CGI_HttpAcceptLanguage$)
WriteCGIConstant(#PB_CGI_HttpCookie$)
WriteCGIConstant(#PB_CGI_HttpForwarded$)
WriteCGIConstant(#PB_CGI_HttpHost$)
WriteCGIConstant(#PB_CGI_HttpPragma$)
WriteCGIConstant(#PB_CGI_HttpReferer$)
WriteCGIConstant(#PB_CGI_HttpUserAgent$)
WriteCGIString("</body></html>")
Code: Select all
[01:41:04] [COMPILER] Line 13: Constant not found: #PB_CGI_AuthType$.
[01:41:32] [COMPILER] Line 14: Constant not found: #PB_CGI_ContentLength$.
[01:41:36] [COMPILER] Line 15: Constant not found: #PB_CGI_HeaderContentType$.
[01:41:41] [COMPILER] Line 16: Constant not found: #PB_CGI_DocumentRoot$.
[01:41:46] [COMPILER] Line 17: Constant not found: #PB_CGI_GatewayInterface$.
[01:41:50] [COMPILER] Line 18: Constant not found: #PB_CGI_PathInfo$.
[01:41:54] [COMPILER] Line 19: Constant not found: #PB_CGI_PathTranslated$.
.....
Indeed. It seems like from 2012 till the latest version most of FASM changes have been bug fixes. It probably wouldn't hurt to update it before pushing out the final release of 5.40 LTS.Keya wrote:5.40's fasm.exe is from 2012, can that be updated? but i can understand not if it would break too many things!
We uses CURL for all plateforms, Windows uses native SChannel and OS X native DarwinSSL and both are statically linked. On Linux, we uses the CURL lib shipped with the OS, as it's not possible for us to ship the root certificates for SSL connexions (but it shouldn't be a problem as CURL is almost always installed on a Linux box).mback2k wrote:Thanks for the new release. Would you mind sharing some details about the HTTPS/TLS implementation? I guess it is very important to understand if PureBasic performs server certificate validation, e.g. using the system certificate store, etc. and which cipher suites are used. Does PureBasic use the Windows SChannel library for TLS (for SMTPS)? And does it use WinHTTP for HTTPS? The post above mentions curl, I guess that one is used on Linux/Mac OS X? Thanks in advance!
Thanks for the information. So the cURL defaults apply to the connections created using PureBasic? I am just curious, because I am the creator of the native SChannel implementation in cURL.Fred wrote:We uses CURL for all plateforms, Windows uses native SChannel and OS X native DarwinSSL and both are statically linked. On Linux, we uses the CURL lib shipped with the OS, as it's not possible for us to ship the root certificates for SSL connexions (but it shouldn't be a problem as CURL is almost always installed on a Linux box).
Code: Select all
UseCRC32Fingerprint()
Procedure.l CRC32Fingerprint(*Buffer, Size.i)
ProcedureReturn Val("$"+Fingerprint(*Buffer, Size, #PB_Cipher_CRC32))
EndProcedure
Define Long.l
Debug CRC32Fingerprint(@Long, 4)
my guess is its because CRC32 is the only 32bit hash; all the others are at least 128bit up to 512bit so in that way it makes sense to have the output as a string, so I can understand FingerPrint() only returning strings.STARGÅTE wrote:Why CRC32Fingerprint() is removed? I liked the way, to get a fast Long-Fingerprint.