sgcCustomIndy TLS 1.3. HTTP/2 via ALPN. Rien à désinstaller.

La bibliothèque Indy standard ne prend pas en charge ALPN, ni TLS 1.3 via OpenSSL 1.1.1 ou 3.x. sgcWebSockets Enterprise fournit une version personnalisée d'Indy qui le fait. sgcCustomIndy apporte cette même version à sgcWebSockets Core, installée à côté de l'Indy déjà présent dans ton IDE.

  • ALPN et HTTP/2
  • TLS 1.3
  • OpenSSL 1.1.1 et 3.x
  • OpenSSL statique
  • Delphi 7 à 13
  • C++ Builder
INDY STANDARD IdGlobal.pas IdTCPClient.pas IdSSLOpenSSL.pas déjà dans ton IDE, reste installé INDY PERSONNALISÉ sgcIdGlobal.pas sgcIdTCPClient.pas sgcIdSSLOpenSSL.pas ajouté par le pack, aucun nom en collision NÉGOCIATION TLS 1.3 AVEC ALPN Client Serveur ClientHello, ALPN [h2, http/1.1] ServerHello, ALPN h2 Flux HTTP/2 sur une seule connexion
  • 0Bibliothèques Indy à désinstaller
  • 0Installations d'Indy 10 sur Delphi 7
  • 3Capacités absentes de l'Indy standard
  • 1Unité pour OpenSSL statique
  • 2Cibles de liaison statique, Windows 32 et 64 bits
Ce qu'il débloque

Trois choses que la bibliothèque Indy standard ne sait pas faire.

Chaque point ci-dessous est une capacité de la couche Indy elle-même, pas d'un composant placé au-dessus. C'est pourquoi remplacer la bibliothèque Indy suffit à les activer.

CLIENTHELLO Offres ALPN h2 http/1.1 Choix du serveur h2 flux 1 flux 3 flux 5 Flux HTTP/2 Négocié dans la négociation TLS, sous tout composant HTTP.
ALPN

L'extension sur laquelle repose HTTP/2.

  • Le client annonce les protocoles qu'il sait parler et le serveur en choisit un, pendant la négociation TLS.
  • Cette négociation se déroule dans la couche TLS, hors de portée de tout composant HTTP.
  • La bibliothèque Indy standard ne la prend pas en charge. La bibliothèque Indy personnalisée rend ALPN disponible, et avec lui HTTP/2.
INDY STANDARD TLS 1.3 limité à l'ancienne API OpenSSL INDY PERSONNALISÉ TLS 1.3 OpenSSL 1.1.1 OpenSSL 3.x Clients et serveurs atteignent les points de terminaison qui exigent TLS 1.3.
TLS 1.3, OpenSSL 1.1.1 et 3.x

Les branches modernes d'OpenSSL, enfin accessibles.

  • TLS 1.3 requiert OpenSSL 1.1.1 ou OpenSSL 3.0.0, et la bibliothèque Indy standard ne prend pas en charge ces branches.
  • La bibliothèque Indy personnalisée le fait, donc un client ou un serveur construit dessus négocie TLS 1.3 avec les points de terminaison qui l'exigent.
  • Plus limité à ce qu'offre l'ancienne API OpenSSL.
TROIS FICHIERS À DÉPLOYER app.exe libssl libcrypto UN SEUL FICHIER À DÉPLOYER app.exe OpenSSL lié uses sgcIdSSLOpenSSL_Static; Windows 32 et 64 bits, Delphi XE2 ou plus récent.
OpenSSL statique

OpenSSL dans l'exécutable.

  • OpenSSL est lié directement à ton application au lieu d'être chargé à l'exécution depuis les DLL libcrypto et libssl.
  • Une application TLS se déploie en un seul fichier, pour les composants client comme serveur.
  • Il ne prend effet que lorsque la bibliothèque Indy personnalisée est utilisée, sous Windows 32 et 64 bits avec Delphi XE2 ou plus récent.
Coexistence

Il s'installe à côté de l'Indy que tu as déjà.

Remplacer la bibliothèque Indy dans un IDE est la partie que personne ne veut faire, ce pack ne te le demande donc pas. Les fichiers Indy personnalisés portent un préfixe sgc, IdGlobal devient sgcIdGlobal, et les deux versions coexistent sans problème.

Rien à désinstaller

L'Indy que ton IDE possède déjà reste installé et enregistré. Il n'y a aucune étape où tu retires un package, le restaures plus tard ou gardes deux profils d'IDE.

Projets existants intacts

