29 Commits

Author SHA1 Message Date
Brian Smith
d4b6d3b614 Remove try! from STYLE.md. 2018-11-03 13:02:33 -10:00
Dylan MacKenzie
408089da4d Replace the bssl::map_result function with a new bssl::Result type.
This commit introduces a `#[repr(transparent)]` newtype to represent
the return type of foreign functions which return 1 on success and 0 on
failure. This type is `#[must_use]`, so these return codes must be
checked by the caller.

It also adds `#[must_use]` to foreign functions which use a different
convention to return an error.

I agree to license my contributions to each file under the terms given
at the top of each file I changed.
2018-10-22 11:54:36 -10:00
Brian Smith
e533b55882 Take BoringSSL 1ab133a: Fix some style guide samples. 2018-04-29 19:49:28 -10:00
Brian Smith
d0d195e0d3 Take BoringSSL 00019f2: Add text about build logic to the style guide. 2018-04-29 08:17:45 -10:00
Brian Smith
0a198e8983 Work around broken Nightly rustc. 2017-12-24 09:39:52 -10:00
David Benjamin
1ab133a9da Fix some style guide samples.
Change-Id: I2a4c4b121da381687115a5959640ec6393a91e67
Reviewed-on: https://boringssl-review.googlesource.com/19844
Reviewed-by: Steven Valdez <svaldez@google.com>
Commit-Queue: Steven Valdez <svaldez@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2017-08-31 14:24:45 +00:00
David Benjamin
3536809644 Update style guide for C++.
Change-Id: Ib8c681e221837407d7ae2578699b8a3f3227c1b7
Reviewed-on: https://boringssl-review.googlesource.com/19785
Commit-Queue: Steven Valdez <svaldez@google.com>
Reviewed-by: Steven Valdez <svaldez@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2017-08-30 14:34:49 +00:00
David Benjamin
00019f2193 Add text about build logic to the style guide.
This would be unfamiliar to anyone coming from Chromium.

Change-Id: If9fbdbbadfd874c25dc6ff447ab4af36de0dcd22
Reviewed-on: https://boringssl-review.googlesource.com/17544
Reviewed-by: Adam Langley <agl@google.com>
2017-07-06 01:38:28 +00:00
Brian Smith
ff71d521ff Use "GFp/" instead of "openssl/" for #includes.
Avoid any potential conflicts with OpenSSL header files by using a
different namespace.
2017-04-19 14:56:44 -10:00
David Benjamin
17cf2cb1d2 Work around language and compiler bug in memcpy, etc.
Most C standard library functions are undefined if passed NULL, even
when the corresponding length is zero. This gives them (and, in turn,
all functions which call them) surprising behavior on empty arrays.
Some compilers will miscompile code due to this rule. See also
https://www.imperialviolet.org/2016/06/26/nonnull.html

Add OPENSSL_memcpy, etc., wrappers which avoid this problem.

BUG=23

Change-Id: I95f42b23e92945af0e681264fffaf578e7f8465e
Reviewed-on: https://boringssl-review.googlesource.com/12928
Commit-Queue: David Benjamin <davidben@google.com>
Reviewed-by: Adam Langley <agl@google.com>
2016-12-21 20:34:47 +00:00
David Benjamin
1db42fb3ca Clarify CBS/CBB with respect to high tag number form.
We may need to implement high tag number form someday. CBS_get_asn1 has
an unsigned output to allow for this, but CBB_add_asn1 takes a uint8_t
(I think this might be my fault). Fix that which also fixes a
-Wconversion warning.

Simply leaving room in tag representation will still cause troubles
because the class and constructed bits overlap with bits for tag numbers
above 31. Probably the cleanest option would be to shift them to the top
3 bits of a u32 and thus not quite match the DER representation. Then
CBS_get_asn1 and CBB_add_asn1 will internally munge that into the DER
representation and consumers may continue to write things like:

   tag_number | CBS_ASN1_CONTEXT_SPECIFIC

I haven't done that here, but in preparation for that, document that
consumers need to use the values and should refrain from assuming the
correspond to DER.

