code: func pad(q, p []byte, k int) int {
  	n := len(p)/k*k + k
  	copy(q, p)
  	c := byte(n - len(p))
  	for i := len(p); i < n; i++ {
  		q[i] = c
  	}
  	return n
  }
docs: // Pads p to a multiple of k using PKCS #7 standard block padding.
  // See http://tools.ietf.org/html/rfc5652#section-6.3.