Refactor AccountID (RIPD-953):

All AccountID functionality is removed from RippleAddress and
replaced with free functions. The AccountID to string conversion
cache is factored out as an explicit type with an instance in
the Application object. New base58 conversion functions are used,
with no dependence on OpenSSL.

All types and free functions related to AccountID are consolidated
into one header file. Routines to operate on "tokens" are also
introduced and consolidated into a single header file.

A token one of the cryptographic primitives used in Ripple:

    Secret Seed
    Server Public Key
    Server Secret Key
    Account ID
    Account Public Key
    Account Private Key

    and these deprecated primitives:

    Account Family Seed
    Account Family Generator
This commit is contained in:
Vinnie Falco
2015-06-18 11:05:18 -07:00
parent 63d438c979
commit 2f485672fa
109 changed files with 1901 additions and 1545 deletions

View File

@@ -375,6 +375,8 @@
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\crypto\ripemd.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\crypto\secure_erase.h">
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\crypto\sha2.h">
</ClInclude>
<ClCompile Include="..\..\src\beast\beast\crypto\tests\base64.test.cpp">
@@ -1517,12 +1519,6 @@
</ClInclude>
<ClInclude Include="..\..\src\ripple\app\main\Tuning.h">
</ClInclude>
<ClCompile Include="..\..\src\ripple\app\misc\AccountState.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClInclude Include="..\..\src\ripple\app\misc\AccountState.h">
</ClInclude>
<ClInclude Include="..\..\src\ripple\app\misc\AmendmentTable.h">
</ClInclude>
<ClCompile Include="..\..\src\ripple\app\misc\AmendmentTableImpl.cpp">
@@ -1701,10 +1697,6 @@
</ClCompile>
<ClInclude Include="..\..\src\ripple\app\paths\RippleState.h">
</ClInclude>
<ClCompile Include="..\..\src\ripple\app\paths\tests\Path_test.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClInclude Include="..\..\src\ripple\app\paths\Tuning.h">
</ClInclude>
<ClInclude Include="..\..\src\ripple\app\paths\Types.h">
@@ -2631,6 +2623,8 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClInclude Include="..\..\src\ripple\protocol\AccountID.h">
</ClInclude>
<ClInclude Include="..\..\src\ripple\protocol\AnyPublicKey.h">
</ClInclude>
<ClInclude Include="..\..\src\ripple\protocol\AnySecretKey.h">
@@ -2645,6 +2639,10 @@
</ClInclude>
<ClInclude Include="..\..\src\ripple\protocol\HashPrefix.h">
</ClInclude>
<ClCompile Include="..\..\src\ripple\protocol\impl\AccountID.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\ripple\protocol\impl\AnyPublicKey.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
@@ -2775,6 +2773,10 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\ripple\protocol\impl\tokens.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\ripple\protocol\impl\TxFormats.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
@@ -2883,10 +2885,18 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\ripple\protocol\tests\types_test.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClInclude Include="..\..\src\ripple\protocol\tokens.h">
</ClInclude>
<ClInclude Include="..\..\src\ripple\protocol\TxFlags.h">
</ClInclude>
<ClInclude Include="..\..\src\ripple\protocol\TxFormats.h">
</ClInclude>
<ClInclude Include="..\..\src\ripple\protocol\types.h">
</ClInclude>
<ClInclude Include="..\..\src\ripple\protocol\UInt160.h">
</ClInclude>
<ClInclude Include="..\..\src\ripple\protocol\UintTypes.h">

View File

@@ -271,9 +271,6 @@
<Filter Include="ripple\app\paths\cursor">
<UniqueIdentifier>{9AD8D049-10A8-704C-D51A-FAD55B1F235F}</UniqueIdentifier>
</Filter>
<Filter Include="ripple\app\paths\tests">
<UniqueIdentifier>{1025719B-6A8F-D9FB-A6BA-02B93756DE09}</UniqueIdentifier>
</Filter>
<Filter Include="ripple\app\tests">
<UniqueIdentifier>{2E791662-6ED0-D1E1-03A4-0CB35473EC56}</UniqueIdentifier>
</Filter>
@@ -837,6 +834,9 @@
<ClInclude Include="..\..\src\beast\beast\crypto\ripemd.h">
<Filter>beast\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\crypto\secure_erase.h">
<Filter>beast\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\beast\beast\crypto\sha2.h">
<Filter>beast\crypto</Filter>
</ClInclude>
@@ -2253,12 +2253,6 @@
<ClInclude Include="..\..\src\ripple\app\main\Tuning.h">
<Filter>ripple\app\main</Filter>
</ClInclude>
<ClCompile Include="..\..\src\ripple\app\misc\AccountState.cpp">
<Filter>ripple\app\misc</Filter>
</ClCompile>
<ClInclude Include="..\..\src\ripple\app\misc\AccountState.h">
<Filter>ripple\app\misc</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ripple\app\misc\AmendmentTable.h">
<Filter>ripple\app\misc</Filter>
</ClInclude>
@@ -2430,9 +2424,6 @@
<ClInclude Include="..\..\src\ripple\app\paths\RippleState.h">
<Filter>ripple\app\paths</Filter>
</ClInclude>
<ClCompile Include="..\..\src\ripple\app\paths\tests\Path_test.cpp">
<Filter>ripple\app\paths\tests</Filter>
</ClCompile>
<ClInclude Include="..\..\src\ripple\app\paths\Tuning.h">
<Filter>ripple\app\paths</Filter>
</ClInclude>
@@ -3327,6 +3318,9 @@
<ClCompile Include="..\..\src\ripple\peerfinder\tests\PeerFinder_test.cpp">
<Filter>ripple\peerfinder\tests</Filter>
</ClCompile>
<ClInclude Include="..\..\src\ripple\protocol\AccountID.h">
<Filter>ripple\protocol</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ripple\protocol\AnyPublicKey.h">
<Filter>ripple\protocol</Filter>
</ClInclude>
@@ -3348,6 +3342,9 @@
<ClInclude Include="..\..\src\ripple\protocol\HashPrefix.h">
<Filter>ripple\protocol</Filter>
</ClInclude>
<ClCompile Include="..\..\src\ripple\protocol\impl\AccountID.cpp">
<Filter>ripple\protocol\impl</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ripple\protocol\impl\AnyPublicKey.cpp">
<Filter>ripple\protocol\impl</Filter>
</ClCompile>
@@ -3447,6 +3444,9 @@
<ClCompile Include="..\..\src\ripple\protocol\impl\TER.cpp">
<Filter>ripple\protocol\impl</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ripple\protocol\impl\tokens.cpp">
<Filter>ripple\protocol\impl</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ripple\protocol\impl\TxFormats.cpp">
<Filter>ripple\protocol\impl</Filter>
</ClCompile>
@@ -3579,12 +3579,21 @@
<ClCompile Include="..\..\src\ripple\protocol\tests\STTx.test.cpp">
<Filter>ripple\protocol\tests</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ripple\protocol\tests\types_test.cpp">
<Filter>ripple\protocol\tests</Filter>
</ClCompile>
<ClInclude Include="..\..\src\ripple\protocol\tokens.h">
<Filter>ripple\protocol</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ripple\protocol\TxFlags.h">
<Filter>ripple\protocol</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ripple\protocol\TxFormats.h">
<Filter>ripple\protocol</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ripple\protocol\types.h">
<Filter>ripple\protocol</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ripple\protocol\UInt160.h">
<Filter>ripple\protocol</Filter>
</ClInclude>