{ : rooto:"YARD::CodeObjects::RootObject:@childrenIC:&YARD::CodeObjects::CodeObjectList[o:$YARD::CodeObjects::ModuleObject;IC;[o:#YARD::CodeObjects::ClassObject;IC;[ o:$YARD::CodeObjects::MethodObject:@module_functionF: @scope: instance:@visibility: public: @pathI"H::Generator#initialize:EF:@parameters[[I"static_key;T0: @files[[I" lib/h.rb;Ti:@current_file_has_commentsT: @name:initialize:@source_type: ruby: @tags[:@docstrings{:@docstringIC:YARD::Docstring"Initialize a H instance. ;T:@ref_tags[;[o:YARD::Tags::Tag :@tag_nameI" param;F: @textI"a random data;T;I"static_key;T: @types[I" String;T: @object@ o; ; I" return;F;!I" instance;T;0;"[I"H::Generator;T;#@ : @allI"iInitialize a H instance. @param static_key [String] a random data @return [H::Generator] instance ;T:@unresolved_reference0;#@ :@hash_flagF:@line_rangeo: Range: exclF: begini :endi:@namespace@ :@signatureI"def initialize(static_key);T:@explicitT: @sourceI">def initialize(static_key) @static_key = static_key end;T: @dynamicTo; ; F; ;;;;I"H::Generator#input;F;[[I"m;T0[I"l;T0;[[@i;T;: input;;;[;{;IC;"!Return a hash of +l+ length. ;T;[;[ o; ; I" param;F;!I"a message;T;I"m;T;"[I" String;T;#@(o; ; I" param;F;!I"&the length of the returned string;T;I"l;T;"[I" Fixnum;T;#@(o; ; I" return;F;!I"salted cryptographic hash.;T;0;"[I" String;T;#@(o; ; I"api;F;!I" public;T;0;"0;#@(;$I"§Return a hash of +l+ length. @param m [String] a message @param l [Fixnum] the length of the returned string @return [String] salted cryptographic hash. @api public;T;%0;#@(;&F;'o;(;)F;*i;+i;,@ ;-I"def input(m, l);T;.T;/I"Wdef input(m, l) m += @static_key d = cryptographic_hash(m) truncate d, l end;T;0To; ; F; ;;:protected;I"$H::Generator#cryptographic_hash;F;[[I"m;T0;[[@i-;T;:cryptographic_hash;;;[;{;IC;"#Build a hash from +m+ message. ;T;[;[o; ; I" param;F;!I"a message;T;I"m;T;"[I" String;T;#@No; ; I" return;F;!I"cryptographic hash.;T;0;"[I" String;T;#@No; ; I"api;F;!I" private;T;0;"0;#@N;$I"tBuild a hash from +m+ message. @param m [String] a message @return [String] cryptographic hash. @api private;T;%0;#@N;&F;'o;(;)F;*i&;+i,;,@ ;-I"def cryptographic_hash(m);T;.T;/I"Tdef cryptographic_hash(m) ::Digest::SHA256.base64digest(m).tr('+/', '-_') end;T;0To; ; F; ;;;2;I"H::Generator#truncate;F;[[I"str;T0[I"lng;T0;[[@i9;T;: truncate;;;[;{;IC;"0Truncate the given string from +lng+ param. ;T;[;[ o; ; I" param;F;!I"a string to truncate;T;I"str;T;"[I" String;T;#@lo; ; I" param;F;!I"'the length of the truncated string;T;I"lng;T;"[I" Fixnum;T;#@lo; ; I" return;F;!I"truncated string.;T;0;"[I" String;T;#@lo; ; I"api;F;!I" private;T;0;"0;#@l;$I"¾Truncate the given string from +lng+ param. @param str [String] a string to truncate @param lng [Fixnum] the length of the truncated string @return [String] truncated string. @api private;T;%0;#@l;&F;'o;(;)F;*i1;+i8;,@ ;-I"def truncate(str, lng);T;.T;/I"-def truncate(str, lng) str[0, lng] end;T;0T: @owner@ :@class_mixinsIC;[;5@ :@instance_mixinsIC;[;5@ :@attributesIC:SymbolHash{: classIC;9{:@symbolize_valueT;IC;9{;;T;;T: @aliases{: @groups[;[[@i ;T;:Generator;;;;;[;{;IC;",Class that generates cryptographic hash ;T;[;[;$I",Class that generates cryptographic hash;T;%0;#@ ;&F;'o;(;)F;*i ;+i ;,@;I"H::Generator;F:@superclasso:YARD::CodeObjects::Proxy : @imethod0:@origname0:@orignamespace0;: Object;,@: @obj0: @type;:;0T;5@;6IC;[;5@;7IC;[;5@;8IC;9{;:IC;9{;;T;IC;9{;;T;;T;<{;=[;[[@i ;T;:H;;;;;[;{;IC;"6Namespace and main entry point for the H library. ;T;[;[;$I"6Namespace and main entry point for the H library.;T;%0;#@;&F;'o;(;)F;*i;+i;,@;I"H;F;5@;6IC;[;5@;7IC;[;5@;8IC;9{;:IC;9{;;T;IC;9{;;T;;T;<{;=[;[;F;;;;;;;[;{;IC;" ;T;#@: @summary0;&F;[;[;$I";T;%0;,0;I";T;G@:H::Generator@ :H::Generator#initialize@ :H::Generator#input@(:$H::Generator#cryptographic_hash@N:H::Generator#truncate@l