Tout ce que tu compiles déjà avec la bibliothèque Indy standard continue de compiler avec elle, avec exactement les mêmes unités. La version personnalisée s'ajoute, elle ne remplace rien.

Un seul define de compilation

L'utilisation de la bibliothèque Indy personnalisée est contrôlée par SGC_CUSTOM_INDY in sgcVer.inc. Désactiver à nouveau la version personnalisée tient en une seule ligne.

Code source complet, comme toujours

Les unités Indy renommées sont livrées en source avec la licence, elles se compilent donc avec les réglages de ton projet et se parcourent dans ton débogueur comme le reste de la bibliothèque.

Pas d'installation d'Indy 10 sur Delphi 7

Delphi 7 est livré avec un Indy plus ancien. Avec la bibliothèque Indy personnalisée incluse, il n'y a pas d'Indy 10 à trouver, à installer dans l'IDE ni à garder aligné avec les composants.

La version qu'utilise Enterprise

La bibliothèque Indy personnalisée n'est pas nouvelle. C'est sur elle que repose sgcWebSockets Enterprise, et ce pack en est la voie d'accès pour sgcWebSockets Core.

Le code

Une unité, un fichier à déployer.

Il n'y a rien à configurer. Ajoute sgcIdSSLOpenSSL_Static à la clause uses, par exemple dans le fichier .dpr principal, et l'application utilise l'OpenSSL lié à l'exécutable dès sa prochaine exécution.

Project1.dpr

uses
  sgcIdSSLOpenSSL_Static;

// That is the whole configuration. No compiler
// directive to enable, no OpenSSL API version to
// choose. Remove the unit again and the application
// goes back to loading the OpenSSL DLLs.

sgcVer.inc, dans le dossier source

{$DEFINE SGC_CUSTOM_INDY}

// One define controls the custom Indy library.
// Static OpenSSL linking has no effect without it,
// and turning the custom build off again is a
// one line change.

Sur une version ou une plateforme où la liaison statique n'est pas disponible, rien ne casse. L'application continue de charger les DLL OpenSSL comme avant, le même code source se compile donc partout. Où s'applique la liaison statique

Plateformes

Là où un fichier objet de ce format peut être lié.

  • Windows 32 bits
  • Windows 64 bits

Compilateur

Les versions plus anciennes signalent un format de fichier objet incorrect, la liaison statique commence donc à Delphi XE2.

  • Delphi XE2 et plus récent

Prérequis

La liaison statique n'a aucun effet sans la bibliothèque Indy personnalisée.

  • SGC_CUSTOM_INDY défini
Fait partie de sgcWebSockets

Une extension, pas une commande séparée.

sgcCustomIndy se rattache à une licence sgcWebSockets Core . Il est proposé comme première extension recommandée dans une commande Core, tu l'ajoutes donc en un clic en commandant sgcAI, sgcMQ ou sgcSocial, et il arrive sur la même licence.

Core avec sgcCustomIndy

La même version personnalisée qu'utilise Enterprise, ajoutée lors d'une commande Core. Code source complet et 1 an de mises à jour.

€149 / développeur

Inclus avec sgcAuth et sgcHTTP

La prise en charge de WebAuthn dans sgcAuth et les clients HTTP/2 et gRPC de sgcHTTP l'exigent, donc commander l'un ou l'autre pack inclut toujours sgcCustomIndy. Le prix affiché du pack le couvre déjà.

Déjà dans Enterprise et All-Access

La bibliothèque Indy personnalisée fait partie de sgcWebSockets Enterprise et d'eSeGeCe All-Access, activée par défaut. Si tu possèdes l'un des deux, il n'y a rien à ajouter. Standard et Professional utilisent la bibliothèque Indy standard.

Ce n'est pas la même chose que sgcIndy, le package Indy complet que tu installes à la place de l'Indy de ton IDE. Quelle édition choisir

Voir les tarifs

Mets la couche Indy à jour.

ALPN et HTTP/2, TLS 1.3 via OpenSSL 1.1.1 et 3.x, et OpenSSL dans l'exécutable sous Windows. Le tout à côté de l'Indy que tu as déjà. L'essai de sgcWebSockets contient toutes les fonctionnalités d'Enterprise, Indy personnalisé compris.

Les derniers articles du blog

Voir tous les articles →

Tu vois la vue sgcCustomIndy d'eSeGeCe.

Montre-moi un autre angle →
Garantie satisfait ou remboursé de 30 joursPas satisfait ? Demandez un remboursement intégral dans les 30 jours suivant l'achat. Voir la politique de remboursement