Javascript-API
OBS: Dagens version av BankID använder inte längre Javascript-API:et, utan kör istället BankID-Cava
Officiell dokumentation
För de bitar av Javascript-API:et som rör s.k. förlitande part finns den officiella dokumentation tillgänglig för allmänheten (troligen släpptes den i november 2010, i samband med "BankID-dagarna". I alla fall länkas den från en PDF därifrån). Detta gäller signering och hämtning av versionsnummer, men inte t.ex. hämtning av nya e-leg.
http://www.bankid.com/rp/info/
Informationen nedanför baseras på reverse engineering eftersom dokumentationen inte fanns tillgänglig när FriBID-projektet startades. Det verkar inte vara några större skillnader mot den officiella dokumentationen, men det återstår att kolla igenom alla detaljer.
Introduktion
Javascript-API:et bygger på att man gör funktionsanrop på <object>-element med BankID- eller FriBID-pluginen.
Elementen görs normalt osynliga eftersom all kommunikation med användaren sker från separata fönster.
Här är en lista över alla objekt-typer som finns, vad de gör och om de stöds av FriBID.
| Namn | MIME-typ | Beskrivning | Stöds av FriBID |
|---|---|---|---|
| Authentication | application/x-personal-authentication | Används för att skapa XML-signaturer för inloggning | Ja |
| Regutil | application/x-personal-regutil | Används för att hämta ut nya e-leg | Ja, sedan v. 0.3.0 |
| Signer2 | application/x-personal-signer2 | Används för att skapa XML-signaturer för underskrifter. | Ja |
| Version | application/x-personal-version | Används för att få en sträng med versionsnummer, "bäst före"-datum, och märke på ev. kortläsare | Ja |
| Webadmin | application/x-personal-webadmin | Verkar användas för att synkronisera "bäst före" datumet på klienten | Finns, men gör inget alls. Gör att test.bankid.com fungerar. Finns i version 0.3.0 |
| Logout | application/x-personal-logout | Verkar inte användas för BankID, men stöds av den officiella programvaran | |
| Signer | application/x-personal-signer | Finns, men gör inget alls. Behöver finnas (men inte fungera) för att kunna logga in på vissa sidor. |
HTML-koden för ett object-element kan t.ex. se ut så här:
<object id="signerPlugin" type="application/x-personal-signer2" width="0" height="0"></object>
Sedan december 2010 / januari 2011 stödjer den officiella klienten bland annat signering av filer (t.ex. PDF) och har även uppdaterats med ett nytt värde: "UHI" (vilket troligen står för Unique Host Identifier). Detta används i både versionssträngen (kanske inte helt bra ur integritetssynpunkt...) och i signaturer (som nu även innehåller en "ticket" från uppdateringsservern). Detta stöds inte av FriBID än.
Version-objekt
Se den gamla dokumentationen (detta ska flyttas över till Wiki:n)
Authentication- och Signer2-objekt
Se den gamla dokumentationen (detta ska flyttas över till Wiki:n)
Regutil-objekt
Se filen tests/test-req.html för ett exempel på hur detta objekt används.
Webadmin-objekt
Används på test.bankid.com.
GetLastError
- Parametrar
- Inga.
- Returvärde
- (Heltal) Senaste felkoden.
PerformAction
- Parametrar
- namn (Sträng) Vilken åtgärd som ska utföras
- Returvärde
- (Heltal) Felkod.
- Beskrivning
- Används för att utföra någon av följande åtgärder (stora/små bokstäver i namnen har ingen påverkan). Felkoden returneras och kan även hämtas med GetLastError. Om en felaktig åtgärd anges blir felkoden InvalidAction.
Namn Beskrivning RenewPollDates Skjuter fram "bäst före"-datumet med 30 dygn. Kan endast utföras från bankid.com. Annars blir felkoden DomainNotAllowed
Felkoder
Namnen är specifika för FriBID. Dessa finns definierade i filen common/biderror.h i källkoden.
| Namn (i FriBID) | Kod | Beskrivning |
|---|---|---|
| OK | 0 | |
| InternalError | 1 | Specifik för FriBID. Används när ingen annan felkod passar in. |
| UserCancel | 8002 | |
| InvalidParameter | 8004 | |
| InvalidAction | 8008 | |
| DomainNotAllowed | 8011 | |
| InvalidPIN | 8013 | |
| InvalidValue | 8014 | |
| NotSSL | 8015 | |
| MissingParameter | 8016 | |
| ValueTooLong | 8018 | |
| HostnameIsIP | 8019 | |
| BlockedPIN | 8102 |