nubank.ts
Version:
Nubank api module for node.js
50 lines (49 loc) • 1.6 kB
TypeScript
import { AxiosInstance } from 'axios';
import { asn1, pki } from 'node-forge';
import Discovery from './discovery';
interface IPayload {
login: string;
password: string;
public_key: string;
public_key_crypto: string;
model: string;
device_id: string;
code?: string;
'encrypted-code'?: string;
}
export default class CertificateGenerator {
login: string;
password: string;
device_id: string;
encrypted_code: string;
partialEmail: string;
key1: pki.rsa.KeyPair;
key2: pki.rsa.KeyPair;
discovery: Discovery;
url: string;
client: AxiosInstance;
codeSentAt: Date;
expiresAt: Date;
static fromState(discovery: Discovery, password: string): CertificateGenerator;
constructor(discovery: Discovery, login: string, password: string, device_id: string, encrypted_code?: string);
saveState(): void;
static encryptString(str: string, key: string): string;
static decryptString(encrypted: string, key: string): string;
requestCode(): Promise<{
email: string;
expiresAt: Date;
codeSentAt: Date;
}>;
exchangeCerts(code: string): Promise<{
cert1: asn1.Asn1;
cert2: asn1.Asn1;
}>;
getPayload(): IPayload;
parseCert(content: pki.PEM): pki.Certificate;
genCert(key: pki.rsa.KeyPair, cert: pki.Certificate): asn1.Asn1;
generateKey(): pki.rsa.KeyPair;
serializePublicKey(key: pki.rsa.KeyPair): string;
serializePrivateKey(key: pki.rsa.KeyPair): string;
loadSerializedKey(pubKey: string, privKey: string): pki.rsa.KeyPair;
}
export {};