no problem. really don't forget the padding. http://rdist.root.org/2009/10/06/why-rsa-encryption-padding-is-critical/
On Tuesday, 11 March 2014 12:37:34 UTC-3, Robert Feldt wrote: > > Yes, I see where I went wrong now. I will base64 encode the uint8 array, > pass that around and then reverse on the other side. > > Sorry for the noise, > > Robert > > Den tisdagen den 11:e mars 2014 kl. 16:32:50 UTC+1 skrev andrew cooke: >> >> >> 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 >>>>>> >>>>>>