do these not do what you need (or form the basis for it)?

julia> convert(Vector{Uint8}, utf8("hello world"))
11-element Array{Uint8,1}:
 0x68
 0x65
 0x6c
 0x6c
 0x6f
 0x20
 0x77
 0x6f
 0x72
 0x6c
 0x64

julia> bytestring(convert(Vector{Uint8}, utf8("hello world")))
"hello world"


On Tuesday, 11 March 2014 07:37:35 UTC-3, Robert Feldt wrote:
>
> Implementing simple RSA crypto in pure Julia (not for actual sec-sensitive 
> use) but for low-sec applications. But I have troubles with encoding 
> strings as integers and back. The PKCS#1 crypto standard says that strings 
> should be seen as 8-bit (octet) strings. I tried creating a Uint8[] with 
> the byte values and converting to ASCIIString but that fails when the 
> values are more than 7 bits. However, I cannot just convert to UTF8String 
> instead since those might not be valid either. 
>
> Ideas for how to do this cleanly? Current code below... Thanks!
>
> # Convert a non-negative integer i into an octet string. 
> function i2osp(x::Integer, len = nothing)
>   if typeof(len) <: Integer && (x >= 256^len)
>     throw("integer is too large")
>   end
>
>   if x < 0
>     throw("integer is negative")
>   end
>
>   bytes = Uint8[]
>   while x > 0
>     b = uint8(x & 0xff)
>     push!(bytes, b)
>     x = x >>> 8
>   end
>   str = convert(ASCIIString, reverse(bytes)) # Fails if any byte value > 
> 127
>
>   if typeof(len) <: Integer && (length(str) < len)
>     str = repeat("\0", len - str) * str
>   end
>
>   return str
> end
>
>

Reply via email to