HowTos
Tutoriels liés à la carte CPS
L’api CPS3 (même une SPI) proposée par DEVCOOP afin de proposer un niveau d’abstraction suffisant pour un programme java d’accéder à la carte CPS3.
Le document de référence est ASIP_CPS3_Données-métier_v1.0.2.doc
Le module cps-impl, fournit l’implémentation de la CPSFacade
qui intègre la Cryptolib CPS de l’ANS.
Exemple de code dans une application Spring Boot :
public class MonComposantCPS {
@Autowired
CPSFacade cps;
public void maMethode() {
assert cps.isAvailable();
final List<CardReaderInfo> availableReaders = cps.getAvailableReaders();
cps.selectReader(0L);
final CpsCardInfo cardInfo = cps.readInfo(); // Une demande d'authentification auprès de l'utilisateur est réalisée sur cet appel
assert cps.isLogged();
final PrivateKey signaturePrivateKey = cps.getSignaturePrivateKey();
}
}
La saisie du code Pin est possible à partir du PinProviderFrame
développé en Swing.
Mais, il est tout à fait possible de fournir son propre provider ou encore utiliser le NoPinProvider, et appelé explicitement la méthode setPin()
.
Le module cps-pdf, contient le code permettant de générer des signatures PDF https://helpx.adobe.com/fr/acrobat/using/signing-pdfs.html.
Il s’appuie sur la librairie apache PDF-BOX.
Le module cps-proxy, permet de fournit une facade REST à la CPSFacade
java.
L’accès au CPS-proxy est indépendant de la technologie utilisée par l’intégrateur. Exemple d’intégration possible :
!theme aws-orange
!define DEVBOX_COLOR #278ef5
!define DMP_COLOR #35D9C0
!define MSS_COLOR #DE5D80
!define INS_COLOR #07A2CF
!define CPS_COLOR #D34A3C
!define VITALE_COLOR #5FD67A
!define PSC_COLOR #ff7765
!define APCV_COLOR #c6e66d
!define ANNUAIRE_COLOR #7613e0
!define DATA_COLOR #ffa800
node "Poste Client (Windows/Mac/Linux)" {
[FrontEnd intégrateur] as frontend
package "DevBox-Santé" DEVBOX_COLOR {
[interface CPS-API] as cpsFacade CPS_COLOR
}
[Cryptolib CPS (ANS / ASIP)] as cryptolibCPS
}
[BackEnd intégrateur] as backend
frontend -down-> cpsFacade : REST "GET "/cps/cardInfo""
cpsFacade <-down-> cryptolibCPS : appel natif
frontend -right-> backend : REST
Exemple Swagger :
Exemple CURL :
curl -X GET "http://127.0.0.1:8484/cps/readersInfo" -H "accept: */*"
curl -X GET "http://127.0.0.1:8484/cps/cardInfo" -H "accept: */*"
curl -X POST "http://127.0.0.1:8484/cps/signPdf?location=Bordeaux&reason=Parceque" -H "accept: */*" -H "Content-Type: multipart/form-data" -F "multipart=@fichier.pdf;type=application/pdf"
Il est possible de configurer et de surcharger le path par défaut de la cryptolib de la manière suivante :
devbox-sante:
cps:
module.path: "C:\\Program Files\\DevBoxSante\\santesocial\\cps\\cps3_pkcs11_w64.dll"
Le cps-proxy comme tous les composants de la DevBox-Santé est une application web Spring Boot, toutes les possibilités de spring-security sont donc disponibles.
Exemple de configuration de base empêchant toutes les IPs externes :
devbox-sante:
security:
forceLocalAddress: true
“This product includes software developed by Stiftung SIC.” : https://jce.iaik.tugraz.at/products/core-crypto-toolkits/pkcs11-wrapper/#License