Change-Id: Ibc76e51f0bc3b843e48e89adddfe2eaba4843d12
Reviewed-on: https://boringssl-review.googlesource.com/10502
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: Adam Langley <agl@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-08-26 17:48:48 +00:00
David Benjamin
0ee319322c Breaking news: 1998 has come and gone.
Last month's canary for loop did not die in the coal mine of decrepit
toolchains. Make a note of this in STYLE.md so we know to start breeding
more of them. We can indeed declare index variables like it's 1999.

I haven't bothered to convert all of our for loops because that will be
tedious, but we can do it as we touch the code. Or if someone feels
really really bored.

BUG=47

Change-Id: Ib76c0767c1b509e825eac66f8c2e3ee2134e2493
Reviewed-on: https://boringssl-review.googlesource.com/8740
Reviewed-by: Adam Langley <agl@google.com>
2016-07-11 23:51:47 +00:00
Brian Smith
0f1cf513a7 Take BoringSSL 1a88df1: Update style guide note on files which match OpenSSL. 2016-06-22 15:39:53 -10:00
David Benjamin
1a88df13e5 Update style guide note on files which match OpenSSL.
They match the new style not the old EAY style now. They're also not
likely to be reformatted. It's just the legacy ASN.1 stuff now and we're
intentionally not doing much with those. (The old text was written back
before the SSL stack had been reformatted.)

Change-Id: I4852761b013e8c2688ebc7eaf4970afbdc69e858
Reviewed-on: https://boringssl-review.googlesource.com/8129
Reviewed-by: Steven Valdez <svaldez@google.com>
Reviewed-by: David Benjamin <davidben@google.com>
2016-06-02 21:37:21 +00:00
Corey Farwell
e3760735a8 Remove unnecessary trailing space in style guide.
I agree to license my contributions to each file under the
same terms given at the top of each file I changed.
2016-02-27 21:42:38 -10:00
Corey Farwell
2547f87d84 Fix typo in method name in style guide.
I agree to license my contributions to each file under the
same terms given at the top of each file I changed.
2016-02-27 21:42:38 -10:00
Brian Smith
0346b62886 Note that code in include/ follows the BoringSSL style. 2016-02-25 18:25:05 -10:00
Brian Smith
1cf6a64e68 Add guidelines for submodules to STYLE.md. 2016-02-25 18:23:00 -10:00
Brian Smith
da41b3b27e Add advice about imports and name qualification to STYLE.md. 2016-02-25 18:20:59 -10:00
Brian Smith
3ba9481cc2 Improve style guide regarding how to use Result<_, ()>. 2016-02-25 18:20:05 -10:00
Brian Smith
02e7716cda Fix some typos in STYLE.md. 2016-02-22 11:18:51 -10:00
Brian Smith
981b355617 Expand note about arrays and slices. 2016-02-22 10:20:01 -10:00
Brian Smith
a30533becf Remove unnecessary periods in STYLE.md. 2016-02-22 10:18:43 -10:00
Brian Smith
d6eb22d2b9 Add notes about error checking and arithmetic to STYLE.md. 2016-02-22 10:13:45 -10:00
Brian Smith
fb9931b576 Add note about casting to STYLE.md. 2016-02-22 10:13:13 -10:00
Brian Smith
063985413e Add notes about unsafe to the style guide. 2016-02-22 10:12:49 -10:00
Brian Smith
ba126545ca Use x[..n] instead of x[0..n].
Also, update the style guide.
2016-02-22 09:26:44 -10:00
David Benjamin
ecc2591b6c Update link to Google style guide.
Change-Id: I0c9d86f188cd20d256620ccbb46546678714e081
Reviewed-on: https://boringssl-review.googlesource.com/6386
Reviewed-by: Adam Langley <agl@google.com>
2015-11-03 02:02:12 +00:00
David Benjamin
0e3f1d80f8 Markdown-ify STYLE.
Since we're able to render it fancy, may as well.

Change-Id: Ia1ab4b7ad0cdd78c8ffb75342ee62365843e7d5f
Reviewed-on: https://boringssl-review.googlesource.com/5810
Reviewed-by: Adam Langley <agl@google.com>
2015-09-03 18:37:39 +00:00