Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@acpaas-ui/js-eid-utils
Advanced tools
EidMiddleware module wrapper for Dios EidMiddleware
In the example repository is an example on how to use eid-middleware.
https://bitbucket.antwerpen.be/projects/AUI/repos/examples/browse/21_eid_middleware
The package puts an eid.middleware
on the window object.
(function(eidMiddleware){
new eidMiddleware()
.initializeMiddleware()
.then(onStatusOk, onError);
})(window.eid.middleware)
This method initializes the necessary services to communicate with the middleware.
Returns:
A Promise
.
This callback receives a statusInfo
object which looks like this:
{
code: 0,
app: {
url: '..',
version: '1.2.1'
}
}
The code
property contains the statuscode returned from the middleware.
If app
property is on the object it means that your current version is out of date or not running.
This callback is triggered when the initialisation didn't recieve an OK
and receives a statusInfo
object which looks like this:
{
code: 0,
app: {
url: '..',
version: '1.2.1'
}
}
The code
property contains the statuscode returned from the middleware.
If app
property is on the object it means that your current version is out of date or not running.
All status code can be found on window.akit.services.eid.constants.statusCodes
.
They are the following:
Value | Constant | Meaning |
---|---|---|
0 | OK | Everything is running and ready to communicate with. |
1 | SERVICE_NOT_RUNNING | The middleware is not running. |
2 | INTERNAL_SERVICE_ERROR | An internal error occured while trying to connect to the middleware. |
3 | SERVICE_OUT_OF_DATE | The middleware is out of date, but running. |
4 | EXTENSION_NOT_INSTALLED | The chrome extension is not installed. |
5 | NATIVE_APP_NOT_INSTALLED | Java applet is not installed. |
6 | SANDBOXED | The middleware is running sandboxed. |
On the window.akit.services.eid
instance there is an onEvent
hook where you can listen voor all the events.
window.akit.services.eid.onEvent('*', onCorrectCardInserted);
Each event callback has his own signature, which you can find in the table below.
All event can be found on window.akit.services.eid.events
.
They are the following:
Value | Constant | Meaning | Callback signature |
---|---|---|---|
incorrectCardInserted | INCORRECT_CARD_INSERTED | The inserted card is incorrect. | fn(eventName) |
cardIncorrectInserted | CARD_INCORRECT_INSERTED | The card is incorrectly inserted. | fn(eventName) |
correctCardInserted | CORRECT_CARD_INSERTED | The card is correctly inserted. | fn(eventName, { eidCard , data}) |
correctCardRemoved | CORRECT_CARD_REMOVED | A correct card has been removed. | fn(eventName, { data }) |
incorrectInsertedCardRemoved | INCORRECT_INSERTED_CARD_REMOVED | A incorrectly inserted card has been removed. | fn(eventName) |
incorrectCardRemoved | INCORRECT_CARD_REMOVED | An incorrect card has been removed. | fn(eventName) |
noCardReaderFound | NO_CARD_READER_FOUND | The card reader was not found. | fn(eventName) |
cardReaderConnected | CARD_READER_CONNECTED | A card reader connected. | fn(eventName, { name }) |
cardReaderDisconnected | CARD_READER_DISCONNECTED | A cord reader disconnected. | fn(eventName, { name }) |
Next to all these events you can listen for *
which indicate that you want to be notified on all events.
On the CORRECT_CARD_INSERTED
event you get and eIDInstance as parameter. This instance is used to communicate with the eID card itself through the middleware.
This method allows the reading of all validation data required by eid_login backend.
eIdInstance
.readValidationData()
.then(function onSuccess(data){
}, function onError(error){
});
Returns:
A Promise
.
This promise has the following object if resolved. All the date is base64 encoded.
{
authenticationCertificate: ... ,
nonRepudiationCertificate: ... ,
rnCertificate: ... ,
rawAddressData: ... ,
addressDataSignature: ... ,
rawRnData: ... ,
rnDataSignature: ... ,
citizenCertificate: ...
}
If the promise is rejected it will contain the error where things went wrong.
This method creates a signed authenticated signature with the provided token.
eIdInstance
.signWithAuthenticationToken(token)
.then(function onSuccess(signedData){
}, function onError(error){
});
Returns:
A Promise
.
This promise has the signed data if resolved.
If the promise is rejected it will contain the error where things went wrong.
When the middleware requires the insertion of the pincode, it has a default dialog (in dutch).
You can use setupPinRequestflow
to overwrite that dialog.
eIdInstance
.setupPinRequestFlow(
requestCallback,
onCorrectPin,
onError,
onTriesLeftUpdated
);
requestCallback
Construct your dialog logic here. Use checkPin
to ask the middleware to check the pinCode.
...
requestCallback : function(checkPin, pinTriesLeft){
// show dialog
if(ok){
checkPin(enteredPinCode, null);
} else {
var error = {
message: 'user cancelled pin entry',
code: 2004
};
checkPin(null, error);
}
},
...
onCorrectPin
This callback will be called if the pincode was correct.
...
onCorrectPin: function(){
// close dialog
},
...
onError
This callback will be called if the pincode was incorrect.
...
onError: function(error){
// Display the error
},
...
onTriesLeftUpdated
This callback will be called when the amount of tries changed.
...
onTriesLeftUpdated: function(tries){
// update ui with the remaining tries
}
When working with the eIdInstance and errors return the following object structure will be returned:
{
message: '...',
code: 0000
}
All error codes are listed below.
Code | Meaning |
---|---|
2000 | No card in reader |
2001 | Communication error (with card). |
2002 | Parsing error: could not interpret date from the card. |
2003 | Timeout occurered (e.g. pin code entry). |
2004 | Operation cancelled by the user (e.g. with entry of the pin code). |
2005 | Operation aborded (e.g. removing card while entering pin code). |
2100 | Wrong pin, 2 tries left. |
2101 | Wrong pin, 1 try left. |
2102 | Wrong pin, card blocked. |
FAQs
[![js-eid-utils-status]][js-eid-utils-package]
The npm package @acpaas-ui/js-eid-utils receives a total of 7 weekly downloads. As such, @acpaas-ui/js-eid-utils popularity was classified as not popular.
We found that @acpaas-ui/js-eid-utils demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 8 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.