def newKey()

in riff-raff/app/controllers/api.scala [51:67]


  def newKey(length: Int = 32): String = {
    val rawData = new Array[Byte](length)
    secureRandom.nextBytes(rawData)
    rawData.map { byteData =>
      val char = byteData & 63
      char match {
        case lower if lower < 26                => ('a' + lower).toChar
        case upper if upper >= 26 && upper < 52 => ('A' + (upper - 26)).toChar
        case numeral if numeral >= 52 && numeral < 62 =>
          ('0' + (numeral - 52)).toChar
        case hyphen if hyphen == 62         => '-'
        case underscore if underscore == 63 => '_'
        case default =>
          throw new IllegalStateException("byte value out of expected range")
      }
    }.mkString
  }