aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'localdev' of https://github.com/Hiperzone/open-keychain into ↵Daniel Ramos2015-04-245-44/+92
|\ | | | | | | | | | | | | development Conflicts: OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseNfcActivity.java
| * Merge branch 'feature/emailImprovements' into localdevDaniel Ramos2015-04-246-45/+97
| |\
| | * -Fixed a crash while recreating CreateKeyEmailFragmentDaniel Ramos2015-04-241-16/+16
| | | | | | | | | | | | | | | -Email data is properly restored while rotating the Activity. -Added necessary logic to guarantee that an email is actually valid before continuing, there are verifications for empty, duplicated and invalid formatted emails for both additional and main email.
| | * -Improved email sanity verifications when adding emails when creating a new KeyDaniel Ramos2015-04-146-30/+82
| |/ | | | | | | | | | | -fixed a few NFC crashes -fixed a few instances when showing the keyboard would crash the Activity -fixed a case where adding new emails would crash the app if the user went back and forth between the Add Email fragment and the Add Name fragment.
* | Merge branch 'development' of github.com:open-keychain/open-keychain into ↵Dominik Schürmann2015-04-228-30/+449
|\ \ | | | | | | | | | development
| * \ Merge pull request #1218 from manojkhannakm/developmentDominik Schürmann2015-04-225-29/+29
| |\ \ | | | | | | | | Fixed Snackbar behind layout
| | * | Fixed Snackbar behind layoutManoj Khanna2015-04-225-29/+29
| |/ / | | | | | | | | | Surrounded string with quotes
| * | Merge pull request #1214 from adithyaphilip/keyserver-verificationDominik Schürmann2015-04-224-1/+420
| |\ \ | | | | | | | | Verifying Newly Added Keyservers
| | * | keyserver verification on additionAdithya Abraham Philip2015-04-224-1/+420
| |/ /
* / / Update changelogDominik Schürmann2015-04-221-6/+8
|/ /
* | Merge pull request #1212 from adithyaphilip/qr-resultDominik Schürmann2015-04-221-1/+1
|\ \ | | | | | | Corrected possible null pointer with key import
| * | corrected possible null pointerAdithya Abraham Philip2015-04-221-1/+1
|/ /
* | Simplify ImportKeysProxyActivityDominik Schürmann2015-04-211-29/+12
| |
* | Merge branch 'development' of github.com:open-keychain/open-keychain into ↵Dominik Schürmann2015-04-2110-52/+212
|\ \ | | | | | | | | | development
| * \ Merge pull request #1209 from adithyaphilip/qr-resultDominik Schürmann2015-04-211-12/+11
| |\ \ | | | | | | | | Make Logs not Toasts - Fixes Issue #1198
| | * | added log to QR code scan/import failAdithya Abraham Philip2015-04-211-12/+11
| |/ /
| * | Merge pull request #1210 from josecastillo/developmentVincent2015-04-211-3/+34
| |\ \ | | | | | | | | Maintain client-side state for PIN verification operations
| | * | Fix for initialization failure when card returns FCI in data field.Joey Castillo2015-04-201-1/+1
| | | |
| | * | Track state of PIN verification on smart card; only verify when needed.Joey Castillo2015-04-201-2/+33
| |/ /
| * | Merge pull request #1207 from adithyaphilip/register-keyserver-urlsDominik Schürmann2015-04-208-37/+167
| |\ \ | | | | | | | | support for handling keyserver urls from browser, added documentation
| | * | support for handling keyserver urls from browser, added documentationAdithya Abraham Philip2015-04-208-37/+167
| |/ /
* / / Cleanup in HkpKeyserverDominik Schürmann2015-04-201-4/+3
|/ /
* | Format KeyListFragmentDominik Schürmann2015-04-181-10/+9
| |
* | Temporarily fix devices without nfcDominik Schürmann2015-04-181-0/+6
| |
* | Graphic stuffDominik Schürmann2015-04-173-213/+134
| |
* | Use https for zxing libDominik Schürmann2015-04-171-1/+1
| |
* | Use portrait mode for qr code scanningDominik Schürmann2015-04-151-10/+8
| |
* | More cleanupDominik Schürmann2015-04-159-324/+28
| |
* | Fix YubiKey naming, cleanupDominik Schürmann2015-04-1511-67/+59
| |
* | Clean up NfcOperationActivityDominik Schürmann2015-04-151-8/+6
| |
* | Reformat nfcVerifyPINDominik Schürmann2015-04-151-6/+6
| |
* | Merge pull request #1200 from josecastillo/developmentDominik Schürmann2015-04-151-19/+29
|\ \ | | | | | | Fix for NFC signing operations: move PIN verify inside sign/decrypt operation and set correct mode.
| * | Consolidate PIN verify operation in nfcVerifyPIN method.Joey Castillo2015-04-141-44/+28
| | |
| * | Move PIN verify inside sign/decrypt operation and set correct mode.Joey Castillo2015-04-141-19/+45
| | |
* | | Contribution infoDominik Schürmann2015-04-141-1/+1
| | |
* | | Contribution infoDominik Schürmann2015-04-141-1/+1
| | |
* | | Remove unused includes in settings.gradleDominik Schürmann2015-04-141-2/+0
|/ /
* / Update libsDominik Schürmann2015-04-141-6/+6
|/
* Pull from transifexDominik Schürmann2015-04-14110-1110/+1555
|
* Update html-textview, fix buildDominik Schürmann2015-04-141-2/+2
|
* Reformat comment in PassphraseCacheServiceDominik Schürmann2015-04-131-4/+5
|
* Buffer ascii armored encryption/signaturesDominik Schürmann2015-04-132-3/+4
|
* Merge pull request #1193 from adithyaphilip/auto-refresh-contactsDominik Schürmann2015-04-133-39/+119
|\ | | | | Immediate display of contact card, fixed contact picture display issue, hides card if no contact
| * hide linked system contact card if no contact presentAdithya Abraham Philip2015-04-083-12/+25
| |
| * linked system contact auto-refresh added, fixed contact image issueAdithya Abraham Philip2015-04-082-38/+105
| |
* | IMplement CryptoInputParcelCacheServiceDominik Schürmann2015-04-137-100/+325
| |
* | Clearer var namingDominik Schürmann2015-04-121-8/+8
| |
* | More simplifications to PassphraseCacheServiceDominik Schürmann2015-04-121-27/+21
| |
* | Simplify PassphraseCacheServiceDominik Schürmann2015-04-121-16/+12
| |
* | Remove html-textview reference from settings.gradleDominik Schürmann2015-04-121-1/+0
| |
pan>] X, Y; input CI, BI; output [Y_WIDTH-1:0] CO; wire _TECHMAP_FAIL_ = Y_WIDTH <= 2; wire [Y_WIDTH-1:0] A_buf, B_buf; \$pos #(.A_SIGNED(A_SIGNED), .A_WIDTH(A_WIDTH), .Y_WIDTH(Y_WIDTH)) A_conv (.A(A), .Y(A_buf)); \$pos #(.A_SIGNED(B_SIGNED), .A_WIDTH(B_WIDTH), .Y_WIDTH(Y_WIDTH)) B_conv (.A(B), .Y(B_buf)); wire [Y_WIDTH-1:0] AA = A_buf; wire [Y_WIDTH-1:0] BB = BI ? ~B_buf : B_buf; genvar i; `ifdef _CLB_CARRY localparam CARRY4_COUNT = (Y_WIDTH + 3) / 4; localparam MAX_WIDTH = CARRY4_COUNT * 4; localparam PAD_WIDTH = MAX_WIDTH - Y_WIDTH; wire [MAX_WIDTH-1:0] S = {{PAD_WIDTH{1'b0}}, AA ^ BB}; wire [MAX_WIDTH-1:0] DI = {{PAD_WIDTH{1'b0}}, AA & BB}; wire [MAX_WIDTH-1:0] C = CO; genvar i; generate for (i = 0; i < CARRY4_COUNT; i = i + 1) begin:slice // Partially occupied CARRY4 if ((i+1)*4 > Y_WIDTH) begin // First one if (i == 0) begin CARRY4 carry4_1st_part ( .CYINIT(CI), .CI (1'd0), .DI (DI[(Y_WIDTH - 1):i*4]), .S (S [(Y_WIDTH - 1):i*4]), .O (Y [(Y_WIDTH - 1):i*4]), .CO (CO[(Y_WIDTH - 1):i*4]) ); // Another one end else begin CARRY4 carry4_part ( .CYINIT(1'd0), .CI (C [i*4 - 1]), .DI (DI[(Y_WIDTH - 1):i*4]), .S (S [(Y_WIDTH - 1):i*4]), .O (Y [(Y_WIDTH - 1):i*4]), .CO (CO[(Y_WIDTH - 1):i*4]) ); end // Fully occupied CARRY4 end else begin // First one if (i == 0) begin CARRY4 carry4_1st_full ( .CYINIT(CI), .CI (1'd0), .DI (DI[((i+1)*4 - 1):i*4]), .S (S [((i+1)*4 - 1):i*4]), .O (Y [((i+1)*4 - 1):i*4]), .CO (CO[((i+1)*4 - 1):i*4]) ); // Another one end else begin CARRY4 carry4_full ( .CYINIT(1'd0), .CI (C [i*4 - 1]), .DI (DI[((i+1)*4 - 1):i*4]), .S (S [((i+1)*4 - 1):i*4]), .O (Y [((i+1)*4 - 1):i*4]), .CO (CO[((i+1)*4 - 1):i*4]) ); end end end endgenerate `elsif _EXPLICIT_CARRY wire [Y_WIDTH-1:0] S = AA ^ BB; wire [Y_WIDTH-1:0] DI = AA & BB; wire CINIT; // Carry chain. // // VPR requires that the carry chain never hit the fabric. The CO input // to this techmap is the carry outputs for synthesis, e.g. might hit the // fabric. // // So we maintain two wire sets, CO_CHAIN is the carry that is for VPR, // e.g. off fabric dedicated chain. CO is the carry outputs that are // available to the fabric. wire [Y_WIDTH-1:0] CO_CHAIN; wire [Y_WIDTH-1:0] C = {CO_CHAIN, CINIT}; // If carry chain is being initialized to a constant, techmap the constant // source. Otherwise techmap the fabric source. generate for (i = 0; i < 1; i = i + 1) begin:slice CARRY0 #(.CYINIT_FABRIC(1)) carry( .CI_INIT(CI), .DI(DI[0]), .S(S[0]), .CO_CHAIN(CO_CHAIN[0]), .CO_FABRIC(CO[0]), .O(Y[0]) ); end endgenerate generate for (i = 1; i < Y_WIDTH-1; i = i + 1) begin:slice if(i % 4 == 0) begin CARRY0 carry ( .CI(C[i]), .DI(DI[i]), .S(S[i]), .CO_CHAIN(CO_CHAIN[i]), .CO_FABRIC(CO[i]), .O(Y[i]) ); end else begin CARRY carry ( .CI(C[i]), .DI(DI[i]), .S(S[i]), .CO_CHAIN(CO_CHAIN[i]), .CO_FABRIC(CO[i]), .O(Y[i]) ); end end endgenerate generate for (i = Y_WIDTH-1; i < Y_WIDTH; i = i + 1) begin:slice if(i % 4 == 0) begin CARRY0 top_of_carry ( .CI(C[i]), .DI(DI[i]), .S(S[i]), .CO_CHAIN(CO_CHAIN[i]), .O(Y[i]) ); end else begin CARRY top_of_carry ( .CI(C[i]), .DI(DI[i]), .S(S[i]), .CO_CHAIN(CO_CHAIN[i]), .O(Y[i]) ); end // Turns out CO_FABRIC and O both use [ABCD]MUX, so provide // a non-congested path to output the top of the carry chain. // Registering the output of the CARRY block would solve this, but not // all designs do that. if((i+1) % 4 == 0) begin CARRY0 carry_output ( .CI(CO_CHAIN[i]), .DI(0), .S(0), .O(CO[i]) ); end else begin CARRY carry_output ( .CI(CO_CHAIN[i]), .DI(0), .S(0), .O(CO[i]) ); end end endgenerate `else wire [Y_WIDTH-1:0] S = AA ^ BB; wire [Y_WIDTH-1:0] DI = AA & BB; wire [Y_WIDTH-1:0] C = {CO, CI}; generate for (i = 0; i < Y_WIDTH; i = i + 1) begin:slice MUXCY muxcy ( .CI(C[i]), .DI(DI[i]), .S(S[i]), .O(CO[i]) ); XORCY xorcy ( .CI(C[i]), .LI(S[i]), .O(Y[i]) ); end endgenerate `endif assign X = S; endmodule