github.com/flyinox/gosm@v0.0.0-20171117061539-16768cb62077/src/crypto/rc4/rc4_asm.go (about)

     1  // Copyright 2013 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // +build amd64 amd64p32 arm,!nacl 386
     6  
     7  package rc4
     8  
     9  func xorKeyStream(dst, src *byte, n int, state *[256]uint32, i, j *uint8)
    10  
    11  // XORKeyStream sets dst to the result of XORing src with the key stream.
    12  // Dst and src may be the same slice but otherwise should not overlap.
    13  func (c *Cipher) XORKeyStream(dst, src []byte) {
    14  	if len(src) == 0 {
    15  		return
    16  	}
    17  	xorKeyStream(&dst[0], &src[0], len(src), &c.s, &c.i, &c.j)
    18  }