Newly Paranoid Maintainers

    eid-lib

    1.1.0 • Public • Published

    Eid library

    This library is created to get a simpel way to interact with the belgian eid middelware for nodejs.

    Installation

    npm i --save eid-lib

    Basic usage

        // beidpkcs11.dll is the name of the module aka the library you need to interact with
        const CardReader = require("eid-lib");
        const cardReader = new CardReader("beidpkcs11.dll");
        try {
            /**
             * your code
             */
        } catch (e) {
            console.error(e);
        } finally {
            // needs to be call before ending program!!
            cardReader.Finalize();
        }

    Getting data

        const CardReader = require("eid-lib");
        const cardReader = new CardReader("beidpkcs11.dll");
        try {
            if(cardReader.HasCard()) {
                const firstname = cardReader.GetFirstName();
            } else {
                console.log("No card detected")
            }
        } catch (e) {
            console.error(e);
        } finally {
            // needs to be call before ending program!!
            cardReader.Finalize();
        }

    Getting files

    Every on the card is stored in files.

        const CardReader = require("eid-lib");
        const cardReader = new CardReader("beidpkcs11.dll");
        try {
            const photoBuffer = cardReader.GetPhotoFile();
            //photoBuffer will contain a Buffer of a png image of the image on the card
            //you can write it to a file photo.png for example
        } catch (e) {
            console.error(e);
        } finally {
            // needs to be call before ending program!!
            cardReader.Finalize();
        }

    Getting public certificate

        const CardReader = require("eid-lib");
        const cardReader = new CardReader("beidpkcs11.dll");
        try {
            const authPubKey = cardReader.GetCertificateAuthenticationFile();
            //this is the public key of the authentication key it will return a der formated file
            const pemCert = cardReader._derToPem(authPubKey);
            //PemCert will contain a string that is the pem format of the der format. 
        } catch (e) {
            console.error(e);
        } finally {
            // needs to be call before ending program!!
            cardReader.Finalize();
        }

    Sign and Verify data

    You can sign data with your cards private key and then verifing it with the public key.

        const Assert = require('assert').strict;
        const CardReader = require("eid-lib");
        const cardReader = new CardReader("beidpkcs11.dll");
        try {
            if(cardReader.HasCard()) {
                // Sign
                const testdata = Buffer.from(["0", "1", "2", "3", "4", "5", "6", "7", "8" ]);
                // after calling this the middelware will ask you your pin code
                let signeddata = cardReader.SignWithCard(testdata, "Authentication");
    
                Assert.notStrictEqual(signeddata, null);
                // Verification
                Assert.strictEqual(cardReader.Verify(testdata, signeddata, cardReader.GetCertificateAuthenticationFile()), true);
    
                // Sign and Verify a file on the card
                const idFile = cardReader.GetIdFile();
                const idSignatureFile = cardReader.GetIdSignatureFile();
                const certificateRRN = cardReader.GetCertificateRNFile();
                Assert.strictEqual(cardReader.Verify(idFile, idSignatureFile, certificateRRN), true);
            } else {
                console.log("No card detected")
            }
        } catch (e) {
            console.error(e);
        } finally {
            cardReader.Finalize();
        }

    Encrypted and Decrypted data

    You can encrypted data with your cards and then decrypte it.

        const CardReader = require("eid-lib");
        const cardReader = new CardReader("beidpkcs11.dll");
        try {
            const testdata = Buffer.from(["0", "1", "2", "3", "4", "5", "6", "7", "8" ]);
            if(cardReader.HasCard()) {
                // after calling this the middelware will ask you your pin code
                const data = cardReader.EncrypteData(testdata);
                console.log(data);
                console.log();
                //output: ☺☻♥♦♣♠
                console.log(cardReader.DecrypteData(data).toString());
            } else {
                console.log("No card detected");
            }
        } catch (e) {
            console.error(e);
        } finally {
            cardReader.Finalize();
        }

    Install

    npm i eid-lib

    DownloadsWeekly Downloads

    2

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    35.2 kB

    Total Files

    5

    Last publish

    Collaborators

    • kolllor3