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
>>>>>>
>>>>>>

Reply via email to