Changeset 104570 in vbox for trunk/src/VBox/Main/src-server
- Timestamp:
- May 10, 2024 4:58:46 AM (8 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-server/VRDEServerImpl.cpp
r104541 r104570 38 38 #include <iprt/ldr.h> 39 39 #include <iprt/path.h> 40 #include <iprt/crypto/x509.h> 40 41 41 42 #include <VBox/err.h> … … 233 234 } 234 235 236 /** 237 * Auto-generates a self-signed certificate for the VM. 238 * 239 * @note Locks this object for writing. 240 */ 241 int VRDEServer::i_generateServerCertificate() 242 { 243 Utf8Str strServerCertificate = "server_cert.pem"; 244 Utf8Str strServerPrivateKey = "server_key_private.pem"; 245 mParent->i_calculateFullPath(strServerCertificate, strServerCertificate); 246 mParent->i_calculateFullPath(strServerPrivateKey, strServerPrivateKey); 247 const char *pszServerCertificate = strServerCertificate.c_str(); 248 const char *pszServerPrivateKey = strServerPrivateKey.c_str(); 249 250 int vrc = RTCrX509Certificate_Generate(pszServerCertificate, pszServerPrivateKey); 251 252 if (RT_SUCCESS(vrc)) 253 { 254 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 255 mData.backup(); 256 257 mData->mapProperties["Security/Method"] = Utf8Str("TLS"); 258 mData->mapProperties["Security/ServerCertificate"] = strServerCertificate; 259 mData->mapProperties["Security/ServerPrivateKey"] = strServerPrivateKey; 260 261 /* Done with the properties access. */ 262 alock.release(); 263 } 264 return vrc; 265 } 266 235 267 // IVRDEServer properties 236 268 ///////////////////////////////////////////////////////////////////////////// … … 262 294 /* leave the lock before informing callbacks */ 263 295 alock.release(); 296 297 /* 298 * If TLS is not explicitely disabled then auto-generate 299 * a self-signed certificate for this VM. 300 */ 301 if (mData->mapProperties["Security/Method"] != "RDP") 302 { 303 int vrc = i_generateServerCertificate(); 304 if (RT_FAILURE(vrc)) 305 { 306 LogRel(("Failed to auto generate server key and certificate: (%Rrc)\n", vrc)); 307 } 308 } 264 309 265 310 AutoWriteLock mlock(mParent COMMA_LOCKVAL_SRC_POS); // mParent is const, needs no locking
Note:
See TracChangeset
for help on using the changeset viewer.