Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 2.0.0 #44

Merged
merged 121 commits into from
Jan 27, 2016
Merged

Version 2.0.0 #44

merged 121 commits into from
Jan 27, 2016

Conversation

markbao
Copy link
Collaborator

@markbao markbao commented Dec 23, 2015

2.0 Checklist

  • Merge in @mikepb's passcode fork
  • Identify areas of API breakage
  • Think about whether we want to make breaking changes, return to original API, or display a deprecation notice for 2.0 and remove later
  • Consider adding a deprecation notice
  • Write out full README with guide
  • Think about how to do a demo (Tonic?)
  • Remove console.log debug artifacts
  • Write tests for generate_key and generate_key_ascii
  • Run JSHint (or consider using Semistandard and use the auto-formatter)
  • Edit and move over documentation
  • Check tests
  • Check issues
  • Add .counter and .time back in for API compatibility
  • Last check for API breakage
  • Update HISTORY.md

API breakage

  • Options for hotp and totp: key is now secret
  • Options for totp: initial_time is now epoch
  • generate_key method missing

Open questions

  • Move verify() to verifyDelta() and create a new verify() that returns a boolean for a strict comparison (delta = 0)
  • generate_key -> generateSecret() for consistency?
  • Do we still want to do windowAhead and windowBehind?

cgarvey and others added 30 commits September 4, 2013 19:52
- Added support for repetition of the key to the length of the hashing algorithm (20 bytes for SHA1, 32 bytes for SHA256, 64 bytes for SHA512)
- Added tests for SHA256 and SHA512 test vectors as described in: https://tools.ietf.org/html/rfc6238#appendix-B
Conflicts:
	lib/speakeasy.js
@mikepb
Copy link
Collaborator

mikepb commented Jan 26, 2016

Pull #50 fixes the TOTP window bug.

throw new Error('Speakeasy - otpauthURL - Invalid digits `' + digits + '`');
}
query.digits = digits;
}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mikepb, do you think we need to be restricting the digits here if it's a generic otpauth:// generator? I haven't been able to find any sort of spec for otpauth:// other than the one in the Google Authenticator wiki.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No reason other than Google, but we could just make a warning instead of full-blown error.

On Jan 26, 2016, at 8:51 PM, Mark Bao notifications@github.com wrote:

In index.js #44 (comment):

  •    throw new Error('Speakeasy - otpauthURL - Invalid algorithm `' + algorithm + '`');
    
  • }
  • query.algorithm = algorithm.toUpperCase();
  • }
  • // validate digits
  • if (digits != null) {
  • switch (parseInt(digits, 10)) {
  •  case 6:
    
  •  case 8:
    
  •    break;
    
  •  default:
    
  •    throw new Error('Speakeasy - otpauthURL - Invalid digits `' + digits + '`');
    
  • }
  • query.digits = digits;
  • }
    @mikepb https://github.com/mikepb, do you think we need to be restricting the digits here if it's a generic otpauth:// generator? I haven't been able to find any sort of spec for otpauth:// other than the one in the Google Authenticator wiki.


Reply to this email directly or view it on GitHub https://github.com/speakeasyjs/speakeasy/pull/44/files#r50941080.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call. Should we do the same for algorithm as well?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep.

On Jan 26, 2016, at 9:05 PM, Mark Bao notifications@github.com wrote:

In index.js #44 (comment):

  •    throw new Error('Speakeasy - otpauthURL - Invalid algorithm `' + algorithm + '`');
    
  • }
  • query.algorithm = algorithm.toUpperCase();
  • }
  • // validate digits
  • if (digits != null) {
  • switch (parseInt(digits, 10)) {
  •  case 6:
    
  •  case 8:
    
  •    break;
    
  •  default:
    
  •    throw new Error('Speakeasy - otpauthURL - Invalid digits `' + digits + '`');
    
  • }
  • query.digits = digits;
  • }
    Good call. Should we do the same for algorithm as well?


Reply to this email directly or view it on GitHub https://github.com/speakeasyjs/speakeasy/pull/44/files#r50941798.

@markbao
Copy link
Collaborator Author

markbao commented Jan 27, 2016

Alright, here we go!

@markbao markbao changed the title Version 2.0 (In Progress) Version 2.0 Jan 27, 2016
@markbao markbao changed the title Version 2.0 Version 2.0.0 Jan 27, 2016
markbao added a commit that referenced this pull request Jan 27, 2016
@markbao markbao merged commit 4e0aa91 into master Jan 27, 2016
@markbao
Copy link
Collaborator Author

markbao commented Jan 27, 2016

And we're live! https://www.npmjs.com/speakeasy

Thank you to all of the contributors to version 2.0.0.

Super thanks to @mikepb – I really enjoyed working with you on this, from having Passcode as a solid foundation to build on, to your input into design decisions and making pull requests. Thank you for your invaluable help on this project.

Really proud to have this out!

@mikepb
Copy link
Collaborator

mikepb commented Jan 27, 2016

👏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants