0.2.2 • Published 5 years ago

elo-api v0.2.2

Weekly downloads
1
License
ISC
Repository
github
Last release
5 years ago

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-api
import * 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 install

Fluxo 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 em encrypt-card-data
  • client.json: Dados para fazer request do serverKey. Altere somente o valor de client_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-clipboard

O 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/