How to use react-native-sodium - 10 common examples

To help you get started, we’ve selected a few react-native-sodium examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github lyubo / react-native-sodium / Example / Example.js View on Github external
// Jefe
      0x4a,0x65,0x66,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]))

    const c = Base64.fromByteArray(new Uint8Array([
      // what do ya want for nothing?
      0x77,0x68,0x61,0x74,0x20,0x64,0x6f,0x20,0x79,0x61,0x20,0x77,0x61,0x6e,
      0x74,0x20,0x66,0x6f,0x72,0x20,0x6e,0x6f,0x74,0x68,0x69,0x6e,0x67,0x3f]))

    const a = Base64.fromByteArray(new Uint8Array([
      0x16,0x4b,0x7a,0x7b,0xfc,0xf8,0x19,0xe2,0xe3,0x95,0xfb,0xe7,0x3b,0x56,0xe0,0xa3,
      0x87,0xbd,0x64,0x22,0x2e,0x83,0x1f,0xd6,0x10,0x27,0x0c,0xd7,0xea,0x25,0x05,0x54]))

    this.setState({crypto_auth:null,crypto_auth_verify:null})

    Sodium.crypto_auth(c,k).then((aa) => {
      this.setState({crypto_auth:(a === aa)})
      Sodium.crypto_auth_verify(a,c,k)
        .then((r) => this.setState({crypto_auth_verify:(r == 0)}))
        .catch((error) => {
          this.setState({crypto_auth_verify:false})
          this._handleError(error)
        })
    }).catch((error) => {
      this.setState({crypto_auth_verify:false})
      this._handleError(error)
    })
  }
github lyubo / react-native-sodium / Example / Example.js View on Github external
_testSodium() {
    Sodium.sodium_version_string()
      .then((version) => this.setState({sodium_version_string: version}))
      .catch((error) => this._handleError(error))

    // Random data generation
    this._testRandom1()
    this._testRandom2()
    this._testRandom3()

    // Secret key cryptography - authenticated encryption
    this._testSecretBox1()

    // Secret key cryptography - authentication
    this._testAuth1()

    // Public-key cryptography - authenticated encryption
    this._testBox1()
github lyubo / react-native-sodium / Example / Example.js View on Github external
0xbe, 0x07, 0x5f, 0xc5, 0x3c, 0x81, 0xf2, 0xd5, 0xcf, 0x14, 0x13, 0x16,
      0xeb, 0xeb, 0x0c, 0x7b, 0x52, 0x28, 0xc5, 0x2a, 0x4c, 0x62, 0xcb, 0xd4,
      0x4b, 0x66, 0x84, 0x9b, 0x64, 0x24, 0x4f, 0xfc, 0xe5, 0xec, 0xba, 0xaf,
      0x33, 0xbd, 0x75, 0x1a, 0x1a, 0xc7, 0x28, 0xd4, 0x5e, 0x6c, 0x61, 0x29,
      0x6c, 0xdc, 0x3c, 0x01, 0x23, 0x35, 0x61, 0xf4, 0x1d, 0xb6, 0x6c, 0xce,
      0x31, 0x4a, 0xdb, 0x31, 0x0e, 0x3b, 0xe8, 0x25, 0x0c, 0x46, 0xf0, 0x6d,
      0xce, 0xea, 0x3a, 0x7f, 0xa1, 0x34, 0x80, 0x57, 0xe2, 0xf6, 0x55, 0x6a,
      0xd6, 0xb1, 0x31, 0x8a, 0x02, 0x4a, 0x83, 0x8f, 0x21, 0xaf, 0x1f, 0xde,
      0x04, 0x89, 0x77, 0xeb, 0x48, 0xf5, 0x9f, 0xfd, 0x49, 0x24, 0xca, 0x1c,
      0x60, 0x90, 0x2e, 0x52, 0xf0, 0xa0, 0x89, 0xbc, 0x76, 0x89, 0x70, 0x40,
      0xe0, 0x82, 0xf9, 0x37, 0x76, 0x38, 0x48, 0x64, 0x5e, 0x07, 0x05]))

    const handleError = (e) => {this.setState({crypto_secretbox1:false});console.log(e)}
    this.setState({crypto_secretbox1:null})

    Sodium.crypto_secretbox_easy(m, n, k)
     .then((c) => Sodium.crypto_secretbox_open_easy(c,n,k),handleError)
     .then((mm) => this.setState({crypto_secretbox1:(m === mm)}),handleError)
  }
github lyubo / react-native-sodium / Example / Example.js View on Github external
_testRandom2() {
    this.setState({randombytes_buf:null})
    let freq = [];
    for (i = 0; i < 256; ++i) freq[i] = 0;
    Sodium.randombytes_buf(20*256).then((value) => {
      let a = Base64.toByteArray(value)
      for (i = 0; i < a.length; ++i) ++freq[a[i]]
      var fail = false
      for (i = 0; i < 256 && !fail; ++i) if (!freq[i]) fail = true
      this.setState({randombytes_buf:!fail})
    })
  }
github lyubo / react-native-sodium / Example / Example.js View on Github external
Promise.all([Sodium.crypto_box_keypair(),Sodium.crypto_box_keypair()]).then(([alice,bob]) => {
      let p = []
      for (mlen = 0; mlen <= mlen_max; mlen++) {
        p.push(
          Promise.all([
            Sodium.randombytes_buf(Sodium.crypto_box_NONCEBYTES),
            Sodium.randombytes_buf(mlen)
          ]).then(([n,m]) =>
             Sodium.crypto_box_easy(m,n,bob.pk,alice.sk)
              .then((c) => Sodium.crypto_box_open_easy(c,n,alice.pk,bob.sk))
              .then((mm) => mm === m))
        )
      }
      Promise.all(p).then((pr) => {
        let fail = false
        for (i = 0; i < pr.length && !fail; ++i) if (!pr[i]) fail = true
        this.setState({crypto_box1:!fail})
      })
    })
  }
