Dart DocumentationbignumArcfour

Arcfour class

class Arcfour {
 var i;
 var j;
 Map S;
 Arcfour() {
   this.i = 0;
   this.j = 0;
   this.S = new Map();
 }

// Initialize arcfour context from key, an array of ints, each from [0..255]
 init(key) {
   var i, j, t;
   for(i = 0; i < 256; ++i) {
     this.S[i] = i;
   }
   j = 0;
   for(i = 0; i < 256; ++i) {
     j = (j + this.S[i] + key[i % key.length]) & 255;
     t = this.S[i];
     this.S[i] = this.S[j];
     this.S[j] = t;
   }
   this.i = 0;
   this.j = 0;
 }

 next() {
   var t;
   this.i = (this.i + 1) & 255;
   this.j = (this.j + this.S[this.i]) & 255;
   t = this.S[this.i];
   this.S[this.i] = this.S[this.j];
   this.S[this.j] = t;
   return this.S[(t + this.S[this.i]) & 255];
 }
}

Constructors

new Arcfour() #

Arcfour() {
 this.i = 0;
 this.j = 0;
 this.S = new Map();
}

Properties

var i #

i

var j #

j

Map S #

S

Methods

init(key) #

init(key) {
 var i, j, t;
 for(i = 0; i < 256; ++i) {
   this.S[i] = i;
 }
 j = 0;
 for(i = 0; i < 256; ++i) {
   j = (j + this.S[i] + key[i % key.length]) & 255;
   t = this.S[i];
   this.S[i] = this.S[j];
   this.S[j] = t;
 }
 this.i = 0;
 this.j = 0;
}

next() #

next() {
 var t;
 this.i = (this.i + 1) & 255;
 this.j = (this.j + this.S[this.i]) & 255;
 t = this.S[this.i];
 this.S[this.i] = this.S[this.j];
 this.S[this.j] = t;
 return this.S[(t + this.S[this.i]) & 255];
}