elo-api v0.2.2
ES6 Module
Esse pacote também se encontra disponível como um pacote node ES6. Basta só instalá-lo e importá-lo no projeto.
$ yarn add elo-api
$ npm i elo-apiimport * as EloApiUtils from 'elo-api';
const generatedBcryptPwd = EloApiUtils.generateBcryptPassword({
username: 'USERNAME',
password: 'PASSWORD'
});Usando localmente
Clone este projeto para um diretório do seu computador e instale as dependências
yarn installFluxo de cadastro e login
Em createUser você deve fornecer um bcryptPassword, que é a senha do usuário criptografada usando Bcrypt.
Param isso use o comando generate-bcrypt.
Em login você deve fornecer um challenge.
Para isso use também o comando generate-bcrypt mas com um parâmetro a mais: --challengeSalt ou -s. Que é o salt que retorna da API da elo createLoginSalt
yarn generate-bcrypt [-- [--username|-u USERNAME] [--password|-p PASSWORD] [--challengeSalt|-s SALT] [--noemit] [-h]]OBS: Para mais informações utilize a opção
-h
Fluxo de criação de cartão Elo
addPublicKeyToUser>createCard
addPublicKeyToProvisionedUser>createProvisionedCard
Em addPublicKeyToUser / addPublicKeyToProvisionedUser você deve fornecer uma chave gerada por você mesmo, que será utilizada posteriormente.
Para isso use o comando generate-jwk.
Em createCard / createProvisionedCard você deve fornecer um CardSensitiveInput.json assinado como JWS e depois encriptado como JWE.
Para isso use o comando encrypt-card-data.
Configuração
Existem 2 arquivos em config/
cardData.json: Dados do cartão a ser encriptado emencrypt-card-dataclient.json: Dados para fazer request do serverKey. Altere somente o valor declient_id
Eles devem ser configurados antes de prosseguir
CLI API
generate-jwk
yarn generate-jwk [-- [--kid some_string_kid] [--output|-o ~/some/dir/keypair.json] [--copy-to-clipboard] [--noemit] [-h]] Gera um par de chaves para ser usado em addPublicKeyToUser ou addPublicKeyToProvisionedUser.
O retorno será uma JWK gerada com o algorítmo EC (Elliptic Curve)
encrypt-card-data
yarn encrypt-card-data [-- [--keyPairPath|-kp ~/path/to/keypair.json] [--copy-to-clipboard] [--output|-o ~/some/dir/jwe.json] [--noemit] [-h]]Encripta os dados de cardData.json para ser usado no campo de sensitive em createCard ou createProvisionedCard.
OBS: Para mais informações utilize a opção
-h
Exemplo:
yarn generate-jwk -- -o ./publickey.json --noemit && yarn encrypt-card-data -- --noEmit --output ./jwe.txt --copy-to-clipboardO snippet acima vai criar um arquivo publickey.json com a public key gerada + um arquivo jwe.txt com a CardSensitiveData encriptada.
E ainda irá copiar essa chave para a área de transferência (Clipboard)
JavaScript
Se deseja ver esse exemplo em plain JavaScript (Sem tipagens do TypeScript), utilize yarn build.
Todos os arquivos serão compilados dentro de js/