github lyubo / react-native-sodium / Example / Example.js View on Github external
Promise.all([Sodium.crypto_box_keypair(),Sodium.crypto_box_keypair()]).then(([alice,bob]) => {
      let p = []
      for (mlen = 0; mlen <= mlen_max; mlen++) {
        p.push(
          Promise.all([
            Sodium.randombytes_buf(Sodium.crypto_box_NONCEBYTES),
            Sodium.randombytes_buf(mlen)
          ]).then(([n,m]) =>
             Sodium.crypto_box_easy(m,n,bob.pk,alice.sk)
              .then((c) => Sodium.crypto_box_open_easy(c,n,alice.pk,bob.sk))
              .then((mm) => mm === m))
        )
      }
      Promise.all(p).then((pr) => {
        let fail = false
        for (i = 0; i < pr.length && !fail; ++i) if (!pr[i]) fail = true
        this.setState({crypto_box1:!fail})
      })
    })
  }
github lyubo / react-native-sodium / Example / Example.js View on Github external
0xf0,0xa0,0x89,0xbc,0x76,0x89,0x70,0x40,0xe0,0x82,0xf9,0x37,0x76,0x38,0x48,0x64,
      0x5e,0x07,0x05]))

    const c =  Base64.fromByteArray(new Uint8Array([
      0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9,
      0x8e,0x99,0x3b,0x9f,0x48,0x68,0x12,0x73,0xc2,0x96,0x50,0xba,0x32,0xfc,0x76,0xce,
      0x48,0x33,0x2e,0xa7,0x16,0x4d,0x96,0xa4,0x47,0x6f,0xb8,0xc5,0x31,0xa1,0x18,0x6a,
      0xc0,0xdf,0xc1,0x7c,0x98,0xdc,0xe8,0x7b,0x4d,0xa7,0xf0,0x11,0xec,0x48,0xc9,0x72,
      0x71,0xd2,0xc2,0x0f,0x9b,0x92,0x8f,0xe2,0x27,0x0d,0x6f,0xb8,0x63,0xd5,0x17,0x38,
      0xb4,0x8e,0xee,0xe3,0x14,0xa7,0xcc,0x8a,0xb9,0x32,0x16,0x45,0x48,0xe5,0x26,0xae,
      0x90,0x22,0x43,0x68,0x51,0x7a,0xcf,0xea,0xbd,0x6b,0xb3,0x73,0x2b,0xc0,0xe9,0xda,
      0x99,0x83,0x2b,0x61,0xca,0x01,0xb6,0xde,0x56,0x24,0x4a,0x9e,0x88,0xd5,0xf9,0xb3,
      0x79,0x73,0xf6,0x22,0xa4,0x3d,0x14,0xa6,0x59,0x9b,0x1f,0x65,0x4c,0xb4,0x5a,0x74,
      0xe3,0x55,0xa5]))

      Sodium.crypto_box_easy(m,nonce,bobpk,alicesk).then((cc) => {
        Sodium.crypto_box_open_easy(cc,nonce,alicepk,bobsk).then((mm) => {
          this.setState({crypto_box2:(c === cc && m === mm)})
        })
      })
  };
github lyubo / react-native-sodium / Example / Example.js View on Github external
]).then(([n,m]) =>
             Sodium.crypto_box_easy(m,n,bob.pk,alice.sk)
              .then((c) => Sodium.crypto_box_open_easy(c,n,alice.pk,bob.sk))
              .then((mm) => mm === m))
        )
github lyubo / react-native-sodium / Example / Example.js View on Github external
_testBox1() {
    this.setState({crypto_box1:null})
    const mlen_max = 1000

    Promise.all([Sodium.crypto_box_keypair(),Sodium.crypto_box_keypair()]).then(([alice,bob]) => {
      let p = []
      for (mlen = 0; mlen <= mlen_max; mlen++) {
        p.push(
          Promise.all([
            Sodium.randombytes_buf(Sodium.crypto_box_NONCEBYTES),
            Sodium.randombytes_buf(mlen)
          ]).then(([n,m]) =>
             Sodium.crypto_box_easy(m,n,bob.pk,alice.sk)
              .then((c) => Sodium.crypto_box_open_easy(c,n,alice.pk,bob.sk))
              .then((mm) => mm === m))
        )
      }
      Promise.all(p).then((pr) => {
        let fail = false
        for (i = 0; i < pr.length && !fail; ++i) if (!pr[i]) fail = true
        this.setState({crypto_box1:!fail})
github lyubo / react-native-sodium / Example / Example.js View on Github external
_testRandom3() {
    this.setState({randombytes_random:null})
    let freq = [];
    let p = []
    for (i = 0; i < 256; ++i) freq[i] = 0;
    for (i = 0; i < 5*256; ++i) p.push(Sodium.randombytes_random().then((v) => {
      ++freq[v & 0xff]
      ++freq[(v >>> 8) & 0xff]
      ++freq[(v >>> 16) & 0xff]
      ++freq[(v >>> 24) & 0xff]
    }))
    Promise.all(p).then(() => {
      var fail = false
      for (i = 0; i < 256 && !fail; ++i) if (!freq[i]) fail = true
      this.setState({randombytes_random:!fail})
    })
  }