sorry, last line should be "share the ENCRYPTED data", otherwise what i wrote is awfully confusing.
On Tuesday, 11 March 2014 12:32:50 UTC-3, andrew cooke wrote: > > > well that's because it's an invalid character sequence. > > if it started as a valid utf8 string, you won't see that or unencoding. > > if it wasn't a utf8 string originally then you have an encoding issue. > > you implied earlier that you want to share the encoded data as a string. > you don't. it's either binary, or you convert to a hex string. not utf8. > > andrew > > > On Tuesday, 11 March 2014 12:22:48 UTC-3, Robert Feldt wrote: >> >> Yes, but the problem I had was rooted in: >> >> julia> convert(UTF8String, Uint8[0x41,0x42, 128]) >> ERROR: invalid UTF-8 sequence >> in convert at utf8.jl:155 >> >> /Robert >> >> Den tisdagen den 11:e mars 2014 kl. 16:21:00 UTC+1 skrev andrew cooke: >>> >>> >>> actually, it seems convert works both ways. >>> >>> julia> convert(UTF8String, [0x41,0x42]) >>> "AB" >>> >>> >>> >>> On Tuesday, 11 March 2014 12:10:53 UTC-3, andrew cooke wrote: >>>> >>>> >>>> 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 >>>>> >>>>>