MCPcopy Create free account
hub / github.com/ValveSoftware/GameNetworkingSockets / GetBinaryDataAsPEM

Function GetBinaryDataAsPEM

src/common/keypair.cpp:253–278  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

251}
252
253static bool GetBinaryDataAsPEM( char *pchPEMData, uint32_t cubPEMData, uint32_t *pcubPEMData, const void *pBinaryData, uint32 cbBinaryData, const char *pchPrefix, const char *pchSuffix )
254{
255 uint32_t uRequiredBytes = V_strlen( pchPrefix ) + 2 + V_strlen( pchSuffix ) + 2 + CCrypto::Base64EncodeMaxOutput( cbBinaryData, "\r\n" );
256 if ( pcubPEMData )
257 *pcubPEMData = uRequiredBytes;
258
259 if ( pchPEMData )
260 {
261 if ( cubPEMData < uRequiredBytes )
262 return false;
263
264 V_strncpy( pchPEMData, pchPrefix, cubPEMData );
265 V_strncat( pchPEMData, "\r\n", cubPEMData );
266 uint32_t uRemainingBytes = cubPEMData - V_strlen( pchPEMData );
267
268 if ( !CCrypto::Base64Encode( pBinaryData, cbBinaryData, pchPEMData + V_strlen( pchPEMData ), &uRemainingBytes, "\r\n" ) )
269 return false;
270
271 V_strncat( pchPEMData, pchSuffix, cubPEMData );
272 V_strncat( pchPEMData, "\r\n", cubPEMData );
273 if ( pcubPEMData )
274 *pcubPEMData = V_strlen( pchPEMData ) + 1;
275 }
276
277 return true;
278}
279
280CCryptoKeyBase::~CCryptoKeyBase() {}
281

Callers 1

GetAsPEMMethod · 0.85

Calls 3

V_strlenFunction · 0.85
V_strncpyFunction · 0.85
V_strncatFunction · 0.85

Tested by

no test coverage detected