¿Cómo puedo hacer que Delphi XE2 hable con las API de Google Calendar a través de SSL?

Es tiempo deesta pregunta De nuevo, pero esta vez con Delphi XE2.

Estoy usando la versión 10.5.8.0 de Indy que se incluye con XE2, y he probado cuatro versiones diferentes de las DLL de SSL. He probado 1.0.x más reciente, y aproximadamente 3 versiones diferentes 0.9.8 (e, h, x, ....).

Ninguno de ellos funciona, cuando se comunica a https: // urls en calendar.google.com. El autor del componente Delphi Google Calendar en "Sync-components.com"envía sus propios tiempos de ejecución de DLL binarios openssl que no tienen información de versión, pero parece ser una versión muy pequeña y muy antigua de librerías SSL anteriores a 0.9.8. El autor del componente dice que solo se conocen sus DLL privadas sin versión. para trabajar. No puedo creerlo. Seguramente al menos una versión de las dlls de openSSL funciona lo suficientemente bien con Delphi XE2 para conectarse a Google Calendar.

Para lograr que su antigua DLL personalizada se cargue en Indy 10 en Delphi XE2, modifica el método IdSSLOpenHeaders.pas. Carga, como este, al final:

 function Load: Boolean;
 begin
   /// ... lots of stuff
   //Result := (FFailedFunctionLoadList.Count = 0); // original.
   Result := (FFailedFunctionLoadList.Count <= 18); // changed to.
 end;

Por supuesto, el componente que estoy evaluando no funciona en XE2, pero sospecho que es la ruptura de (a) esta instantánea particular de Indy 10 que se envía con XE2, o (b) el hecho de que el mundo de DLL DLL es un verdadero infierno de "roto para ti, pero funciona para mí" diferentes versiones.

¿Qué debo hacer para obtener una conexión SSL con Google Calendar, usando Indy (o cualquier otra biblioteca de componentes de Delphi con soporte SSL), en Delphi XE2?

Alternativamente, si alguien tiene una implementación de la API de Google Calendar que funcione con cualquier otra cosa que no sea Indy que pueda usar para las pruebas, apreciaría los enlaces y los punteros.

Respuestas a la pregunta(1)

Su respuesta a la pregunta